Foxtable(狐表)用户栏目专家坐堂 → 目录树的排序问题


  共有8734人关注过本帖树形打印复制链接

主题:目录树的排序问题

帅哥哟,离线,有人找我吗?
zpx_2012
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:976 积分:8527 威望:0 精华:0 注册:2012/2/9 16:35:00
目录树的排序问题  发帖心情 Post By:2012/8/18 17:40:00 [只看该作者]

请教各位大师,遍历项目中的所有表及列生成目录树要怎样实现按汉语拼音自上到下排序?

 

For Each dt As DataTable In DataTables

     nd = tr.Nodes.Add(dt.Name)

          For Each dc As DataCol In DataTables(dt.Name).DataCols

               nd.Nodes.Add(dc.Name)

          Next

Next

 

生成的目录树如下:但表名没有按汉语拼音顺序,使用中不易查找。

 


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20120818173351.jpg
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
muhua
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:等待验证 帖子:3855 积分:20692 威望:0 精华:5 注册:2012/6/21 14:03:00
  发帖心情 Post By:2012/8/20 8:13:00 [只看该作者]

用户已被锁定

 回到顶部
帅哥哟,离线,有人找我吗?
程兴刚
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:7237 积分:40614 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2012/8/20 9:09:00 [只看该作者]

采用集合,对集合内数据进行排序后再生成目录树!


 回到顶部
帅哥哟,离线,有人找我吗?
zpx_2012
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:976 积分:8527 威望:0 精华:0 注册:2012/2/9 16:35:00
  发帖心情 Post By:2012/8/20 12:39:00 [只看该作者]

谢谢两位的回复,但还是不太明白,能够再详细点吗?谢谢!

 回到顶部
帅哥,在线噢!
狐狸爸爸
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/8/20 15:12:00 [只看该作者]

你在命令窗口执行看看:

 

Dim nms As New List(of String)
For Each dt As DataTable  In DataTables
    nms.add(dt.name)
Next
nms.sort()
For Each nm As String In nms
   output.show(nm)
Next


 回到顶部
帅哥哟,离线,有人找我吗?
zpx_2012
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:976 积分:8527 威望:0 精华:0 注册:2012/2/9 16:35:00
  发帖心情 Post By:2012/8/20 16:10:00 [只看该作者]

谢谢狐爸,这样一举例我看一下就明白了,程老师也是这个意思但我不知道怎么做出来。谢谢大家,

将完整的代码跟大伙分享一下,但愿不要有错。主要是根据角色来授权,我觉得这个思路很不错,但还没完全做完,到时再跟大家分享完整版。

Dim tr1 As WinForm.TreeView = e.Form.Controls("TreeView1")
Dim tr2 As WinForm.TreeView = e.Form.Controls("TreeView2")
Dim tr3 As WinForm.TreeView = e.Form.Controls("TreeView3")
Dim nd As WinForm.TreeNode

tr1.BuildTree("授权表","部门|角色")

'选取需要授权的表进行排序
Dim nms As New List(of String)
For Each dt As DataTable In DataTables
    Select Case dt.name
        Case "导航","消息","用户","授权表","项目分类"

        Case Else
            nms.add(dt.name)
    End Select
Next
nms.sort()
'将需要授权的表生成目录树
For Each nm As String In nms 
    nd = tr2.Nodes.Add(nm)
    For Each dc As DataCol In DataTables(nm).DataCols
        nd.Nodes.Add(dc.Name)
    Next
    nd = tr3.Nodes.Add(nm)
    For Each dc As DataCol In DataTables(nm).DataCols
        nd.Nodes.Add(dc.Name)
    Next
Next


 回到顶部