树形下  分为定制树 和默认树 (contentmenu控制就可以了)默认树 (定制根据用户权限可见的可操作的树节点)定制树(用户根据自己的喜好定制属于自己的树!)

解决方案 »

  1.   

    我是个管理系统,用户不能自己定制 ,都是事先分配好的角色。 如果要更改,只要改变角色就可以了。 比如李四原来是销售,现在是经理了。只要在后台改变他的角色就行。TREEVIEW加载哪些节点只由角色的权限来决定。
      

  2.   

    我要问的就是你的这句话说的:定制根据用户权限可见的可操作的树节点
    如何 根据不同的角色权限来动态加载TREEVIEW 的可见可操作节点呢?
      

  3.   

    笨点的方法:定义不同角色的xml 然后根据角色来读取xml 最后把xml绑定到treeview灵活点的:在表设置个标识 然后根据这标识去读取
      

  4.   

    那不是要好几个XML 文件啊。呵呵。如果都写在一个XML文件中呢?在XML 中用XPATH ?   如果有些权利是很多角色交叉共有的呢。又怎么办呢?
      

  5.   

    分别把所有角色可访问菜单的ID保存到一个权限表,登录时首先判断所属角色,然后根据角色构造TreeView
      

  6.   

    这个asp.net有自带的,用那个自带的多省事啊
      

  7.   

    3、递归的时候参数是当前的树,如:
    public TreeNode getNode(TreeNode prenode)
    {
       prenode.add(找到的节点);
       
       return getNode(prenode);
    }
      

  8.   

    S_User用户表:
    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 是登录用户的角色
      

  9.   

    最后将角色对应的菜单递归绑定到Treeview就OK了