Foxtable(狐表)用户栏目专家坐堂 → 目录树目录创建问题


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

主题:目录树目录创建问题

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


加好友 发短信
等级:一尾狐 帖子:461 积分:4271 威望:0 精华:0 注册:2019/8/5 17:49:00
目录树目录创建问题  发帖心情 Post By:2021/2/22 16:38:00 [只看该作者]

“增加子节点”按钮的Click事件代码:

Dim tr As WinForm.TreeView
Dim nd As WinForm.TreeNode
tr = e.Form.Controls("TreeView1")
nd = tr.SelectedNode
If nd IsNot Nothing Then
    If nd.Level = 3 Then
        MessageBox.Show("最多允许四层节点!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    Else
        
        If nd.Level = 0 And User.IsRole("系统管理员") Then
            Dim dr As DataRow = DataTables("目录表").AddNew
            dr("一级目录") = nd.Text
            dr("二级目录") = "新节点"
        ElseIf nd.Level = 1 And nd.text = " & user.group & " Or User.IsRole("系统管理员") Then
            Dim dr As DataRow = DataTables("目录表").AddNew
            dr("一级目录") = nd.ParentNode.Text
            dr("二级目录") = nd.text
            dr("三级目录") = "新节点"
        ElseIf nd.Level = 2 And nd.ParentNode.text = " & user.group & " Or User.IsRole("系统管理员") Then
            Dim dr As DataRow = DataTables("目录表").AddNew
            dr("一级目录") = nd.ParentNode.ParentNode.Text
            dr("二级目录") = nd.ParentNode.Text
            dr("三级目录") = nd.text
            dr("四级目录") = "新节点"
            
        End If
        nd = nd.Nodes.Add("新节点")
        tr.SelectedNode = nd
        tr.Select()
        tr.BeginEdit()
    End If
End If

蓝总:上面是创建子节点的代码,主要是用于创建四级目录,本来中午已经调试好了,现在出问题了,前三级创建都没问题,就是在创建四级目录后,二、三四级节点变成一二三节点,无法创建第四级节点。

图片点击可在新窗口打开查看此主题相关图片如下:qq截图20210222163750.jpg
图片点击可在新窗口打开查看





 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105864 积分:538377 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/2/22 16:40:00 [只看该作者]

节点名称重复了,同一个路径不要使用同样的名称

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


加好友 发短信
等级:一尾狐 帖子:461 积分:4271 威望:0 精华:0 注册:2019/8/5 17:49:00
  发帖心情 Post By:2021/2/22 16:44:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:2222.jpg
图片点击可在新窗口打开查看
蓝总:还是不行,我用了不同的名字,一到第四个节点,就有问题

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105864 积分:538377 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/2/22 16:49:00 [只看该作者]

If nd.Level = 3 Then
        MessageBox.Show("最多允许四层节点!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    Else
        
        If nd.Level = 0 And User.IsRole("系统管理员") Then
            Dim dr As DataRow = DataTables("目录表").AddNew
            dr("一级目录") = nd.Text
            dr("二级目录") = "新节点"
        ElseIf nd.Level = 1 And nd.text = " & user.group & " Or User.IsRole("系统管理员") Then
            Dim dr As DataRow = DataTables("目录表").AddNew
            dr("一级目录") = nd.ParentNode.Text
            dr("二级目录") = nd.text
            dr("三级目录") = "新节点"
        ElseIf nd.Level = 2 And (nd.ParentNode.text = " & user.group & " Or User.IsRole("系统管理员")) Then
            Dim dr As DataRow = DataTables("目录表").AddNew
            dr("一级目录") = nd.ParentNode.ParentNode.Text
            dr("二级目录") = nd.ParentNode.Text
            dr("三级目录") = nd.text
            dr("四级目录") = "新节点"
 else
return           
        End If
        nd = nd.Nodes.Add("新节点")
        tr.SelectedNode = nd
        tr.Select()
        tr.BeginEdit()
    End If

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


加好友 发短信
等级:一尾狐 帖子:461 积分:4271 威望:0 精华:0 注册:2019/8/5 17:49:00
  发帖心情 Post By:2021/2/22 16:54:00 [只看该作者]

谢谢蓝总

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


加好友 发短信
等级:一尾狐 帖子:461 积分:4271 威望:0 精华:0 注册:2019/8/5 17:49:00
  发帖心情 Post By:2021/2/23 11:04:00 [只看该作者]

Dim tr As WinForm.TreeView
Dim nd As WinForm.TreeNode
tr = e.Form.Controls("TreeView1")
nd = tr.SelectedNode
If nd IsNot Nothing Then
    If nd.Level = 3 Then
        MessageBox.Show("最多允许四层目录!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    Else
        
            If nd.Level = 0 And User.IsRole("系统管理员") Then
                Dim dr As DataRow = DataTables("目录表").AddNew
                dr("一级目录") = nd.Text
                dr("二级目录") = "新目录"
            ElseIf nd.Level = 1 And (nd.text = User.Group Or User.IsRole("系统管理员")) Then
                Dim dr As DataRow = DataTables("目录表").AddNew
                dr("一级目录") = nd.ParentNode.Text
                dr("二级目录") = nd.text
                dr("三级目录") = "新目录"
            ElseIf nd.Level = 2 And (nd.ParentNode.text = User.Group Or User.IsRole("系统管理员")) Then
                Dim dr As DataRow = DataTables("目录表").AddNew
                dr("一级目录") = nd.ParentNode.ParentNode.Text
                dr("二级目录") = nd.ParentNode.Text
                dr("三级目录") = nd.text
                dr("四级目录") = "新目录"
            Else
                Return
            End If
            nd = nd.Nodes.Add("新目录")
            tr.SelectedNode = nd
            tr.Select()
            tr.BeginEdit()
        End If

End If
当非管理员创建二级目录时(创建部门),就报错弹出,
图片点击可在新窗口打开查看此主题相关图片如下:qq截图20210223105931.jpg
图片点击可在新窗口打开查看


 回到顶部
帅哥,在线噢!
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105864 积分:538377 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/2/23 11:44:00 [只看该作者]

调试技巧:http://www.foxtable.com/webhelp/scr/1485.htm,哪一句代码出错?

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


加好友 发短信
等级:一尾狐 帖子:461 积分:4271 威望:0 精华:0 注册:2019/8/5 17:49:00
  发帖心情 Post By:2021/2/23 14:41:00 [只看该作者]

Dim tr As WinForm.TreeView
Dim nd As WinForm.TreeNode
tr = e.Form.Controls("TreeView1")
nd = tr.SelectedNode
If nd IsNot Nothing Then
    If nd.Level = 3 Then
        MessageBox.Show("最多允许四层目录!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    Else
        MessageBox.Show(5)

            If nd.Level = 0 And User.IsRole("系统管理员") Then
MessageBox.Show(1)

                Dim dr As DataRow = DataTables("目录表").AddNew
MessageBox.Show(2)

                dr("一级目录") = nd.Text
MessageBox.Show(3)

                dr("二级目录") = "新目录"
MessageBox.Show(4)

            ElseIf nd.Level = 1 And (nd.text = User.Group Or User.IsRole("系统管理员")) Then
                Dim dr As DataRow = DataTables("目录表").AddNew
                dr("一级目录") = nd.ParentNode.Text
                dr("二级目录") = nd.text
                dr("三级目录") = "新目录"
            ElseIf nd.Level = 2 And (nd.ParentNode.text = User.Group Or User.IsRole("系统管理员")) Then
                Dim dr As DataRow = DataTables("目录表").AddNew
                dr("一级目录") = nd.ParentNode.ParentNode.Text
                dr("二级目录") = nd.ParentNode.Text
                dr("三级目录") = nd.text
                dr("四级目录") = "新目录"
            Else
                Return
            End If
MessageBox.Show(6)
            nd = nd.Nodes.Add("新目录")
MessageBox.Show(7)
            tr.SelectedNode = nd
            tr.Select()
            tr.BeginEdit()
MessageBox.Show(8)
        End If

End If

当非管理员创建二级目录时(创建部门时),弹出“5” ,代码就没走下去了,

 回到顶部
帅哥,在线噢!
有点蓝
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105864 积分:538377 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/2/23 14:44:00 [只看该作者]

这个代码不可能出错的。删除项目里的bin目录,然后重启项目试试

还不行请上传实例测试

 回到顶部