以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]全选功能如何实现  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=41940)

--  作者:sxy_123456
--  发布时间:2013/10/30 17:35:00
--  [求助]全选功能如何实现
点一个工程名称下层节点全部选择如何写代码
图片点击可在新窗口打开查看此主题相关图片如下:qq截图20131030173206.png
图片点击可在新窗口打开查看
窗口
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:111.zip

[此贴子已经被作者于2013-10-31 13:49:05编辑过]

--  作者:Bin
--  发布时间:2013/10/30 17:46:00
--  
好歹也上个例子啊,发个窗口模版还是绑定数据源的,你让别人如何使用.


获得该节点的 allnodes 然后设置checked属性为TRUE即可 很简单的


--  作者:lsy
--  发布时间:2013/10/30 17:48:00
--  
If e.Node.Level = 1 Then
    For Each nd As WinForm.TreeNode In e.Node.AllNodes
        nd.Checked = True       
    Next
End If
[此贴子已经被作者于2013-10-30 17:53:22编辑过]

--  作者:程兴刚
--  发布时间:2013/10/30 17:57:00
--  
If e.Node.Nodes.Count > 0 Then
    For Each nd As WinForm.TreeNode In e.Node.Nodes
        nd.Checked = True
    Next
End If

--  作者:sxy_123456
--  发布时间:2013/10/30 17:58:00
--  
窗口代码如下,不知高手能不能帮到我
If e.Node.Level = 2 Then
    Dim dr As DataRow = e.Node.DataRow
    If e.Node.Checked = True Then
        Dim dr1 As DataRow = DataTables("材料采购申请单").AddNew()
        dr1("产品编号") = dr("产品编号")
        dr1("产品名称") = dr("产品名称")
        dr1("品牌规格") = dr("品牌规格")
        dr1("单位") = dr("单位")
        dr1("成本预算数量") = dr("数量")
        dr1("成本预算单价") = dr("单价")
    Else
        Dim dr2 As DataRow = DataTables("材料采购申请单").Find("产品名称 = \'" & dr("产品名称") & "\' And 品牌规格 = \'" & dr("品牌规格") & "\'","_Identify DESC",0)
        If dr2 IsNot Nothing AndAlso dr2.RowState = DataRowState.Added Then
            dr2.Delete()
        End If
    End If
Else
    e.Node.Checked = False
End If



If e.Node.Level = 2 Then
    Dim Vals() As String = e.Node.FullPath.Split("\\")
    Dim Filter As String = "[中标工程名称] = \'" & vals(0) & "\' and [产品名称] = \'" & Vals(1) & "\' And [品牌规格] = \'" & Vals(2) & "\'"
    Dim dr As DataRow = DataTables("材料费预算表").Find(Filter)
    Dim r As Row = Tables("材料采购申请单").Current
    r("产品编号") = dr("产品编号")
    r("产品名称") = dr("产品名称")
    r("品牌规格") = dr("品牌规格")
    r("单位") = dr("单位")
    r("成本预算数量") = dr("数量")
    r("成本预算单价") = dr("单价")
    e.Form.Close()
End If


[此贴子已经被作者于2013-10-30 17:58:50编辑过]

--  作者:有点甜
--  发布时间:2013/10/30 19:28:00
--  
 回复6楼,参考4、5楼的代码。
--  作者:sxy_123456
--  发布时间:2013/10/30 19:46:00
--  
我可以实现全选了,但我全选后不能实现全选后自动输入信息,一个一个选能,如何实现
--  作者:有点甜
--  发布时间:2013/10/30 20:15:00
--  
不是直接在循环里写入你赋值的代码就行了?实在不会,你就做个例子上来。

If e.Node.Nodes.Count > 0 Then
    For Each nd As WinForm.TreeNode In e.Node.Nodes
        nd.Checked = True
\'下面写入你赋值的代码
    Next
End If
[此贴子已经被作者于2013-10-30 20:16:36编辑过]

--  作者:sxy_123456
--  发布时间:2013/10/31 11:54:00
--  
上传例子求助,现在只能单选,我想又能单选,又能点工程名称全选
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目4.table


--  作者:Bin
--  发布时间:2013/10/31 12:01:00
--  
莫名奇妙的例子,你例子做的是1 2级节点不可选.