以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]组合目录树节点内容  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=85500)

--  作者:新航程小何
--  发布时间:2016/5/27 9:11:00
--  [求助]组合目录树节点内容
各位老师,我想实现的功能是:
1、点击第一层复选框 的时候,下面的节点全部选中(这个功能已经实现)
2、同时获取到这个节点全部的节点名称,实现的结果:第一层节点0\\第二层节点1\\第三层节点,第一层节点0\\第二层节点1\\第三层节点,第一层节点0\\第二层节点1\\第三层节点    (功能没有实现)

下面是我的代码:

在aftercheckNode中的代码

\'复选状态修改
For Each nd As WinForm.TreeNode In e.node.AllNodes  \'同步子节点选中状态
    If nd.FullPath.StartsWith(e.node.FullPath) Then
        nd.Checked = e.node.Checked
    End If
Next
If e.node.Checked = False Then \'如果本次操作为清除节点选中状态
    Dim pd As WinForm.TreeNode = e.node.ParentNode \'获取父节点
    Do While pd IsNot Nothing
        pd.Checked = False \'清除父节点选中状态
        pd  = pd.ParentNode \'继续获取上一层级的父节点
    Loop
End If
\'获取查询路径
Dim flt As String=""
Dim  d1 As String
Dim  d2 As String
Dim  d3 As String
Dim trv1 As WinForm.TreeView=e.Form.controls("treeview1")
For Each nd As WinForm.TreeNode In trv1.AllNodes
    If nd.Checked And  e.node.level=2
    d1=e.node.DataRow("BaseName")
    d2=e.node.DataRow("DistrictName")
    d3=e.node.DataRow("GhName")
        flt=flt & d1 & "\\" & d2 & "\\" & d3 & ","  
    End If
Next
Vars("sx1")=flt
MessageBox.show(Vars("sx1"))

--  作者:新航程小何
--  发布时间:2016/5/27 9:18:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:目录树.table

这是我做的例子,老师帮忙看一下
[此贴子已经被作者于2016/5/27 9:18:00编辑过]

--  作者:新航程小何
--  发布时间:2016/5/27 9:40:00
--  
求助!
[此贴子已经被作者于2016/5/27 10:14:08编辑过]

--  作者:新航程小何
--  发布时间:2016/5/27 10:15:00
--  
老师,这个真心是没思路,指导一下
--  作者:大红袍
--  发布时间:2016/5/27 10:24:00
--  

查询路径直接获取FullName或者FullPath就行啊。

 

http://www.foxtable.com/help/topics/0906.htm

 


--  作者:新航程小何
--  发布时间:2016/5/27 10:27:00
--  
好的,谢谢老师,我研究一下
--  作者:新航程小何
--  发布时间:2016/5/27 10:50:00
--  
老师,搞定了,多谢!
Dim flt As String=""
Dim trv1 As WinForm.TreeView=e.Form.controls("treeview1")
For Each nd As WinForm.TreeNode In trv1.AllNodes
    If nd.Checked =True
        Select Case  nd.Level       
            Case 2
                flt= flt & nd.FullPath & ","
        End Select   
    End If
Next
Vars("sx1")=flt
MessageBox.show(Vars("sx1"))