Foxtable(狐表)用户栏目专家坐堂 → [求助]关于目录树授权的一个细节问题!【例子已上传】


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

主题:[求助]关于目录树授权的一个细节问题!【例子已上传】

帅哥,在线噢!
狐狸爸爸
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47477 积分:251256 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/12/30 9:06:00 [显示全部帖子]

将你的例子发上来


 回到顶部
帅哥,在线噢!
狐狸爸爸
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47477 积分:251256 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/12/30 11:12:00 [显示全部帖子]

Dim tr1 As WinForm.TreeView = e.Form.Controls("TreeView1")
Dim tr2 As WinForm.TreeView = e.Form.Controls("TreeView2")
If tr2.Focused  AndAlso e.node.Level > 0  Then
    Dim nd1 As WinForm.TreeNode = tr1.SelectedNode
    Dim nd2 As WinForm.TreeNode = e.node
    Dim dr As DataRow
    Dim nds As New List(of winform.treenode)
    If nd1.Nodes.count = 0 Then
        nds.add(nd1)
    Else
        nds.addrange(nd1.nodes)
    End If
    For Each nd As WinForm.TreeNode In nds
        dr = DataTables("授权").Find("权限 = '" & nd2.Text & "'")
        Dim nms As New List(of String)
       nms.Addrange(dr("用户").trim(",").split(","))
        Dim nm As String  = nd.Text.trim("←")
        If nd2.Checked = True Then
            If nms.Contains(nm) = False Then
                nms.add(nm)
            End If
        Else
            If nms.Contains(nm) Then
                nms.Remove(nm)
            End If
        End If
        dr("用户") = String.Join(",",nms.ToArray)
    Next
End If

 回到顶部
帅哥,在线噢!
狐狸爸爸
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47477 积分:251256 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/12/30 14:15:00 [显示全部帖子]

呵呵,其实帮助的例子很好,何必这么辛苦的自己做呢,可以单项授权,也可以整个分类授权,不是更灵活和实用吗?

这种玩意,可不是随便能改的,需要非常老练才行:

 

Dim tr1 As WinForm.TreeView = e.Form.Controls("TreeView1")
Dim tr2 As WinForm.TreeView = e.Form.Controls("TreeView2")
If tr2.Focused AndAlso e.node.Level = tr2.SelectedNode.Level Then
    Dim dr As DataRow
    Dim nds1 As New List(of winform.treenode)
    If tr1.SelectedNode.Nodes.count = 0 Then
        nds1.add(tr1.SelectedNode)
    Else
        nds1.addrange(tr1.SelectedNode.nodes)
    End If
    Dim nds2 As New List(of winform.treenode)
    If tr2.SelectedNode.Nodes.count = 0 Then
        nds2.add(tr2.SelectedNode)
    Else
        nds2.addrange(tr2.SelectedNode.nodes)
    End If
    For Each nd1 As WinForm.TreeNode In nds1
        For Each nd2 As winform.treenode In nds2
            dr = DataTables("授权").Find("权限 = '" & nd2.Text & "'")
            Dim nms As New List(of String)
            nms.Addrange(dr("用户").trim(",").split(","))
            Dim nm As String  = nd1.Text.trim("←")
            If tr2.SelectedNode.Checked = True Then
                If nms.Contains(nm) = False Then
                    nms.add(nm)
                End If
            Else
                If nms.Contains(nm) Then
                    nms.Remove(nm)
                End If
            End If
            If nd2.Checked <> tr2.SelectedNode.Checked Then
                nd2.Checked = tr2.SelectedNode.Checked
            End If
            dr("用户") = String.Join(",",nms.ToArray)
        Next
    Next
End If

 

 

 

 

 

 

 

 

 


 回到顶部