【问题标题】:VB.NET treeview error add second child nodesVB.NET 树视图错误添加第二个子节点
【发布时间】: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


【解决方案1】:

嗯,

您似乎得到了重复的密钥。 试试这个:

        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)
            Dim sKey As String = mROC("code").Value
            If srcTv.Nodes.Find(sKey & "A", True) Is Nothing Then
                sKey &= "A"
            Else
                sKey &= "B"
            End If
            TNode(0).Nodes.Add(sKey, tmpStr)
        End If**

【讨论】:

    猜你喜欢
    • 2012-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-25
    • 1970-01-01
    • 2010-11-26
    • 2015-03-20
    • 1970-01-01
    相关资源
    最近更新 更多