以文本方式查看主题 - 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、”架构“表,同样又增加一行”老板“ 求老师指点及代码。 |
-- 作者:大红袍 -- 发布时间:2015/6/5 14:28:00 -- 这个意思?
|
-- 作者:blsu33 -- 发布时间:2015/6/5 14:50:00 -- 看到了, dr("架构名称")=ns.FullPath 大红袍老师, 点击左面的目录树”老板“,点击”插入架构“,会发现”新架构“节点增加进去了,但是这个按钮的状态不对
|
-- 作者:blsu33 -- 发布时间:2015/6/5 14:53:00 -- 同时 表中出现两个"老板" |
-- 作者:大红袍 -- 发布时间: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 |