以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 请教目录树 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=53278) |
-- 作者:hbhb -- 发布时间:2014/7/4 8:58:00 -- 请教目录树 请教大师: 帮助中目录树与数据表的实例二中,如何禁止插入同名子节点? |
-- 作者:Bin -- 发布时间:2014/7/4 9:07:00 -- AfterEditNode 代码改一下,利用FIND查找是否已经存在节点 If e.NewText = "" Then e.Cancel = True Return End If Dim pth() As String = e.Node.FullPath.Split("\\") Dim dr As DataRow Select Case e.node.Level Case 0 dr= DataTables("表A").Find("大类 = \'" & e.NewText & "\'") If dr Is Nothing Then DataTables("表A").ReplaceFor("大类",e.NewText,"大类 = \'" & pth(0) & "\'") Else MessageBox.show("已存在该节点") e.Cancel=True End If Case 1 dr= DataTables("表A").Find("大类 = \'" & pth(0) & "\' And 二类 = \'" & e.NewText & "\'") If dr Is Nothing Then DataTables("表A").ReplaceFor("二类",e.NewText,"大类 = \'" & pth(0) & "\' And 二类 = \'" & pth(1) & "\'") Else MessageBox.show("已存在该节点") e.Cancel=True End If Case 2 dr= DataTables("表A").Find("大类 = \'" & pth(0) & "\' And 二类 = \'" & pth(1) & "\' And 三类 = \'" & e.NewText & "\'") If dr Is Nothing Then DataTables("表A").ReplaceFor("三类",e.NewText,"大类 = \'" & pth(0) & "\' And 二类 = \'" & pth(1) & "\' And 三类 = \'" & pth(2) & "\'") Else MessageBox.show("已存在该节点") e.Cancel=True End If End Select e.Node.Name = e.NewText |
-- 作者:hbhb -- 发布时间:2014/7/4 9:28:00 -- 谢谢:老大 |
-- 作者:hbhb -- 发布时间:2014/7/4 11:13:00 -- 请问:点击对话框“已存在该节点”后如何回到重命名的节点? |
-- 作者:hbhb -- 发布时间:2014/7/4 11:17:00 -- 另外:请问当发现插入的节点是存在时自动删除该插入的节点,如何搞? |
-- 作者:有点甜 -- 发布时间:2014/7/4 11:18:00 -- 最后加上
e.Sender.SelectedNode = e.Node |
-- 作者:hbhb -- 发布时间:2014/7/4 12:15:00 -- 还是不能返回此节点? |
-- 作者:有点甜 -- 发布时间:2014/7/4 14:21:00 -- 以下是引用hbhb在2014-7-4 12:15:00的发言:
还是不能返回此节点?
你说的返回此节点是什么意思?不是选中这个节点?
e.Sender.SelectedNode = e.Node |
-- 作者:hbhb -- 发布时间:2014/7/4 14:25:00 -- 就是不返回选中的节点! 上面的代码示例也是这样。
|
-- 作者:Bin -- 发布时间:2014/7/4 14:31:00 -- 不是很理解你的意思,能否换个方式解释一下. |