zoukankan      html  css  js  c++  java
  • Asp.net Tree 角色相应权限的显示 (选中子节点 该子节点下全选中,以及修改权限)

    代码
    //显示 所有权限 并勾上该角色的权限

    public partial class Default3 : System.Web.UI.Page
    {
        
    protected void Page_Load(object sender, EventArgs e)
        {
            
    if (!IsPostBack)
            {

                
    this.DropDownList1.DataSource = SQLHelper.SelectData("select * from [Role]");
                
    this.DropDownList1.DataTextField = "R_Name";
                
    this.DropDownList1.DataValueField = "R_ID";
                
    this.DropDownList1.DataBind();

                ydt 
    = SQLHelper.SelectData("select M_ID from RoleMenuCenter where R_ID="+int.Parse(this.DropDownList1.SelectedValue.ToString()));

                dt 
    = SQLHelper.SelectData("select * from Menu");
                inittreeview();
            }


             }
        DataTable dt 
    = null;
        DataTable ydt 
    = null;
        
    public void inittreeview()
        {
            
    this.TreeView1.Nodes.Clear();

            DataRow[] drs 
    = dt.Select("M_Parent=0");
            
    foreach (DataRow dr in drs)
            {
                TreeNode tn 
    = new TreeNode();
                tn.Text 
    = dr["M_Name"].ToString();
                tn.Value 
    = dr["M_ID"].ToString();
                
    foreach (DataRow ydr in ydt.Rows)
                {
                    
    if (ydr["M_ID"].ToString().Trim() == dr["M_ID"].ToString().Trim())
                    {
                        tn.Checked 
    = true;
                        
    break;
                    }
                }
                inittreeleaf(tn);
                
    this.TreeView1.Nodes.Add(tn);
            }
        }
        
    public void inittreeleaf(TreeNode tn)
        {
            DataRow[] drs 
    = dt.Select("M_Parent="+tn.Value);
            
    foreach (DataRow dr in drs)
            {
                TreeNode ctn 
    = new TreeNode();
                ctn.Text 
    = dr["M_Name"].ToString();
                ctn.Value 
    = dr["M_ID"].ToString();
                
    foreach (DataRow ydr in ydt.Rows)
                {
                    
    if (ydr["M_ID"].ToString().Trim() == dr["M_ID"].ToString().Trim())
                    {
                        ctn.Checked 
    = true;
                        
    break;
                    }
                }
                tn.ChildNodes.Add(ctn);
            }
        }
        
    protected void Button1_Click(object sender, EventArgs e)
        {
            
    int roleid = int.Parse(this.DropDownList1.SelectedValue.ToString());
            SQLHelper.UpdateData(
    "delete from RoleMenuCenter where R_ID="+roleid);

            
    foreach (TreeNode tn in this.TreeView1.Nodes)
            {
                
    if (tn.Checked)
                {
                    
    int mid = int.Parse(tn.Value);
                    SQLHelper.UpdateData(
    "insert into RoleMenuCenter values("+roleid+","+mid+",0,0,0,0)");
                    
    foreach (TreeNode ctn in tn.ChildNodes)
                    {
                        
    if (ctn.Checked)
                        {
                            
    int cmid = int.Parse(ctn.Value);
                            SQLHelper.UpdateData(
    "insert into RoleMenuCenter values(" + roleid + "," + cmid + ",0,0,0,0)");
                        }
                    }
                }
            }
        }


         
    //角色改变 相应的权限也改变
        protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
        {
            ydt 
    = SQLHelper.SelectData("select M_ID from RoleMenuCenter where R_ID=" + int.Parse(this.DropDownList1.SelectedValue.ToString()));
            dt 
    = SQLHelper.SelectData("select * from Menu");
            inittreeview();
            
    this.TreeView1.ExpandAll();
        }
    }

     

     

    // JScript 文件
    function public_GetParentByTagName(element, tagName) 
    {
        var parent 
    = element.parentNode;
        var upperTagName 
    = tagName.toUpperCase();
        
    //如果这个元素还不是想要的tag就继续上溯
        while (parent && (parent.tagName.toUpperCase() != upperTagName)) 
        {
            parent 
    = parent.parentNode ? parent.parentNode : parent.parentElement;
        }
        
    return parent;
    }

     

    //设置节点的父节点Cheched——该节点可访问,则他的父节点也必能访问
    function setParentChecked(objNode)

        var objParentDiv 
    = public_GetParentByTagName(objNode,"div");
        
    if(objParentDiv==null || objParentDiv == "undefined")
        {
            
    return;
        }
        var objID 
    = objParentDiv.getAttribute("ID");
        objID 
    = objID.substring(0,objID.indexOf("Nodes"));
        objID 
    = objID+"CheckBox";
        var objParentCheckBox 
    = document.getElementById(objID);
        
    if(objParentCheckBox==null || objParentCheckBox == "undefined")
        {
            
    return;
        } 
        
    if(objParentCheckBox.tagName!="INPUT" && objParentCheckBox.type == "checkbox")
        
    return
        objParentCheckBox.
    checked = true;
        setParentChecked(objParentCheckBox);
    }

    //设置节点的子节点uncheched——该节点不可访问,则他的子节点也不能访问
    function setChildUnChecked(divID)

        var objchild 
    = divID.children;
        var count 
    = objchild.length; 
        
    for(var i=0;i<objchild.length;i++)
        {
            var tempObj 
    = objchild[i];
            
    if(tempObj.tagName=="INPUT" && tempObj.type == "checkbox")
            {
                tempObj.
    checked = false;
            }
            setChildUnChecked(tempObj); 
        }
    }

    //设置节点的子节点cheched——该节点可以访问,则他的子节点也都能访问
    function setChildChecked(divID)

        var objchild 
    = divID.children;
        var count 
    = objchild.length; 
        
    for(var i=0;i<objchild.length;i++)
        {
            var tempObj 
    = objchild[i];
            
    if(tempObj.tagName=="INPUT" && tempObj.type == "checkbox")
            {
                tempObj.
    checked = true;
            }
            setChildChecked(tempObj); 
        }
    }

    //触发事件
    function CheckEvent()
    {

        var objNode 
    = event.srcElement;

        
    if(objNode.tagName!="INPUT" || objNode.type!="checkbox")
        
    return;

        
    if(objNode.checked==true)
        {
            setParentChecked(objNode);
            var objID 
    = objNode.getAttribute("ID");
            var objID 
    = objID.substring(0,objID.indexOf("CheckBox")); 
            var objParentDiv 
    = document.getElementById(objID+"Nodes");
            
    if(objParentDiv==null || objParentDiv == "undefined")
            {
                
    return;
            } 
            setChildChecked(objParentDiv);
        }
        
    else
        {
            var objID 
    = objNode.getAttribute("ID");
            var objID 
    = objID.substring(0,objID.indexOf("CheckBox")); 
            var objParentDiv 
    = document.getElementById(objID+"Nodes");
            
    if(objParentDiv==null || objParentDiv == "undefined")
            {
                
    return;
            } 
            setChildUnChecked(objParentDiv);
        }
    }

     

    //修改权限

    protected void Button1_Click(object sender, EventArgs e)
        {
            
    int roleid = int.Parse(this.DropDownList1.SelectedValue.ToString());
            SQLHelper.UpdateData(
    "delete from RoleMenuCenter where R_ID="+roleid);

            
    foreach (TreeNode tn in this.TreeView1.Nodes)
            {
                
    if (tn.Checked)
                {
                    
    int mid = int.Parse(tn.Value);
                    SQLHelper.UpdateData(
    "insert into RoleMenuCenter values("+roleid+","+mid+",0,0,0,0)");
                    
    foreach (TreeNode ctn in tn.ChildNodes)
                    {
                        
    if (ctn.Checked)
                        {
                            
    int cmid = int.Parse(ctn.Value);
                            SQLHelper.UpdateData(
    "insert into RoleMenuCenter values(" + roleid + "," + cmid + ",0,0,0,0)");
                        }
                    }
                }
            }
        }

     
     
  • 相关阅读:
    click事件——背景高亮
    color——RGB转16进制
    导航栏高亮设置
    layui table 渲染完成后,怎样拿到表个里的所有数据
    解决 AttributeError: 'dict' object has no attribute 'has_key' 错误的方法
    2019年总结:醒悟还为时不晚
    Worker Services读取配置后,发布Windows出现的问题及解决
    C# 读取配置(详细操作,让我们一起共同成长)
    程序不包含适合于入口点的静态“Main”方法
    .NET Core3.0-Worker Services
  • 原文地址:https://www.cnblogs.com/fanxianhua/p/1641867.html
Copyright © 2011-2022 走看看