Treeview与权限(我的一个小解决方法)
来源:互联网 发布:pdfobject.js 编辑:程序博客网 时间:2024/05/22 11:40
我看过比较多的treeview与权限的解决方法,感觉总是太复杂,而且不实用(也许自己太笨,仅仅是个人看法)。下面我用treeview与数据库结合来实现下面图所示的权限(角色)的管理。
有一个图可以参考:
首先,应该有2个表:
表1: Accounts_PermissionCategories(权限类别表)
ID Name desc
01 案件处理
02 统计报表
03 商标查询
表2: Accounts_Permission(权限表)
ID CategoryID Name desc
01 01 立案资料录入
02 01 立案资料查询
private void Page_Load(object sender, System.EventArgs e)
{
if(!Page.IsPostBack)
{
BindPermissionCategories();
BindPermission();
}
}
private void BindPermissionCategories()
{//绑定权限类别信息
string info = string.Empty;
RG.JGJ.Modules.Accounts.Business.PermissionCategory pc = new RG.JGJ.Modules.Accounts.Business.PermissionCategory();
SortedList sl = pc.GetPermissionCategoriesForTreeView(out info);
int count = sl.Count;
Microsoft.Web.UI.WebControls.TreeNode[] rootNodes = new Microsoft.Web.UI.WebControls.TreeNode[count];
for(int i=0;i<count;i++)
{
rootNodes[i] = new Microsoft.Web.UI.WebControls.TreeNode();
rootNodes[i].Expanded = true;
rootNodes[i].Text = sl.GetByIndex(i).ToString();
rootNodes[i].NodeData = sl.GetKey(i).ToString();
TreeView1.Nodes.Add(rootNodes[i]);
}
}
#region
private void BindPermission()
{//绑定权限信息
string info = string.Empty;
Microsoft.Web.UI.WebControls.TreeNodeCollection nodes = TreeView1.Nodes;
if(nodes.Count > 0)
{
RG.JGJ.Modules.Accounts.Business.Permission p = new RG.JGJ.Modules.Accounts.Business.Permission();
for(int i=0;i<nodes.Count;i++)
{
SortedList sl = p.GetPermissionForTreeView(nodes[i].NodeData,out info);
int count = sl.Count;
Microsoft.Web.UI.WebControls.TreeNode[] ns = new Microsoft.Web.UI.WebControls.TreeNode[count];
for(int j=0;j<count;j++)
{
ns[j] = new Microsoft.Web.UI.WebControls.TreeNode();
ns[j].Expanded = true;
ns[j].Text = sl.GetByIndex(j).ToString();
ns[j].NodeData = sl.GetKey(j).ToString();
ns[j].CheckBox = true;
nodes[i].Nodes.Add(ns[j]);
}
}
}
}
#endregion
private void Button1_Click(object sender, System.EventArgs e)
{
foreach(Microsoft.Web.UI.WebControls.TreeNode node in TreeView1.Nodes)
{
//Response.Write(node.Text + ":" + node.NodeData + "<br>");
foreach(Microsoft.Web.UI.WebControls.TreeNode n in node.Nodes)
{
if(n.Checked == true)
{//下面的数据就是我们想要的结果,实现了角色的生成
//((...)n.Parent).NodeData是权限类别的ID
//n.NodeData是权限的ID
Response.Write(((Microsoft.Web.UI.WebControls.TreeNode)(n.Parent)).NodeData + ":" + n.NodeData + "<br>");
}
}
}
}
}
}
上面的代码我都编译通过,而且达到预期目的。
- Treeview与权限(我的一个小解决方法)
- treeview的一个小进展。。
- 用TreeView做权限导航的一个例子
- Web控件TreeView展开无闪烁的一个解决方法
- 一个AOP权限验证的小例子
- 又是权限的问题啊啊啊!------远程定位一个与我不相关的问题
- 关于maven的一个小错误解决方法
- 发布我做的一个小工具软件
- 我学习上的一个小插曲
- 我怎么上手一个小的项目
- 我的一个小程序--Endst
- 计算器 我的一个小项目
- 我的一个MFC小项目
- 我与VB.net再次重逢,最简单的一个小程序
- Treeview的一个递归算法
- 实现TreeView的一个功能
- 我的JabRef一些设置与解决方法
- asp.net 一个简易权限的小例子设计
- 使用ASP.NET中的一点体会--关于代码分离[原创]
- tbody的另一妙用实例
- 英语学习,句子翻译!
- BOOT.INI文件的目的[微软提供]
- 14. 光环效应
- Treeview与权限(我的一个小解决方法)
- 限制字符串长度函数
- Linux的7件武器(ZT)
- 左手刮胡须,右手提裤子
- 要对自己负责任
- .net remoting中的一点收获
- Hibernate中PO的equals()和hashCode()方法的覆写方法
- 乌合之众
- Oracle 9iAS配置运行FORM、Report