XML权限菜单文件
<MenuFunction>
<menuCode>101010</menuCode>
<menuName>添加</menuName>
<parentMenuCode>1010</parentMenuCode>
<url>Add</url>
<level>3</level>
<menuType>3</menuType>
<isVisible>1</isVisible>
<toRoot>101010,1010,10,-1</toRoot>
<title>添加</title>
<imgSrc />
<isLeaf>1</isLeaf>
</MenuFunction>
<MenuFunction>
<menuCode>101020</menuCode>
<menuName>分配角色</menuName>
<parentMenuCode>1010</parentMenuCode>
<url></url>
<level>3</level>
<menuType>3</menuType>
<isVisible>0</isVisible>
<toRoot>101020,1010,10,-1</toRoot>
<title>分配角色</title>
<imgSrc />
<isLeaf>1</isLeaf>
</MenuFunction>
<MenuFunction>
<menuCode>1020</menuCode>
<menuName>角色管理</menuName>
<parentMenuCode>10</parentMenuCode>
<url>RoleList</url>
<level>2</level>
<menuType>1</menuType>
<isVisible>1</isVisible>
<toRoot>1020,10,-1</toRoot>
<title>角色管理</title>
<imgSrc>Role.gif</imgSrc>
<isLeaf>0</isLeaf>
</MenuFunction>
<MenuFunction>
<menuCode>102010</menuCode>
<menuName>设置权限</menuName>
<parentMenuCode>1020</parentMenuCode>
<url></url>
<level>3</level>
<menuType>3</menuType>
<isVisible>0</isVisible>
<toRoot>102010,1020,10,-1</toRoot>
<title>设置权限</title>
<imgSrc>key.png</imgSrc>
<isLeaf>1</isLeaf>
</MenuFunction>
<MenuFunction>
<menuCode>102020</menuCode>
<menuName>添加角色</menuName>
<parentMenuCode>1020</parentMenuCode>
<url>AddRole</url>
<level>3</level>
<menuType>3</menuType>
<isVisible>1</isVisible>
<toRoot>102020,1020,10,-1</toRoot>
<title>添加角色</title>
<imgSrc></imgSrc>
<isLeaf>1</isLeaf>
</MenuFunction>
</Menus>
}
}
//选中(取消选中)父节点,选中(取消选中)该节点下面的子结点
public void CheckAllChildNodes(TreeNode ParentNode, bool NodeChk)
{
foreach (TreeNode TN in ParentNode.Nodes)
{
TN.Checked = NodeChk;
CheckAllChildNodes(TN, NodeChk);
}
}
//选中(取消选中)子节点,选中(取消选中)该节点的父结点
public void CheckAllParentNodes(TreeNode ChildNode, bool NodeChk)
{
if (ChildNode.Parent != null)
{
ChildNode.Parent.Checked = HasParentNode(ChildNode.Parent);
CheckAllParentNodes(ChildNode.Parent, NodeChk);
}
}
//根据当前子节点的状态,选中或不选中父节点
public bool HasParentNode(TreeNode TN)
{
foreach (TreeNode ChildNode in TN.Nodes)
{
if (ChildNode.Checked)
{
return true;
}
HasParentNode(ChildNode);
}
return false;
}
//遍历TreeView中所有选中节点
//然后将选中的RoleCode插入到ArrayList中
public void GetNode(TreeNodeCollection tc)
{
foreach (TreeNode TNode in tc)
{
if (TNode.Checked)
{
RoleCodeArray.Add(TNode.Tag);
}
GetNode(TNode.Nodes);
}
}
private void tsbSave_Click(object sender, EventArgs e)
{
TreeNodeCollection tc = treeView1.Nodes;
GetNode(tc);
ArrayList SqlArray = new ArrayList();
//删除该角色之前所有功能节点
string Delsql = string.Format(@"delete from RoleAction where 1=1 {0}",
RoleCode != "" ? string.Format(" and RoleCode='{0}'", RoleCode) : ""
);
//将功能节点数组,角色编码,用户UserID插入到权限表中
string AddSql = Roleaction.CreateRolePriviewSql(RoleCodeArray, RoleCode, UserID);
//将删除sql,插入sql添加到ArrayList数组中
SqlArray.Add(Delsql);
SqlArray.Add(AddSql);
//执行事务
if (Roleaction.ExecTrans(SqlArray, DBType.Sql))
MessageBox.Show("修改成功");
else
MessageBox.Show("修改失败");
}