想实现一个权限分配的功能。
左边是用户,右边是菜单权限,怎么连接SQL库表,当选中用户的时候,显示当前权限,确认treeview节点,回写到用户。请大佬们赐教,小白一枚。

解决方案 »

  1.   

    先一个数据库查询,获取所有用户,填写list。当一条list被选中的时候再一个数据库查询,以该客户id之类的为条件查询客户权限列表,填充tree。
      

  2.   


    list里已经获取了所有用户,填充treeview的代码的代码不会写。[/img]
      

  3.   


    list里已经获取了所有用户,填充treeview的代码的代码不会写。[/img]两种做法
    1、当用户被点击,清空右边的树,获取该用户的所有权限数据,然后组织成树,填充
    2、先将系统中所有的权限组织成树填充。当用户被点击,获取该用户的所有权限数据,然后逐个节点确定是否该勾选。
      

  4.   


    list里已经获取了所有用户,填充treeview的代码的代码不会写。[/img]两种做法
    1、当用户被点击,清空右边的树,获取该用户的所有权限数据,然后组织成树,填充
    2、先将系统中所有的权限组织成树填充。当用户被点击,获取该用户的所有权限数据,然后逐个节点确定是否该勾选。
    我觉得应该是用方法2较好。
    树的显示内容应该是一样的,选不同的用户时,仅是“钩选 与 不钩”的区别。
      

  5.   


    list里已经获取了所有用户,填充treeview的代码的代码不会写。[/img]两种做法
    1、当用户被点击,清空右边的树,获取该用户的所有权限数据,然后组织成树,填充
    2、先将系统中所有的权限组织成树填充。当用户被点击,获取该用户的所有权限数据,然后逐个节点确定是否该勾选。
    我觉得应该是用方法2较好。
    树的显示内容应该是一样的,选不同的用户时,仅是“钩选 与 不钩”的区别。

    看具体情况,如果系统总的权限就几十个,用2。
    像那种几百个业务菜单,甚至细化到数据展示权限的,那还是用1比较不招人烦
      

  6.   


    list里已经获取了所有用户,填充treeview的代码的代码不会写。[/img]
    问问度娘,tree view的演示代码遍地都是
      

  7.   


    list里已经获取了所有用户,填充treeview的代码的代码不会写。[/img]两种做法
    1、当用户被点击,清空右边的树,获取该用户的所有权限数据,然后组织成树,填充
    2、先将系统中所有的权限组织成树填充。当用户被点击,获取该用户的所有权限数据,然后逐个节点确定是否该勾选。按照方法2,可以直接添加节点生成树嘛?还是要连接库表自动填充?
    我现在设计了三个表,用户表,权限表,用户权限对应表。
      

  8.   


    list里已经获取了所有用户,填充treeview的代码的代码不会写。[/img]两种做法
    1、当用户被点击,清空右边的树,获取该用户的所有权限数据,然后组织成树,填充
    2、先将系统中所有的权限组织成树填充。当用户被点击,获取该用户的所有权限数据,然后逐个节点确定是否该勾选。按照方法2,可以直接添加节点生成树嘛?还是要连接库表自动填充?
    我现在设计了三个表,用户表,权限表,用户权限对应表。
    用户表用来生成左边的列表
    权限表用来生成右边的树
    点选用户记录以后到用户权限对应表中查询其权限记录,然后填充右边树的复选框。
      

  9.   


    大神误会我“自动”的意思了,不是说什么都不用做。
    我直接添加节点的意思是Set Nodeindex = TreeView.Nodes.Add(, , "爷1", "系统管理", "K1")
    Set Nodeindex = TreeView.Nodes.Add("爷1", tvwChild, "父1", "用户管理", "K2")自动的意思是,连接数据库,通过代码将表填充treeview,这个是不是要考虑循环?然后问题就是连接库表,括号里的代码我不会写
      

  10.   

    谢谢“脆皮大雪糕”的提点,思路现在很清楚了,代码实现还有点问题。
    我去找找实例学习下,网上好多treeview的代码都是添加删除节点什么的控制实例。有我这种类似功能的实例推荐嘛?
      

  11.   

    我还以为你想“给控件设置查询条件、然后控件自动刷新显示内容、自动钩选/不钩选相关项目”呢。
    (自己不说明白,怪我咯……)能不能“循环”,那要看你的“查询结果”的信息是什么样的啊……如果只有几项、十来项,你不清楚如何用循环,就用一堆IF……End If 来处理也可以。
    但如果项目多了,肯定得考虑循环结构的流程来处理。
     能不能实现,就要看你的数据库信息如何组织、查询结果能不能“反映层次、从属关系”了。
      

  12.   

    我没学过VB,最近是在自学
    list里已经获取了所有用户,填充treeview的代码的代码不会写。[/img]
    问问度娘,tree view的演示代码遍地都是大神,我的权限表是这样的。
    然后添加了根节点:
     Dim nodX As node
              sql = "select Menu_Title from menu where ParentID IS NULL"
              Rs.Open sql, conn, adOpenKeyset
              If Rs.RecordCount <> 0 Then
                 Do While Rs.EOF = False
                 Set nodX = Trv.Nodes.Add(, , Rs.Fields("Menu_Title").Value, Rs.Fields("Menu_Title").Value, 1)
                 Rs.MoveNext
                 Loop
                 End If
    子节点的relative和key、text不太好写了。该怎么办?这个Add怎么设计好求指点。
      

  13.   


    大佬能不能指条treeview.nodee.add的明路?子节点想不出怎么增加
      

  14.   

    填充Treeview的问题终于搞赢了,不容易。
    接下来,解决 “点选用户确认Treeview的复选框” 的问题。
    有大神指导嘛?