以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]节点选择框  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=78300)

--  作者:vvfree
--  发布时间:2015/12/6 16:57:00
--  [求助]节点选择框
请问节点选择框,怎样 可以让点选主节点复选框后,全选下面的子节点,
然后如果是全选状态 ,下子节点去掉一个选框后主节点为不选择状态?

--  作者:大红袍
--  发布时间:2015/12/6 17:27:00
--  

参考

 

http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=56683&skin=0

 


--  作者:vvfree
--  发布时间:2015/12/6 18:10:00
--  回复:(大红袍)参考  http://www.foxtable...
我在表datatables 加了数据没有保存    SQL 上也没有显示保存,但是load的时候 为什么没有更新? 还是有tables还是显示那条数据 但是实质上SQL上是没有的,怎么代码同步?
--  作者:大红袍
--  发布时间:2015/12/6 18:18:00
--  

你3楼的问题和你1楼的有关吗?全选的代码如下

 

For Each nd As WinForm.TreeNode In e.node.AllNodes
    nd.Checked = e.Node.Checked
Next


If e.Node.Checked = False Then
    Dim pnd As WinForm.TreeNode = e.Node.ParentNode
    Do While pnd IsNot Nothing
        pnd.Checked = False
        pnd = pnd.ParentNode
    Loop
Else
    Dim pnd As WinForm.TreeNode = e.Node.ParentNode
    Dim flag As Boolean = True
    Do While pnd IsNot Nothing
        If flag = True
            For Each nd As WinForm.TreeNode In pnd.Nodes
                If nd.Checked = False Then
                    flag = False
                    Exit For
                End If
            Next
        End If
        pnd.Checked = flag
        pnd = pnd.ParentNode
    Loop
End If


--  作者:大红袍
--  发布时间:2015/12/6 18:19:00
--  
同步的问题:你修改了数据,保存后,然后另外一台电脑要重新load才会得到最新的数据的。
--  作者:vvfree
--  发布时间:2015/12/6 18:25:00
--  回复:(大红袍)同步的问题:你修改了数据,保存后,...
那我本地的话难道要关掉重开?或者只能按上面的同步当前表?
--  作者:大红袍
--  发布时间:2015/12/6 18:31:00
--  
以下是引用vvfree在2015/12/6 18:25:00的发言:
那我本地的话难道要关掉重开?或者只能按上面的同步当前表?

 

为什么要关闭重开?你直接load表格就行啊。


--  作者:vvfree
--  发布时间:2015/12/6 19:37:00
--  回复:(大红袍)以下是引用vvfree在2015/12/6 18:25:...
load 不出来啊 ,一下是我选择后表发生改变,但是没有储存,load的时候 不能读到SQL原始数据,

For Each nd As WinForm.TreeNode In e.Node.AllNodes
nd.Checked  = e.Node.Checked
Next
Dim trv1 As WinForm.TreeView = e.Form.Controls("TreeView1")
Dim trv2 As WinForm.TreeView = e.Form.Controls("TreeView2")
Dim nd1 As WinForm.TreeNode = trv1.SelectedNode
Dim dr As DataRow
If nd1.Level = 0 Then
    dr = DataTables("ck_sz_users").Find( "[_Identify]=\'" & trv1.SelectedNode.name & "\'" )
End If
If dr IsNot Nothing Then
    Dim nd As WinForm.TreeNode = e.node
    If e.node.Checked = False
        Do While nd.parentnode IsNot Nothing
            nd = nd.parentnode
            If nd.Nodes.Count > 0
                For i As Integer = 0 To nd.Nodes.Count -1
                    If nd.Nodes(i).Checked = True
                        Exit Do
                    End If
                    If i = nd.Nodes.Count -1
                        nd.Checked = False
                    End If
                Next
            End If
        Loop
    Else
        Do While  nd.parentnode IsNot Nothing
            nd = nd.parentnode
            nd.Checked = True
        Loop
    End If
    Dim nms As String
    For Each nd2 As WinForm.TreeNode In trv2.AllNodes
        If nd2.Checked  Then
            If nd2.Level = 0 Then
                nms  = nms & "," & nd2.Name
            ElseIf nd2.Level = 1 Then
                nms  = nms & "," & nd2.ParentNode.Name & "\\" & nd2.Name
            ElseIf nd2.Level = 2 Then
                nms  = nms & "," & nd2.ParentNode.ParentNode.Name & "\\" & nd2.ParentNode.Name & "\\" & nd2.Name
            ElseIf nd2.Level = 3 Then
                nms  = nms & "," & nd2.ParentNode.ParentNode.ParentNode.Name & "\\" & nd2.ParentNode.ParentNode.Name & "\\" & nd2.ParentNode.Name & "\\" & nd2.Name
            Else
            End If
        End If
    Next
    
    If nms > "" Then
        \'nms = EncryptText(nms,"1abc","2abc")
dr("uper") = EncryptText(nms .Trim(","),"1abc","2abc")
        \'dr("uper") = nms .Trim(",")
    Else
        dr("uper") = Nothing
    End If
End If


--  作者:大红袍
--  发布时间:2015/12/6 19:45:00
--  

不明白你到底想表达什么。

 

要保存以后的数据,才能load出来啊。


--  作者:vvfree
--  发布时间:2015/12/6 20:47:00
--  回复:(大红袍)不明白你到底想表达什么。 ...
就是要LOAD没有保存到SQL之前的旧数据啊 。重新加载啊 ,我加了后台数据嘛,但是现在我不保存,想重新加载,但是加载到的数据还是会存在未保存的数据,不会清除,要同步当前表才可以。。。。