以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]如何生成这种目录树  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=25234)

--  作者:hanxuntx
--  发布时间:2012/11/4 12:28:00
--  [求助]如何生成这种目录树


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

如图所示,要让 1,2,3…… 的Node.Name = 1 Node.Text = 壹

请问如何实现?

列可能是多列的,不一定就是三列,也就是在BuildTree(DataTableName, Columns, Filter, Sort)的效果也要达到

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:目录树.foxdb


--  作者:38585830
--  发布时间:2012/11/4 12:36:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:未命名.jpg
图片点击可在新窗口打开查看
不知是不是这样
--  作者:hanxuntx
--  发布时间:2012/11/4 12:42:00
--  
是的。
--  作者:38585830
--  发布时间:2012/11/4 13:16:00
--  
Dim tr As WinForm.TreeView = e.Form.Controls("TreeView1")
tr.BuildTree("表A","第一列|第二列|第四列")

--  作者:hanxuntx
--  发布时间:2012/11/4 13:23:00
--  

谢谢楼上的回复,

但是这样的话,第四列的name和名称就一样了

我要求name是第三列 text是第四列


--  作者:38585830
--  发布时间:2012/11/4 13:37:00
--  

那就是你在代码里设置,当选择第三个节点的时候,在表A中找到第四列等于节点三的行,然后再将第三列的值赋给对应的项目。不知这样说能否理解?


--  作者:38585830
--  发布时间:2012/11/4 13:38:00
--  

你有例子吗?

 


--  作者:hanxuntx
--  发布时间:2012/11/4 13:41:00
--  
我上传了啊
--  作者:38585830
--  发布时间:2012/11/4 13:45:00
--  

If e.Node.Level = 2 Then \'如果单击的是第三层节点
    Dim ps() As String = e.Node.FullPath.Split("\\")  
    Dim dr As DataRow = DataTables("表A").Find("第一列 = \'" & ps(0) & "\' And 第二列 = \'" & ps(1) & "\' and 第三列 = \'" & ps(2) & "\'")
            If dr IsNot Nothing Then \'如果在表A找到对应的行,则将此行的第四列值写入相关位置.
               
                 e.Form.DropDownBox.Value = dr("第四列") \'这行例子是写入下拉窗口中的
             End If
     e.Form.DropDownBox.CloseDropdown()  \'关闭下拉目录树
   
End If

 

我理解的是这样了,这样写的话 生成目录树时就按 第一 二  三列去生成   然后取值列用第四列

[此贴子已经被作者于2012-11-4 13:46:12编辑过]

--  作者:程兴刚
--  发布时间:2012/11/4 13:58:00
--  
Dim tr As WinForm.TreeView = e.Form.Controls("TreeView1")
tr.BuildTree("表A","第一列|第二列|第三列")
Dim dr As DataRow
For Each nd As WinForm.TreeNode In tr.AllNodes
    If nd.AllNodes.Count = 0 Then
        dr = DataTables("表A").find("[第三列] = \'" & nd.name & "\'")
        If dr IsNot Nothing
            nd.text = dr("第四列")
        End If
    End If
Next