以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 增加子节点父键要保持和已有分组不变 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=123056) |
||||
-- 作者:cd_tdh -- 发布时间:2018/8/7 12:40:00 -- 增加子节点父键要保持和已有分组不变
老师如图,增加子节点时,父键和对应的分组父键一致,父键时整数型(如果为字符型,父键出不来),代码怎么修改? Dim tr As WinForm.TreeView = e.Form.Controls("TreeView1") If sd Is Nothing Then Return r("分组")=sd.Text
上述代码报错:
.NET Framework 版本:2.0.50727.8745 [此贴子已经被作者于2018/8/7 13:59:24编辑过]
|
||||
-- 作者:有点甜 -- 发布时间:2018/8/7 14:23:00 -- 1、编辑目录树,请这样做
2、改成
msgbox(sd.name) r("父键")=dt.Compute("Max(父键)","父键=" & sd.name) |
||||
-- 作者:cd_tdh -- 发布时间:2018/8/7 14:50:00 -- 以下是引用有点甜在2018/8/7 14:23:00的发言:
1、编辑目录树,请这样做
2、改成
msgbox(sd.name) r("父键")=dt.Compute("Max(父键)","父键=" & sd.name) 老师,是父键的值没传递过来,sd.name是选择的节点,怎么去过去该节点对应的父键的值呢? |
||||
-- 作者:有点甜 -- 发布时间:2018/8/7 15:09:00 -- 以下是引用cd_tdh在2018/8/7 14:50:00的发言:
老师,是父键的值没传递过来,sd.name是选择的节点,怎么去过去该节点对应的父键的值呢?
r("父键")=dt.Compute("Max(父键)","父键 =\'" & sd.parentNode.name & "\'") |
||||
-- 作者:cd_tdh -- 发布时间:2018/8/7 15:52:00 --
老师,还不对,做了个示例,麻烦看看。 |
||||
-- 作者:有点甜 -- 发布时间:2018/8/7 16:23:00 -- Dim dt As DataTable=DataTables(vars("editTable")) Dim r As DataRow=dt.AddNew Dim mp As String="新节点" \'目录树 Dim tr As WinForm.TreeView = e.Form.Controls("TreeView1") Dim sd As WinForm.TreeNode=tr.SelectedNode \'当前选择的项 Dim name As String \'标题 Dim Typ As String \'类型 If sd IsNot Nothing Then If sd.Level=0 Then typ="新节点" name="分组" Else typ="新节点" name="名称" End If Else name="名称" End If If sd Is Nothing Then r("父键")=dt.Compute("Max(父键)")+1 r("分组")="新节点" r("名称")="名称" tr.Nodes.add(r("分组"),mp) Dim s As String=r("名称") tr.SelectedNode =tr.Nodes(s) Return End If If sd.Level=0 Then r("父键")=dt.Compute("Max(父键)")+1 r("分组")="新节点" r("名称")="" tr.Nodes.add(r("分组"),mp) Dim s As String=r("名称") tr.SelectedNode =tr.Nodes(s) Else r("父键")=dt.Compute("Max(父键)","分组 =\'" & tr.SelectedNode.ParentNode.name & "\'")+1 r("分组")= "新节点" r("名称")="" Dim mynd = tr.SelectedNode.ParentNode.Nodes.add(r("分组"),mp) tr.SelectedNode=mynd End If tr.Select |
||||
-- 作者:cd_tdh -- 发布时间:2018/8/7 16:27:00 -- 老师,是增加子项不对。 |
||||
-- 作者:有点甜 -- 发布时间:2018/8/7 16:36:00 -- 以下是引用cd_tdh在2018/8/7 16:27:00的发言:
老师,是增加子项不对。
类似参考
r("父键")=dt.Compute("Max(父键)","分组 =\'" & tr.SelectedNode.ParentNode.name & "\'")+1 |
||||
-- 作者:cd_tdh -- 发布时间:2018/8/7 16:56:00 -- 老师,这个代码没问题了,但新增加的子节点在表里面不能定位到该行。 Dim tr As WinForm.TreeView = e.Form.Controls("TreeView1") |
||||
-- 作者:有点甜 -- 发布时间:2018/8/7 17:26:00 -- Dim r As DataRow=dt.AddNew If sd.Level=0 Then name="分组" typ="新节点" r("父键")=dt.Compute("Max(父键)","分组 =\'" & sd.name & "\'") r("分组")=sd.name r("名称")=typ End If dim mynd = sd.Nodes.add(r("分组"),mp) sd.Expand tr.SelectedNode = mynd tr.Select |