如何让TREEVIEW 根据 登陆者不同的身份来动态生成不同的节点 树形下 分为定制树 和默认树 (contentmenu控制就可以了)默认树 (定制根据用户权限可见的可操作的树节点)定制树(用户根据自己的喜好定制属于自己的树!) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我是个管理系统,用户不能自己定制 ,都是事先分配好的角色。 如果要更改,只要改变角色就可以了。 比如李四原来是销售,现在是经理了。只要在后台改变他的角色就行。TREEVIEW加载哪些节点只由角色的权限来决定。 我要问的就是你的这句话说的:定制根据用户权限可见的可操作的树节点如何 根据不同的角色权限来动态加载TREEVIEW 的可见可操作节点呢? 笨点的方法:定义不同角色的xml 然后根据角色来读取xml 最后把xml绑定到treeview灵活点的:在表设置个标识 然后根据这标识去读取 那不是要好几个XML 文件啊。呵呵。如果都写在一个XML文件中呢?在XML 中用XPATH ? 如果有些权利是很多角色交叉共有的呢。又怎么办呢? 分别把所有角色可访问菜单的ID保存到一个权限表,登录时首先判断所属角色,然后根据角色构造TreeView 这个asp.net有自带的,用那个自带的多省事啊 3、递归的时候参数是当前的树,如:public TreeNode getNode(TreeNode prenode){ prenode.add(找到的节点); return getNode(prenode);} S_User用户表:UserIDRoleIDS_Menu菜单表:NodeIDNodeNameParNodeIDS_Role角色表:RoleIDRoleNameS_RoleMenu角色对应的菜单表:RoleIDNodeID获取角色对应的菜单: Sql = " SELECT NODEID,NODENAME,PARNODEID,URL,ImgUrl FROM S_MENU WHERE NODEID IN " + " (SELECT NODEID FROM S_ROLEMENU WHERE ROLEID = " + ((UserInfo)Session["UserInfo"]).RoleId + " ) ";((UserInfo)Session["UserInfo"]).RoleId 是登录用户的角色 最后将角色对应的菜单递归绑定到Treeview就OK了 同一项目可以打开多个问题? 求助,msflexgrid与数据库绑定过后怎么编辑格式? win service网络连接服务 熟悉的进来指导下吧 VS2005引用的控件找不到了 日期问题 CheckBoxList的问题 想建立一个用户自定义机制,应该如何设计? 关于 duwamish 的问题 程序发布的问题? asp.net vb MenuItemClick 事件为什么会触发了2次? 彈出對話框問題 文件上传
如何 根据不同的角色权限来动态加载TREEVIEW 的可见可操作节点呢?
public TreeNode getNode(TreeNode prenode)
{
prenode.add(找到的节点);
return getNode(prenode);
}
UserID
RoleIDS_Menu菜单表:
NodeID
NodeName
ParNodeIDS_Role角色表:
RoleID
RoleNameS_RoleMenu角色对应的菜单表:
RoleID
NodeID获取角色对应的菜单:
Sql = " SELECT NODEID,NODENAME,PARNODEID,URL,ImgUrl FROM S_MENU WHERE NODEID IN " +
" (SELECT NODEID FROM S_ROLEMENU WHERE ROLEID = " + ((UserInfo)Session["UserInfo"]).RoleId + " ) ";
((UserInfo)Session["UserInfo"]).RoleId 是登录用户的角色