今天在做权限管理的时候对TreeView终于有所了解。在这里我所实现的是使用TreeView进行权限分配。
首先说一下TreeView的几个基本的属性
1.ID 获取或设置treeviewd的标识符
2.NodeIndent 获取或设置TreeView控件子节点的缩进量,该量是以像素为单位的
3.Nodes 获取TreeNode对象的集合(TreeNodeCollection)。该属性是只读的。
4.ShowCheckBoxex 是否显示复选框,有none,root,parent,leat,all五种,这里选择all
TreeNode:由于TreeView中的每一个节点都是一个TreeNode,所以事先也要对TreeNode有所了解
TreeNode的一般属性
1.Value 用于设置该节点保存的一个值,不显示
2.ImageUrl 该节点的图片路径
3.NavigateUrl 该节点的链接地址
4.Tex 该节点显示的内容
分配资源页面:根据把所有的资源绑定到TreeView中,但由于为要进行分配资源的角色已经拥有了部分资源,所以还要考虑到把该角色已经拥有的资源给选上钩。
数据库设计
sys_role 角色表
roleId 角色id
roleName 角色名称
sys_roleRight 角色-资源关系表
roleRightId
roleId 角色id
rightId 资源id
sys_right 资源表
rightId
node 节点
url 链接地址
image 图片地址
parentId 父节点id( parentId = 0表示该节点为根节点)
remark 文字描述
下面进入正题
一、进入分配资源页面
根据不同角色,选择分配资源链接。在链接中传入roleId标示所选择的角色,在AssigneRight.aspx页面中获取该roleId,并把它存储在ViewState中。
//使用ViewState存储角色id
private string RoleId
{
get { return Convert.ToString(ViewState["RoleId"]); }
set { ViewState["RoleId"] = value; }
}
在页面加载时获取roleId,并绑定TreeView
if (!IsPostBack)
{
string roleId = Request.QueryString["roleId"];
if (!string.IsNullOrEmpty(roleId))
{

本文介绍了如何使用TreeView控件进行权限分配,详细阐述了TreeView的基本属性、TreeNode属性,以及在分配资源页面的数据绑定过程。通过数据库设计,展示了角色、资源和角色-资源关系的管理。利用Linq处理角色已有的资源,并在用户选择后更新角色的资源权限。
最低0.47元/天 解锁文章
941

被折叠的 条评论
为什么被折叠?



