官方代码:
授权_AfterLoad
Dim trv1 As WinForm.TreeView = e.Form.Controls("TreeView1")
Dim trv2 As WinForm.TreeView = e.Form.Controls("TreeView2")
trv1.BuildTree("授权","分组|权限")
For Each u As UserInfo In Users
If u.Type = UserTypeEnum.User Then '排除管理员和开发者
If trv2.Nodes.Contains(u.Group) = False Then
trv2.Nodes.Add(u.Group)
End If
trv2.Nodes(u.Group).Nodes.Add(u.Name)
End If
Next
Trv1.Nodes(0).Expand()
trv2.ExpandAll()
该段代码执行的时候,如果系统有用户未指定用户分组时,则程序执行会报错。
如果代码修正为:
Dim trv1 As WinForm.TreeView = e.Form.Controls("TreeView1")
Dim trv2 As WinForm.TreeView = e.Form.Controls("TreeView2")
trv1.BuildTree("授权","分组|权限")
For Each u As UserInfo In Users
If u.Group <> "" ‘分组为空时过滤掉
If u.Type = UserTypeEnum.User Then
If trv2.Nodes.Contains(u.Group) = False Then
trv2.Nodes.Add(u.Group)
End If
trv2.Nodes(u.Group).Nodes.Add(u.Name)
End If
End If
Next
Trv1.Nodes(0).Expand()
trv2.ExpandAll()
加上已上判断,程序运行不会报错。程序正常运行,但未分组用户不能显示在目录树中,从而不能进行授权。
此时能否做到,将分组为空的用户 ,全部自动归纳到“未分组”用户中,从而能进行用户授权。