以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  复选框同步选中  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=152822)

--  作者:outcat
--  发布时间:2020/7/23 9:29:00
--  复选框同步选中

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

老师,我这左边用户目录树、中间角色表,右边权限名称,我已经给每个角色增加了权限,这个保存在 角色权限表 ,现在我要 点了用户,然后点角色,点角色的同时,该角色下面拥有的权限,同时右边权限名称表 复选框选中,然后该用户如果还需要 该角色外的其它权限,再勾选,然后 保存到  用户权限表中

现在的问题是 点了角色后,该角色对应的 权限名称复选框选不中,应该是角色勾选这块有些问题,请老师帮忙看看代码


Dim bj As String = e.Form.Controls("编号").text
Dim yh As String = e.Form.Controls("用户").text

For Each r2 As Row In Tables("用户管理_Table4").GetCheckedRows  \'角色表
    Dim dr1 As DataRow
    dr1 = DataTables("角色权限表").Find("角色名称 = \'" & r2("角色名称") & "\'and 角色编号 = \'" & r2("编号") & "\'")
    If dr1 IsNot Nothing Then
        
        For Each r As Row In Tables("用户管理_Table3").GetCheckedRows  \'权限名称表
            r.Checked = True
            Dim r3 As Row = Tables("用户权限表").AddNew
            r3("用户编号") = bj
            r3("用户") = yh
            Dim abs() As String ={"类别编号","权限类别","分组编号","权限分组","权限名称"}
            For Each ab As String In abs
                r3(ab) = r(ab)
            Next
            r3("权限编号") = r("编号")
            r.Checked  = False
        Next
    End If
Next



--  作者:有点蓝
--  发布时间:2020/7/23 9:44:00
--  
dim r2 As Row = Tables("用户管理_Table4").current

for each s as string in DataTables("角色权限表").getvalues("权限编号","角色名称 = \'" & r2("角色名称") & "\'and 角色编号 = \'" & r2("编号") & "\'")
for each rr as row in Tables("用户管理_Table3").rows
if rr("编号") = s then
rr.Checked  =true
exit for
end if
next
next

--  作者:outcat
--  发布时间:2020/7/23 11:31:00
--  
老师在请教一下,这个选择后,对应的权限名称也选上了  rr.Checked  =true  是行选中了,可是看不到,只有点了 保存才能看到权限,这个如何选择了角色,权限名称表的复选中也打上勾 ,因为现在保存前,不知道这个角色到底都拥有什么权限的
--  作者:有点蓝
--  发布时间:2020/7/23 11:36:00
--  
同样的方法啊,找到权限名称表对应的行,然后.Checked  =true
--  作者:outcat
--  发布时间:2020/7/23 12:19:00
--  
For Each r13 As Row In Tables("用户管理_Table4").GetCheckedRows
    For Each s As String In DataTables("角色权限表").getvalues("权限编号","角色名称 = \'" & r13("角色名称") & "\'and 角色编号 = \'" & r13("编号") & "\'")
        For Each rr As Row In Tables("用户管理_Table3").GetCheckedRows
            If rr("编号") = s Then
                rr.Checked  = True
                Exit For
            End If
        Next
    Next
Next                      老师,我还是无法成功,改成这个复选框,不执行代码,复选框的还是无法  √ 这样,

--  作者:有点蓝
--  发布时间:2020/7/23 13:38:00
--  
请上传实例说明
--  作者:outcat
--  发布时间:2020/7/23 14:15:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.foxdb




我现在  经理 角色   新增往来单位、编辑往来单位、新增费用信息
            会计角色   新增费用信息    编辑费用信息

我希望选了,角色后,右边权限名称表 对应的行,同步显示,(复选框打钩)

--  作者:有点蓝
--  发布时间:2020/7/23 14:33:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目11.zip


--  作者:outcat
--  发布时间:2020/7/23 17:06:00
--  
老师,我发给你的这个是内部数据源,实际项目用sql
2008数据库,afterload的刷新语句不起作用,还是不能勾选,奇怪了

--  作者:有点蓝
--  发布时间:2020/7/23 17:11:00
--  
看table4的currentchanged事件

如果数据没有加载,就改为后台查询