📄 distrubuterole.aspx.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 + -