Foxtable(狐表)用户栏目专家坐堂 → 关于treeview的难题


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

主题:关于treeview的难题

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2010/12/5 2:30:00 [显示全部帖子]

要是这样的规则:

父码      子码

a          a1

b          b1

c           c1

a1         aa1

b1         bb1

c1          cc1

aa1        aaa1    【 你原来时 d1 】

 

可以这样:

 

Dim s,s1,s2,s3 As String
s = DataTables("表A").GetComboListString("父码")
s1 = s & "|" & DataTables("表A").GetComboListString("子码")
s2 = ""

For i0 As Integer = 0 To s1.split("|").length-1
    If s2.contains(s1.split("|")(i0)) = False
        s2 = s2 & s1.split("|")(i0) & "|"
    End If
Next

Dim tr As WinForm.TreeView = Forms("目录树").Controls("TreeView1")
Dim nd0,nd1,nd2,nd3,nd4 As WinForm.TreeNode
tr.Nodes.Clear   '清空原来的节点::::::::::

For i As Integer = 0 To s2.split("|").length-1
    s3 = s2.split("|")(i).length
    Select Case s3
        Case 1
            nd0 = tr.Nodes.Add(Rand.NextString(10),s2.split("|")(i))
            output.show(nd0.text)
        Case 2
            If s2.split("|")(i).contains(nd0.text)
                nd1 = nd0.Nodes.Add(Rand.NextString(10),s2.split("|")(i))
            End If
        Case 3
            If s2.split("|")(i).contains(nd1.text)
                nd2 = nd1.Nodes.Add(Rand.NextString(10),s2.split("|")(i))
            End If
        Case 4
            If s2.split("|")(i).contains(nd2.text)
                nd3 = nd2.Nodes.Add(Rand.NextString(10),s2.split("|")(i))
            End If
    End Select
Next

 

 结果这样对吗:

 


图片点击可在新窗口打开查看此主题相关图片如下:treeview.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2010-12-5 2:40:29编辑过]

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2010/12/5 12:02:00 [显示全部帖子]

呵呵,老大就是老大,您以前有过类似的代码,当时,我是没有看明白,现在再看,有点意思了,呵呵。。。

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2010/12/5 15:18:00 [显示全部帖子]

另外,4楼代码在生成目录树前,要对 s2 进行一下排序,否则会乱了。。。。 呵呵


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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2010/12/7 22:19:00 [显示全部帖子]

正常来说这两列是会有规则的,否则

a     a1

a1   b1

b1   a1

a1   c1

c1   b1

.....

 

这可咋办呢????????

 

 


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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2010/12/8 19:30:00 [显示全部帖子]

呵呵~  在40万行数据里生成目录树,估计使用人要有足够耐心等待了。。 应该单独建立一个项目表(包含不重复的父码和子码),来生成目录树,才对啊···


 回到顶部