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


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

主题:关于treeview的难题

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


加好友 发短信
等级:四尾狐 帖子:928 积分:7769 威望:0 精华:13 注册:2008/9/1 11:58:00
关于treeview的难题  发帖心情 Post By:2010/12/5 [显示全部帖子]

有这样一个物料表

 

父编码  子编码

a          a1

b          b1

c           c1

a1         aa1

b1         bb1

c1          cc1

aa1        d1

 

 

请教如何能做成下面结构,在窗口的目录树中展现(treeview)

 

 

-a

   - a1

       -aa1

           -d1

-b

   -b1

      -bb1

-c

  -c1

     -cc1


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


加好友 发短信
等级:四尾狐 帖子:928 积分:7769 威望:0 精华:13 注册:2008/9/1 11:58:00
  发帖心情 Post By:2010/12/5 0:06:00 [显示全部帖子]

提供下思路好吗,这两天有点一根筋了

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


加好友 发短信
等级:四尾狐 帖子:928 积分:7769 威望:0 精华:13 注册:2008/9/1 11:58:00
  发帖心情 Post By:2010/12/6 9:35:00 [显示全部帖子]

以下是引用狐狸爸爸在2010-12-5 7:41:00的发言:

呵呵,我也来一个,我这个对于名称没有任何要求的:

 

Dim lst1 As List(of String) = DataTables("表A").GetUniqueValues("","第一列")
Dim lst2 As List(of String) = DataTables("表A").GetUniqueValues("","第二列")
Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
Dim tnd As WinForm.TreeNode
Dim dr As DataRow
trv.Nodes.Clear()
For Each Val As String In Lst1
    If lst2.Contains(val) = False Then
        tnd = trv.Nodes.Add(val,val)
        Do
            dr = DataTables("表A").Find("第一列 = '" & tnd.Name & "'")
            If dr Is Nothing Then
                Exit Do
            Else
                tnd = tnd.Nodes.Add(dr("第二列"),dr("第二列"))
            End If
        Loop
    End If
Next

 

 

 下载信息  [文件大小:296.0 KB  下载次数:14]
图片点击可在新窗口打开查看点击浏览该文件:管理项目15.table
 
 
老大,附件的文件增加一行

aa1        d2

就不行了的
 

[此贴子已经被作者于2010-12-6 9:35:38编辑过]

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


加好友 发短信
等级:四尾狐 帖子:928 积分:7769 威望:0 精华:13 注册:2008/9/1 11:58:00
  发帖心情 Post By:2010/12/6 11:58:00 [显示全部帖子]

For Each Val As String In Lst1
    If lst2.Contains(val) = False Then
        tnd = trv.Nodes.Add(val,val)
        Do
            dr = DataTables("表A").Find("第一列 = '" & tnd.Name & "'")
            If dr Is Nothing Then
                Exit Do
            Else
                For Each dr1 As DataRow In DataTables("表A").Select("[第一列] = '"& tnd.Name &"'")
                    tnd = tnd.Nodes.Add(dr1("第二列"),dr1("第二列"))
                Next
            End If
        Loop
    End If
Next

 

百思不得其解


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


加好友 发短信
等级:四尾狐 帖子:928 积分:7769 威望:0 精华:13 注册:2008/9/1 11:58:00
  发帖心情 Post By:2010/12/6 16:21:00 [显示全部帖子]

哎呀,头都疼死了,感情是真的很难呀。

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


加好友 发短信
等级:四尾狐 帖子:928 积分:7769 威望:0 精华:13 注册:2008/9/1 11:58:00
这种效果如何实现的?  发帖心情 Post By:2010/12/6 16:55:00 [显示全部帖子]

老大,遇到个问题:

 


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

Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
Dim lst1 As List(of String) = DataTables("表A").GetUniqueValues("","第一列")
Dim lst2 As List(of String) = DataTables("表A").GetUniqueValues("","第二列")
Dim dic As New Dictionary(Of String, WinForm.TreeNode)
dic.Clear      ‘难道这行代码无效?
Dim tnd As WinForm.TreeNode
trv.Nodes.Clear()
For Each Val As String In Lst1
    If lst2.Contains(val) = False Then
        tnd = trv.Nodes.Add(val,val)
        dic.Add(val,tnd)
    End If
Next

For Each dr As DataRow In DataTables("表A").Select("","第一列,第二列")
     tnd = dic(dr("第一列")).Nodes.Add(dr("第二列"), dr("第二列"))
     dic.Add(dr("第二列"),tnd)
Next


 回到顶部
帅哥哟,离线,有人找我吗?
唐尸三摆手
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:928 积分:7769 威望:0 精华:13 注册:2008/9/1 11:58:00
  发帖心情 Post By:2010/12/6 17:09:00 [显示全部帖子]

谢谢老大,辛苦了,又学了一招

[此贴子已经被作者于2010-12-6 17:10:52编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
唐尸三摆手
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:928 积分:7769 威望:0 精华:13 注册:2008/9/1 11:58:00
  发帖心情 Post By:2010/12/6 17:25:00 [显示全部帖子]


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

 

 

这个错误是什么意思?


 回到顶部
帅哥哟,离线,有人找我吗?
唐尸三摆手
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:928 积分:7769 威望:0 精华:13 注册:2008/9/1 11:58:00
  发帖心情 Post By:2010/12/7 10:29:00 [显示全部帖子]

不知我的表有什么问题,只是出来了第二级


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

 回到顶部
帅哥哟,离线,有人找我吗?
唐尸三摆手
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:928 积分:7769 威望:0 精华:13 注册:2008/9/1 11:58:00
  发帖心情 Post By:2010/12/7 15:49:00 [显示全部帖子]

第一列                               第二列

CP-WG-JSG-0210       B-WG-WGBJ-0210
B-WG-WGBJ-0210      B-WG-TJ-0003

 

 

就这两行数据,代码就不能通过,这种数据不合规范吗?


 


此主题相关图片如下:screenshot.jpg
按此在新窗口浏览图片

 回到顶部
总数 18 1 2 下一页