以文本方式查看主题

-  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
--  
不是很理解你的意思,能否换个方式解释一下.