Foxtable(狐表)用户栏目专家坐堂 → 请教目录树


  共有3490人关注过本帖树形打印复制链接

主题:请教目录树

帅哥哟,离线,有人找我吗?
hbhb
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:5054 积分:13031 威望:0 精华:0 注册:2014/5/15 21:34:00
请教目录树  发帖心情 Post By:2014/7/4 8:58:00 [只看该作者]

请教大师:
帮助中目录树与数据表的实例二中,如何禁止插入同名子节点?


 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By: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
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:5054 积分:13031 威望:0 精华:0 注册:2014/5/15 21:34:00
  发帖心情 Post By:2014/7/4 9:28:00 [只看该作者]

谢谢:老大

 回到顶部
帅哥哟,离线,有人找我吗?
hbhb
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:5054 积分:13031 威望:0 精华:0 注册:2014/5/15 21:34:00
  发帖心情 Post By:2014/7/4 11:13:00 [只看该作者]

请问:点击对话框“已存在该节点”后如何回到重命名的节点?

 回到顶部
帅哥哟,离线,有人找我吗?
hbhb
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:5054 积分:13031 威望:0 精华:0 注册:2014/5/15 21:34:00
  发帖心情 Post By:2014/7/4 11:17:00 [只看该作者]

另外:请问当发现插入的节点是存在时自动删除该插入的节点,如何搞?

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/7/4 11:18:00 [只看该作者]

最后加上

 

e.Sender.SelectedNode = e.Node


 回到顶部
帅哥哟,离线,有人找我吗?
hbhb
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:5054 积分:13031 威望:0 精华:0 注册:2014/5/15 21:34:00
  发帖心情 Post By:2014/7/4 12:15:00 [只看该作者]

还是不能返回此节点?

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/7/4 14:21:00 [只看该作者]

以下是引用hbhb在2014-7-4 12:15:00的发言:
还是不能返回此节点?

 

你说的返回此节点是什么意思?不是选中这个节点?

 

e.Sender.SelectedNode = e.Node


 回到顶部
帅哥哟,离线,有人找我吗?
hbhb
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:5054 积分:13031 威望:0 精华:0 注册:2014/5/15 21:34:00
  发帖心情 Post By:2014/7/4 14:25:00 [只看该作者]

就是不返回选中的节点!
上面的代码示例也是这样。

 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/7/4 14:31:00 [只看该作者]

不是很理解你的意思,能否换个方式解释一下.

 回到顶部
总数 15 1 2 下一页