【发布时间】:2014-11-22 19:28:23
【问题描述】:
我在 VB.net 中用树形视图显示树有问题
这里是循环代码
While Not mROC.EOF
tmpStr = ""
For i = 0 To UBound(sColumns) Step 3
If sColumns(2 + i) = "" Then
tmpStr = tmpStr & mROC(sColumns(i)).Value
tmpStr = tmpStr & " "
Else
tmpStr = tmpStr & Format(mROC(sColumns(i)).Value, sColumns(2 + i))
tmpStr = tmpStr & " "
End If
Next
If mROC("parentCode").Value = "" Then
srcTv.Nodes.Add(mROC("code").Value & "A", tmpStr)
Else
Dim TNode() As TreeNode = srcTv.Nodes.Find(mROC("parentCode").Value & "A", True)
TNode(0).Nodes.Add(mROC("code").Value & "A", tmpStr)
End If
mROC.MoveNext()
End While
srcTv 是树视图
mROC 是使用 select 命令循环数据库
tmpStr 只是结合数据库中的字段代码和描述,例如:“CT00001 Ari”
这里是数据库
code |description |parentCode
-----------------------------------
CT00001 |Ari |KMD
CT00002 |Angga |KMD
CT00003 |Bagus |CT00001
KMD |Parent_A |
OLH |Parent_B |
我想要的结果是
KMD Parent_A
-CT00001 Ari
-CT00003 Bagus
-CT00002 Angga
OLH Parent_B
当父母只有 1 个孩子时,我的代码工作正常,但加载第二个孩子时出错 (CT00003 Bagus)。
请帮助我完成这个项目,并为读者提供 GBU 并回答我的问题。 ^_^
【问题讨论】:
-
将树结构扁平化为 dbase 表是非常有问题的。要么表需要仔细排序,因此您只会在子节点之前遇到父节点,或者您必须自己搜索父节点。你什么都没做。
-
这是我的第一个猜测,但他表示在达到 2 级节点之前一切正常,发生这种情况的唯一原因是如果他尝试分配一个已使用的密钥跨度>
标签: vb.net treeview parent-child