以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]插入节点  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=69455)

--  作者:blsu33
--  发布时间:2015/6/5 14:21:00
--  [求助]插入节点
老师,
    对于插入节点不是特别清楚,求老师解疑:
例子在在老板前“插入角色”,发现两个问题
1、在老板上 插入结构,发现新增加的节点也会继承老板的“使用”状态,导致“问题1”的Button 不可用
2、”架构“表,同样又增加一行”老板“
求老师指点及代码。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:用户.foxdb



--  作者:大红袍
--  发布时间:2015/6/5 14:28:00
--  

这个意思?

 


        Case 0
            ns = tr.Nodes.Insert("新架构"& tr.Nodes.Count()+1,id)
            tr.SelectedNode=ns
            Dim dr As DataRow = DataTables("架构").AddNew
            dr("架构名称")=ns.FullPath
            dr("使用") = False
            tr.SelectedNode = ns
            MessageBox.Show(ns.Name)
            tr.Select
            tr.BeginEdit
            Vars("numbh")=Vars("numbh")+1


--  作者:blsu33
--  发布时间:2015/6/5 14:50:00
--  
看到了, dr("架构名称")=ns.FullPath

大红袍老师,

     点击左面的目录树”老板“,点击”插入架构“,会发现”新架构“节点增加进去了,但是这个按钮的状态不对

图片点击可在新窗口打开查看此主题相关图片如下:是否可用与
图片点击可在新窗口打开查看


--  作者:blsu33
--  发布时间:2015/6/5 14:53:00
--  
同时 表中出现两个"老板"

图片点击可在新窗口打开查看此主题相关图片如下:表里出现两个老板.jpg
图片点击可在新窗口打开查看


--  作者:大红袍
--  发布时间:2015/6/5 14:56:00
--  

 什么不对,取决于你的赋值啊 dr("使用") = False


--  作者:blsu33
--  发布时间:2015/6/5 17:00:00
--  
老师,
  dr("使用") = False 去掉一样不行 不是这句的问题 


--  作者:blsu33
--  发布时间:2015/6/5 17:03:00
--  
老师,
     在”老板“上面插入新节点,达到:
Button 问题1 是否可用 自动根据对应的行”使用“的状态变成可编辑
然后 架构表显示”新架构"

怎么实现

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

方法一 根据nd节点的name或text去查找对应的行,然后赋值

 

方法二 生成目录树的时候,用tag属性记录使用的值,需要的时候直接用节点的属性即可


--  作者:blsu33
--  发布时间:2015/6/5 17:34:00
--  
老师,
   我上传的例子,属于方法一,没看出代码哪里不正确,但是没实现啊。

--  作者:blsu33
--  发布时间:2015/6/5 18:20:00
--  
老师 ,是不是节点增加进去,但是行还是原来节点的位置呢?
If tr.Nodes.Count=0 Then
    MessageBox.Show("请先增加根节点!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
Else
    Dim id As Integer = nd.index
    Select nd.Level
        Case 0
            ns = tr.Nodes.Insert("新架构"& tr.Nodes.Count()+1,id)
            tr.SelectedNode=ns
            Dim dr As DataRow = DataTables("架构").AddNew
            dr("架构名称")=ns.FullPath
            dr=DataTables("架构").Find("架构名称=\'"& ns.FullPath &"\'")  重新定位到对应的行
            If dr IsNot Nothing Then
                If dr("使用")=False Then
                    For i=4 To 9
                        e.Form.Controls("Button" & i).Enabled=True
                    Next
                Else
                    For i=4 To 9
                        e.Form.Controls("Button" & i).Enabled=False
                    Next
                End If
            End If
            tr.SelectedNode = ns
            tr.Select
            tr.BeginEdit
            Vars("numbh")=Vars("numbh")+1
        Case Else
            ns= nd.ParentNode.nodes.Insert("点"& tr.Nodes.Count()+1,id)
            tr.SelectedNode=ns
            Dim dr As DataRow = DataTables("架构").AddNew
            dr("架构名称")=ns.FullPath
            dr=DataTables("架构").Find("架构名称=\'"& ns.FullPath &"\'")
            If dr IsNot Nothing Then
                If dr("使用")=False Then
                    For i=4 To 9
                        e.Form.Controls("Button" & i).Enabled=True
                    Next
                Else
                    For i=4 To 9
                        e.Form.Controls("Button" & i).Enabled=False
                    Next
                End If
            End If
            tr.Select
            tr.BeginEdit
            Vars("numbh")=Vars("numbh")+1
    End Select
End If