呵呵,其实帮助的例子很好,何必这么辛苦的自己做呢,可以单项授权,也可以整个分类授权,不是更灵活和实用吗?
这种玩意,可不是随便能改的,需要非常老练才行:
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