[求助]表中类别只有一列(如图1),如何按类别列内容生成图2的目录树?
此主题相关图片如下:b.gif
此主题相关图片如下:a.gif
如果您把这样一列的数据分成多级类别(多列),会非常简单,否则,很麻烦!
[此贴子已经被作者于2010-3-23 22:01:26编辑过]
以下是引用程兴刚在2010-3-23 22:01:00的发言:如果您把这样一列的数据分成多级类别(多列),会非常简单,否则,很麻烦!
[此贴子已经被作者于2010-3-23 22:01:26编辑过]
恩,确实是这样。实在不行的话,也只好这样子。
以下是引用mr725在2010-3-23 23:02:00的发言:
遍历行,再遍历单元格.split("\") 后, 用 .Nodes.Add 应该可以完成...... 猜测的~
不会弄。
Dim nd As WinForm.TreeNode
For Each dr As DataRow In DataTables("表A").Select("","类别")
Dim Path As String = dr("类别")
Dim Parts() As String = Path.Split("\")
Dim Start As Integer
If nd IsNot Nothing Then
Do
If Path.StartsWith(nd.FullPath) Then
Start = nd.Level + 1
nd = nd.Nodes.Add(Parts(Start),Parts(start))
Start = nd.Level + 1
Exit do
Else
nd = nd.ParentNode
If nd Is Nothing Then
Exit do
End If
End If
Loop
End If
If nd Is Nothing Then
nd = e.Form.Controls("TreeView1").Nodes.Add(Parts(0),Parts(0))
start = 1
End If
For i As Integer = Start To Parts.Length - 1
nd = nd.Nodes.Add(Parts(i),Parts(i))
Next
Next
[此贴子已经被作者于2010-3-24 1:00:34编辑过]
这样不知满足您:
Dim tr As WinForm.TreeView = Forms("mls").Controls("TreeView1")
Dim nd As WinForm.TreeNode
Dim fs as String
tr.Nodes.Clear
For Each dr as DataRow in datatables("表名").Select("","类别")
If dr("类别") <> "" Then
nd = Tr.Nodes.Add("Root1",dr("类别").split("\")(0))
fs = dr("类别").split("-:special:1:-).length
for n as integer = 1 to fs-1
nd.Nodes.Add("Sub" & n,dr("类别").split("-:special:1:-)(n))
next
End If
Next
不如狐爸的强!~
[此贴子已经被作者于2010-3-24 0:59:11编辑过]