以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  授权问题  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=74904)

--  作者:xiaohuli
--  发布时间:2015/9/22 14:44:00
--  授权问题

老师,我做了一个授权窗口,

目前保存和删除都是ok的,但是修改的还做好,我希望选中一行,然后点击修改的时候,在上面的用户,菜单,分组那三块,能自动将选中的这一行中以前所选过的数据打上勾,然后在通过打钩去勾来修改当前行。修改的功能没做好,请老师帮忙,谢谢老师。项目在此。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:项目管理1.foxdb

[此贴子已经被作者于2015/9/22 15:16:36编辑过]

--  作者:大红袍
--  发布时间:2015/9/22 15:03:00
--  

勾选这样写。

 

Dim trv1 As WinForm.TreeView = e.Form.Controls("菜单")
Dim trv2 As WinForm.TreeView = e.Form.Controls("分组")

Dim cr As Row = Tables("授权").current
Dim nms As New List(of String)
If cr IsNot Nothing AndAlso cr.IsNull("菜单名") = False
    nms.AddRange(cr("菜单名").Split(","))
End If
For Each nd As WinForm.TreeNode In trv1.AllNodes
    nd.Checked = nms.Contains(nd.Name)
Next
nms.Clear
If cr IsNot Nothing AndAlso cr.IsNull("分组") = False
    nms.AddRange(cr("分组").Split(","))
End If
For Each nd As WinForm.TreeNode In trv2.AllNodes
    If nd.Level = 0 Then
        nd.Checked = nms.Contains(nd.Name.split("-")(1))
    End If
Next
nms.Clear
If cr IsNot Nothing AndAlso cr.IsNull("权限") = False
    nms.AddRange(cr("权限").Split(","))
End If
For Each nd As WinForm.TreeNode In trv2.AllNodes
    If nd.Level = 1 Then
        nd.Checked = nms.Contains(nd.Name.split("-")(1))
    End If
Next