以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 复选框问题 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=153054) |
||||
-- 作者:outcat -- 发布时间:2020/7/30 2:14:00 -- 复选框问题 ![]() ![]() 问题1 这个代码我是要在保存前,把有这个用户的权限先全部删除掉,然后添加新的权限,以前没有这个代码,比如给这个人修改权限,保存时有重复记录,可现在的结果是,是在添加后才检查,这个人的权限全部删除了 Dim bj As String = e.Form.Controls("编号").text Dim yh As String = e.Form.Controls("用户").text Dim dr1 As DataRow dr1 = DataTables("用户权限表").Find("用户编号 = \'" & bj & "\'") DataTables("用户权限表").DeleteFor("用户编号 = \'" & bj & "\'") Dim bj1 As String = e.Form.Controls("编号").text Dim yh1 As String = e.Form.Controls("用户").text For Each r As Row In Tables("用户管理_Table3").GetCheckedRows \'权限名称表 Dim r2 As Row = Tables("用户权限表").AddNew r2("用户编号") = bj1 r2("用户") = yh1 Dim abs() As String ={"类别编号","权限类别","分组编号","权限分组","权限名称"} For Each ab As String In abs r2(ab) = r(ab) Next r2("权限编号") = r("编号") DataTables("用户权限表").save 问题2 给人授权时,如果切换权限类别,上一个权限类别勾选的就没有,保存时就只能保存最后选择 权限类别下选中的权限,我在复选框状态修改前处理 下面的代码,你看看哪块不对了 Dim Filter As String Dim lst As new List(of String) For Each r As Row In Tables("用户管理_table3").GetCheckedRows lst.Add(r("编号")) Next If Filter > "" Then Tables("用户管理_table3").Filter = Filter For Each r As Row In Tables("用户管理_table3").Rows r.Checked = lst.Contains(r("编号")) Next End If |
||||
-- 作者:有点蓝 -- 发布时间:2020/7/30 9:05:00 -- 请上传实例说明 |
||||
-- 作者:outcat -- 发布时间:2020/7/30 12:09:00 --
用户权限维护实现功能 第一次给一个用户授权,选角色,该角色有什么权限,右边权限名称已勾选,保存OK 当第二次给这个人重新授权时,要自动的判断这个人 属于什么角色,都有什么权限,角色表,和权限名称表都选上,这个折腾了好长时间也弄不好 还有就是第二次进行保存时,写入的删除以前有用给的权限,再添加,不起作用 权限类别切换,权限多了不好找,要进行切换,写复选框修改保存前,也不起作用 麻烦老师了,这个问题搞了好长时间了,还是搞不定 |
||||
-- 作者:有点蓝 -- 发布时间:2020/7/30 13:59:00 -- 目录树AfterSelectNode Dim dr As DataRow = e.Node.DataRow \'获取生成此节点的行 If e.Node.Level = 2 Then e.form.controls("编号").text = dr("编号") e.form.controls("用户").text = dr("用户") Tables("用户管理_table3").ClearCheckedRows Tables("用户管理_table4").ClearCheckedRows Dim dr2 As DataRow = DataTables("用户权限表").Find("用户编号=\'" & dr("编号") & "\'") If dr2 IsNot Nothing Then Dim idx As Integer = Tables("用户管理_table4").Findrow("编号=\'" & dr2("角色编号") & "\'") If idx > -1 Then Tables("用户管理_table4").Position = idx Tables("用户管理_table4").Rows(idx).Checked =True End If End If End If 至于各种权限的控制模式我没有看懂。用户到底是绑定角色,还是直接绑定权限?
|
||||
-- 作者:outcat -- 发布时间:2020/7/30 14:55:00 -- Dim idx1 As Integer = Tables("用户管理_table3").Findrow("编号=\'" & dr2("权限编号") & "\'") If idx1 > -1 Then Tables("用户管理_table3").Position = idx1 Tables("用户管理_table3").Rows(idx1).Checked =True End If 老师,这个用户是直接绑定角色和权限都绑定,第一次的时候选了角色,权限名称是属于这个角色下的,当以后进入的看这个人的权限时,即看到他现在是什么角色,权限名称应该是他现在拥有的全部权限,这个我后面准备用颜色表示,那些是属于角色有的权限,哪些是超过角色外的权限授权。现在加了这个代码不起作用,显示的权限还是只有角色本身的权限
|
||||
-- 作者:有点蓝 -- 发布时间:2020/7/30 15:06:00 -- 用法类似,自己查询有哪些不是角色本身的权限,然后勾选。角色表选择不同行(currentchanged事件)也有类似的用法,自己看懂 |
||||
-- 作者:有点蓝 -- 发布时间:2020/7/30 15:08:00 -- 感觉这个窗口设计是有问题的。按我的理解,用户绑定角色、用户直接绑定权限、角色绑定权限,应该属于3个不同的功能,最好是设计3个窗口(模块)分开做,全部混到一起控制,根本无法理清他们的关系 |
||||
-- 作者:outcat -- 发布时间:2020/7/30 15:20:00 -- 老师,这个在你的指导下,终于实现了,很感激 |
||||
-- 作者:outcat -- 发布时间:2020/7/30 15:22:00 -- 现在,还有就是想解决 再次授权时,重复记录的问题, \'Dim dr1 As DataRow
\'dr1 = DataTables("用户权限表").Find("用户编号 = \'" & bj & "\'") \'DataTables("用户权限表").DeleteFor("用户编号 = \'" & bj & "\'") 想在添加前删除,可结果却是,在保存时,把这个人的所有权限删除了
|
||||
-- 作者:有点蓝 -- 发布时间:2020/7/30 15:41:00 -- 和这个代码没有关系,是table3没有勾选吧,没有购买就不会进入循环,也就不能添加权限 |