以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  节点datarow属性递归时的问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=44824)

--  作者:scott518
--  发布时间:2014/1/9 16:28:00
--  节点datarow属性递归时的问题
当选择产品编码切换时会出错,不知道什么原因,请教大家,谢谢!
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:递归目录树.table



--  作者:狐狸爸爸
--  发布时间:2014/1/9 16:41:00
--  

某行代码换个位置,原因自己琢磨一下:

 

 

Dim tr As WinForm.TreeView = e.Form.Controls("TreeView1")
Dim Cmb1 As String = e.Form.Controls("ComboBox1").Value
Dim dt As DataTable = DataTables("MPS_计划明细")
\'生成目录树
Select Case Cmb1
    Case "订单编号"
        tr.Nodes.Clear \'清空当前目录树
        tr.buildtree("MPS_计划明细","订单编号|顶层编码")
        tr.Nodes.Insert("显示所有",0) \'最顶端显示
        tr.StopRedraw()
        For Each nd As WinForm.treeNode In tr.AllNodes
            If nd.Level = 1 Then
                nd.text = nd.text & "|" & nd.DataRow("品名")
                Functions.Execute("AddChildren_MPS",nd,dt)
            End If
        Next
        tr.ResumeRedraw()
    Case "客户"
        tr.Nodes.Clear \'清空当前目录树
        tr.buildtree("MPS_计划明细","客户|订单编号|顶层编码")
        tr.Nodes.Insert("显示所有",0) \'最顶端显示
        tr.StopRedraw()
        For Each nd As WinForm.treeNode In tr.AllNodes
            If nd.Level = 2 Then
                nd.text = nd.text & "|" & nd.DataRow("品名")
                Functions.Execute("AddChildren_MPS",nd,dt)
            End If
        Next
        tr.ResumeRedraw()
    Case "产品编码"
        tr.Nodes.Clear \'清空当前目录树
        tr.buildtree("MPS_计划明细","顶层编码")
        tr.StopRedraw()
        For Each nd As WinForm.treeNode In tr.AllNodes
            If nd.Level = 0 Then
                nd.text = nd.text & "|" & nd.DataRow("品名")
                Functions.Execute("AddChildren_MPS",nd,dt)
            End If
        Next
        tr.Nodes.Insert("显示所有",0) \'最顶端显示
        tr.ResumeRedraw()
End Select

 

 


--  作者:Bin
--  发布时间:2014/1/9 16:50:00
--  
呵呵,楼主你这样会循环到你插入的节点,但是你插入的节点是没有nd.DataRow的
--  作者:scott518
--  发布时间:2014/1/9 17:16:00
--  
谢谢,原来忽略了这个问题。