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; width: 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) {
                //IE5\IE6
                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;
            }
        }
    }
}

 

 

posted @ 2013-12-12 20:11  夏至冬末  阅读(193)  评论(0编辑  收藏  举报