• ASP.NET对HTML元素进行权限控制(三)


    上一篇博客中有些没有考虑到的东西这次更改一下代码如下:

    界面前台:

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="AdmShowDIV.aspx.cs" Inherits="ExamSystemV3.Manager.RoleManager.AdmShowDIV" %>
    
    <!DOCTYPE html>
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
           <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <meta name="Author" content="kudychen@gmail.com" />
        <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
        <title></title>
        <script src="../../js/DIV/jquery.js" type="text/javascript"></script>
        <script src="../../js/DIV/DIV.js" type="text/ecmascript"></script>
        <link href="../../css/admin.global.css" rel="stylesheet" type="text/css" />
        <link href="../../css/admin.content.css" rel="stylesheet" type="text/css" />     
    	<script type="text/javascript" src="../../../js/jquery.easyui.min.js"></script>
        <script type="text/javascript" src="../../js/jquery-1.4.2.min.js"></script>
        <script type="text/javascript" src="../../js/jquery.utils.js"></script>
        <link href="../../jBox/Skins/Green/jbox.css" rel="stylesheet" type="text/css" />
        <script type="text/javascript" src="../../jBox/jquery.jBox-2.3.min.js"></script>
        <script type="text/javascript" src="../../js/admin.js"></script>
    	<script type="text/javascript" src="../../js/SimpleTree.js"></script>
    
    
    </head>
    <body>
       <form id="form1" runat="server">
    <div class="container">
        <div class="location">当前位置:界面元素管理 -> 查看界面元素</div>
        
        <div class="blank10"></div>
    
        <div class="search block">
            <div class="h">
                <span class="icon-sprite icon-magnifier"></span>
                <h3>快速搜索</h3>
            </div>
            <div class="tl corner"></div><div class="tr corner"></div><div class="bl corner"></div><div class="br corner"></div>
            <div class="cnt-wp">
                <div class="cnt">
                    <div class="search-bar" id="SelectRole">
                        <label class="txt-green">请选择界面:</label>
                        <asp:DropDownList ID="DdlWindowsName" runat="server" AutoPostBack="True" OnSelectedIndexChanged="DdlWindowsName_SelectedIndexChanged">   
                        </asp:DropDownList>
                        <a class="btn-lit" href="#" onclick="WindowsInfo()"><span>扫描界面信息</span></a>
                    </div>
                    
                </div>
            </div>
            </div>
        </div>
         
      <div class="block">
            <div class="h">
                <span class="icon-sprite icon-list"></span>
                <h3>界面详情</h3>
            </div>
            <div class="tl corner"></div>
          <div class="tr corner"></div>
          <div class="bl corner"></div>
          <div class="br corner"></div>
            <div class="cnt-wp">
                <div class="cnt">
    			    <iframe id="frmWindows" runat="server" frameborder="0" marginheight="0" marginwidth="0" scrolling="auto"  style=" display: inline; height: 400px;" width="75%"  ></iframe>
                    <iframe id="frmUpdateDIV" runat="server"  frameborder="0" marginheight="0" marginwidth="0" scrolling="auto"  style="display: inline; height: 400px;  24%;"></iframe>     
                </div>
          
            </div>
        </div>
           
        </form>
    </body>
    </html>
    


     

    界面后台:

    using BLL.Manager.RoleUserManagerBLL;
    using System;
    using System.Collections.Generic;
    using System.Data;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    
    namespace ExamSystemV3.Manager.RoleManager
    {
        public partial class AdmShowDIV : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
                string strLike="";
                if (!IsPostBack)
                {
                    //绑定界面
                    DataBindWindows(strLike);
                }
                
                
            }
            /// <summary>
            /// 绑定所有界面
            /// </summary>
            /// <param name="strLike"></param>
            public void DataBindWindows(string strLike)
            {
                DataTable dt = new DataTable();
                AdmWindowsManager admWindowsManager = new AdmWindowsManager();
               //查出所有的界面
                dt = admWindowsManager.QueryWindowInfo(strLike);
                //绑定界面信息
                DdlWindowsName.DataSource = dt;
                DdlWindowsName.DataValueField = "Id";
                DdlWindowsName.DataTextField = "WindowsName";
                DdlWindowsName.DataBind();
                
            }
    
            protected void DdlWindowsName_SelectedIndexChanged(object sender, EventArgs e)
            {
                DataTable dt = new DataTable();
                string strLike = "";
                AdmWindowsManager admWindowsManager = new AdmWindowsManager();
                //查出界面的信息
                dt = admWindowsManager.QueryWindowInfo(strLike);
                string strWindowsId=DdlWindowsName.SelectedValue.ToString().Trim();
                  strLike = "Id='"+strWindowsId+"'";
                 DataRow[] rows =dt.Select (strLike);
                //获得路径
                 string strURL = rows[0]["WindowsURL"].ToString ();
                 strURL = "../../" + strURL;
                frmWindows.Attributes["src"]=strURL;
                frmUpdateDIV.Attributes["src"] = "AdmUpdateDIV.aspx?WindowsID='" + strWindowsId + "'";
            }
        }
    }


     

    JS:

    var WindowsID;
    function WindowsInfo() {
        //获取ifrm
        var frmWindows = document.getElementById("frmWindows").contentWindow;
        //获取界面ID
         WindowsID = document.getElementById("DdlWindowsName").value;
    
            var rootboxs = frmWindows.document.getElementById("main");
            var child = rootboxs.childNodes;
            findchildbox(child);
            
        
    };
    //搜寻子节点
    function findchildbox(parentNode) {
    
        for (var i = 0; i < parentNode.length; i++) {
           
            if (parentNode[i].nodeName == "BOX") {
                
                var childboxId = parentNode[i].id;
                var childboxTitle = encodeURI(parentNode[i].title);
                var parentbox = findparentbox(parentNode[i].parentNode);
                var parentboxId = parentbox.id;
                if (window.XMLHttpRequest) {
                    //IE7 above,firefox,chrome^^
                    xmlhttp = new XMLHttpRequest();
                    //为了兼容部分Mozillar浏览器,当来自服务器响应开头不是xml,导致的无法响应问题
                    if (xmlhttp.overrideMimeType) {
                        xmlhttp.overrideMimeType('text/xml');
                    }
                }
                else if (window.ActiveXObject) {
                    //IE5IE6
                    xmlhttp = new activeXObject("Microsoft.XMLHTTP");
                }
                if (xmlhttp == null || xmlhttp == undefined) {
                    alert("con't create XMLHttpRequest Object");
                }
                
                ////注册回调函数
                //xmlhttp.onreadystatechange = callback;
                //发送信息
               
                xmlhttp.open('GET', '../../Manager/RoleManager/AddBox.ashx?childboxId=' + childboxId + '&childboxTitle=' + childboxTitle + '&parentboxId=' + parentboxId+'&windowsId='+WindowsID, true);
                xmlhttp.send(null);
    
            
                //function callback() {
                //    //判断交互是否完成,是否正确返回
                //    if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                       
                //    }
                //}
              
        }
          
                findchildbox(parentNode[i].childNodes)
    
        }
        
    }
    
    //查询父节点
    function findparentbox(child) {
       
            if (child.nodeName == "BOX") {
                return child;
            } else {
               return findparentbox(child.parentNode)
                
            }
        
    }


     

    一般处理程序:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using BLL.Manager.RoleUserManagerBLL;
    using System.Data;
    using System.Text;
    using Model;
    using BLL;
    
    namespace ExamSystemV3.Manager.RoleManager
    {
        /// <summary>
        /// AddBox 的摘要说明
        /// </summary>
        public class AddBox : IHttpHandler
        {
    
            public void ProcessRequest(HttpContext context)
            {
                context.Response.ContentType = "text/plain";
                System.Threading.Thread.Sleep(1000);
                DIVEntity EDiv = new DIVEntity();
                TR_WindowsDIVEntity EWindowsDiv = new TR_WindowsDIVEntity();
               AdmDIVManager admDIVManager = new AdmDIVManager();
               PublicBLL publicBll = new PublicBLL();
                ///收集信息
                string strChildBoxId = "";
                string strChildBoxTitle = ""; 
                strChildBoxId = context.Request.QueryString["childboxId"].ToString().Trim();
                strChildBoxTitle = context.Server.UrlDecode(context.Request.QueryString["childboxTitle"].ToString().Trim());
                string strWindowsId = context.Request.QueryString["windowsId"].ToString().Trim();
                string strParentBoxId=context.Request.QueryString["parentboxId"].ToString ().Trim();;
                string strState = "是";
                string strDateTime = publicBll.GetDate();
                string strIP = publicBll.GetWebClientIp();
                string strOperator ="xvshu";//context.Session["UserNo"].ToString().Trim(); ;
    
                //给实体类赋值
                EDiv.Id = strChildBoxId;
                EDiv.MainRelation = strParentBoxId;
                EDiv.DIVName = strChildBoxTitle;
                EDiv.DIVDescribe = strChildBoxTitle;
                EDiv.Operator = strOperator;
                EDiv.OperatorIP = strIP;
                EDiv.State = strState;
                EDiv.DateTime = strDateTime;
                //给WindowsDIV实体类赋值
                EWindowsDiv.DIVID = strChildBoxId;
                EWindowsDiv.WindowsID = strWindowsId;
                EWindowsDiv.IsVisible = "是";
                EWindowsDiv.Operator = strOperator;
                EWindowsDiv.OperatorIP = strIP;
                EWindowsDiv.DateTime = strDateTime;
                
                //添加DIV
                admDIVManager.AddDIV(EDiv,EWindowsDiv);
                
            }
    
            public bool IsReusable
            {
                get
                {
                    return false;
                }
            }
        }
    }
    Meet so Meet. C plusplus I-PLUS....
  • 相关阅读:
    hdu 1896 stones
    各种类型的取值范围
    RSS/PSS/VSZ
    kasan BUG log
    ARM机器码分析
    Linux进程状态
    谢宝友: 深入理解RCU之七:分级RCU实现
    rcu_preempt detected stalls on CPUs/tasks
    Linux 内核 hlist
    linux cmd
  • 原文地址:https://www.cnblogs.com/iplus/p/4490407.html
Copyright © 2020-2023  润新知