⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 distrubuterole.aspx.cs

📁 人事管理系统
💻 CS
字号:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Collections.Generic;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using BLL;
using MODEL;
public partial class SysManage_RoleManage_AddPopedomToRole : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
       int roleId=int.Parse(Request.QueryString["roleId"].ToString());
        if(!IsPostBack)
        {
            RoleInfoManager rim = new RoleInfoManager();
            RoleInfo roleInfo=rim.GetModelById(roleId);
            lblRoleName.Text = roleInfo.RoleName;
        }
        DisplayRoleRightInfo(roleId);
    }
    protected void DisplayRoleRightInfo(int roleId)
    {
        //根据角色Id从RoleRight表中获得当前角色拥有的权限信息
        RoleRightManager rrm=new RoleRightManager ();
       
        List<RoleRight> currentRoleParentNodes= rrm.GetModels("roleId="+roleId);
        ArrayList arrRoleParentNodes = new ArrayList();
        //循环将该角色拥有的父节点添加到角色权限数组中
        foreach (RoleRight roleRight in currentRoleParentNodes)
        {
            arrRoleParentNodes.Add(roleRight.NodeId.ToString());
        }
        //得到所有父级节点信息
        SysFunManager sfm=new SysFunManager ();
        List<SysFun> sysFuns = sfm.GetModels("parentNodeId=0");
        //根据父节点得到对应子节点,把父节点生成用户控件,然后循环插入到、
        //PlaceHolder容器中
        foreach(SysFun sysFun in sysFuns)
        {
            //得到父节点ID
            string nodeId = sysFun.NodeId.ToString();
            //得到父节点名称
            string displayName = sysFun.DisplayName;
            //实例化用户控件
            SysManage_RoleManage_RoleUserControl reloCotrol = (SysManage_RoleManage_RoleUserControl)LoadControl(@"RoleUserControl.ascx"); 
            //实例化隐藏域,用以存储父节点Id
            HtmlInputHidden hidParentMenu = (HtmlInputHidden)reloCotrol.FindControl("hidParentMenu");
            hidParentMenu.Value = nodeId;
            HtmlInputHidden hidRoleId = (HtmlInputHidden)reloCotrol.FindControl("hidRoleId");
            hidRoleId.Value = roleId.ToString();
            //实例化用户控件中的CheckBox
            CheckBox chkParentMenu = (CheckBox)reloCotrol.FindControl("chkParentMenu");
            //显示父菜单名称
            chkParentMenu.Text = displayName;
            if(arrRoleParentNodes.Contains(nodeId))
            {
                chkParentMenu.Checked = true;
            }
            //把父子节点生成的用户控件追加到PlaceHolder容器中
            phRoleDistribute.Controls.Add(reloCotrol);
        }
    }

    protected void btnSubmit_Click(object sender, EventArgs e)
    {
        //获得只定的角色Id
        int roleId = Convert.ToInt32(Request["roleid"].ToString());
        RoleRightManager rrm=new RoleRightManager();
        //根据角色Id从RoleRight表中获得所有节点信息
        List<RoleRight> currentRoleRights=rrm.GetModels("roleId="+roleId);
        ArrayList arrRoleNodes = new ArrayList();
        RoleRight roleright=new RoleRight ();
        //循环将节点添加到ArrayList中
         foreach (RoleRight roleRight in currentRoleRights)
         {
             arrRoleNodes.Add(roleRight.SysFun.NodeId.ToString());
         }
        //遍历每一个用户控件
         foreach (Control ct in phRoleDistribute.Controls)
         {
             /*保存父节点*/
             //实例化CheckBox
            
             CheckBox chk = (CheckBox)ct.FindControl("chkParentMenu");
             HtmlInputHidden hih = (HtmlInputHidden)ct.FindControl("hidParentMenu");
             //假如数据中不存在我们选中的节点,则添加该节点记录
             if (chk.Checked)
             {
                 if (!arrRoleNodes.Contains(hih.Value))
                 {
                     roleright.RoleId = roleId; roleright.NodeId = Convert.ToInt32(hih.Value);
                     rrm.AddModel(roleright);
                     //RoleRightManager.InsertRoleRight(roleId.ToString(), hih.Value);
                 }
             }
             //假如我们没有选中的节点在数据库中存在,则从数据库中删除
             else
             {
                 if (arrRoleNodes.Contains(hih.Value))
                 {
                     List<RoleRight> rolerights= rrm.GetModels("roleId="+roleId+" and NodeId="+Convert.ToInt32(hih.Value));
                     roleright = rolerights[0];
                     rrm.DeleteModelById(roleright.RoleRightId);
                     //RoleRightManager.DeleteRoleRight(roleId.ToString(), hih.Value);
                 }
             }
             /*保存子节点*/
             CheckBoxList chklst = (CheckBoxList)ct.FindControl("chklstChildMenu");
             foreach (ListItem li in chklst.Items)
             {
                 if (li.Selected)
                 {
                     if (!arrRoleNodes.Contains(li.Value))
                     {
                         roleright.RoleId = roleId; roleright.NodeId = Convert.ToInt32(li.Value);
                         rrm.AddModel(roleright);
                         //RoleRightManager.InsertRoleRight(roleId.ToString(), li.Value);
                     }
                 }
                 else
                 {
                     if (arrRoleNodes.Contains(li.Value))
                     {
                         List<RoleRight> rolerights= rrm.GetModels("roleId="+roleId+" and NodeId="+Convert.ToInt32(li.Value));
                         roleright = rolerights[0];
                         rrm.DeleteModelById(roleright.RoleRightId);
                        // RoleRightManager.DeleteRoleRight(roleId.ToString(), li.Value);
                     }
                 }
             }
         }
         Response.Write("<script>alert('权限已生效!!');self.document.location.href='RoleManage.aspx?tittleName=角色管理'</script>");
    }
    protected void  btnReturn_Click(object sender, EventArgs e)
    {
        Response.Redirect("RoleManage.aspx?tittleName=角色管理");
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -