以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  如何能将按照两种不同指定数据列生成的目录树合在一起  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=77693)

--  作者:mxm121
--  发布时间:2015/11/23 17:02:00
--  如何能将按照两种不同指定数据列生成的目录树合在一起
同一个表内的数据 按照不同的数据列生成树 想合并起来在一个树下显示 这个如何实现呢
--  作者:大红袍
--  发布时间:2015/11/23 17:25:00
--  

方法一:加一列表达式,然后把多列合并成一列;

 

方法二:生成以后,循环每一个节点,把值填上去

 

For Each nd As WinForm.TreeNode In trv.AllNodes \'遍历所有节点

    nd.Text = nd.DataRow("区号") & "|" & nd.DataRow("邮编")

Next


--  作者:mxm121
--  发布时间:2015/11/23 17:46:00
--  
不是这个意思  是比如原有两个树  一个是按照 客户级别|客户分类 生成的 另一个是按照客户分类|客户级别生成的  现在想把他们在一个树下显示  0级为自己插入的一个所有数据节点  1级为刚才生成的两个树的一级。。。。 这样子的
--  作者:大红袍
--  发布时间:2015/11/23 18:15:00
--  

对拷即可。

 

Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
Dim trv2 As WinForm.TreeView = e.Form.Controls("TreeView2")
Dim ls As New List(Of Object)
ls.add(trv2.Nodes(0))
For Each nd As WinForm.TreeNode In trv.AllNodes
    If nd.Level >= 1 Then
        Dim idx As Integer = nd.level-1
        Dim nnd = ls(idx).Nodes.Add(nd.Name, nd.Text)
        If nd.Nodes.count > 0 Then
            If idx >= ls.count - 1 Then
                ls.add(nnd)
            Else
                ls(idx+1) = nnd
            End If
        End If
    End If
Next