以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  关于目录树和动态加载  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=57944)

--  作者:coolbhb
--  发布时间:2014/10/8 20:40:00
--  关于目录树和动态加载
我想做一个像帮助文件这样的一个目录树,双击的时候展开节点但是不加载数据,只有单击或者双击目录树最底层的节点才加载数据呢?上代码帮忙修改下吧
代码如下:
 1 窗口afterload:
 Dim cmd As New SQLCommand
Dim dt As DataTable
cmd.CommandText = "SELECT DISTINCT 供热站,小区,楼号,单元 from {客户信息}"
dt = cmd.ExecuteReader()
Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
trv.BuildTree(dt,"供热站|小区|楼号|单元")


  2 目录树的NodeMouseDoubleClick 或者NodeMouseClick
Dim Filter As String
Dim dr As DataRow = e.Node.DataRow 
If e.Node.Text <> "显示所有客户" Then
    Select Case e.Node.Level
        Case 3
            Filter = "[供热站] = \'" & dr("供热站") & "\' And [小区] = \'" & dr("小区") & "\' And [楼号] = \'" & dr("楼号") & "\' And [单元] = \'" & dr("单元") & "\'"
    End Select
End If
Tables("客户信息").Filter = Filter

--  作者:有点甜
--  发布时间:2014/10/8 20:44:00
--  

下面这段代码的意思是,只有你点击第4级节点,才设置筛选条件,你要把第一级、第二级、第三级的判断也加上才会每点击一下才显示你要的数据的。

 

Select Case e.Node.Level
    Case 3
        Filter = "[供热站] = \'" & dr("供热站") & "\' And [小区] = \'" & dr("小区") & "\' And [楼号] = \'" & dr("楼号") & "\' And [单元] = \'" & dr("单元") & "\'"
End Select


--  作者:coolbhb
--  发布时间:2014/10/8 20:48:00
--  
这个我知道,但是不知道怎么判断,比如Case 0 然后如何让他不筛选也就是不加载数据?
--  作者:有点甜
--  发布时间:2014/10/8 20:49:00
--  

Select Case e.Node.Level

    Case 0

        Filter = "1=2"
    Case 3
        Filter = "[供热站] = \'" & dr("供热站") & "\' And [小区] = \'" & dr("小区") & "\' And [楼号] = \'" & dr("楼号") & "\' And [单元] = \'" & dr("单元") & "\'"
End Select