思路:
数据库有三个表,权限表、角色表、权限-角色关联表,根据权限表里的数据在前台动态生成功能列表,同时为每个功能生成一个checkbox,并根据权限-角色关联表里保存的权限信息设置相应的checkbox为true或者false;
当用户修改了checkbox后,根据前台所有checkbox的状态,把相应的权限信息保存入关联表。
请问这个前台生成的过程和前台所有控件状态的获取保存应该怎么实现比较好?
数据库有三个表,权限表、角色表、权限-角色关联表,根据权限表里的数据在前台动态生成功能列表,同时为每个功能生成一个checkbox,并根据权限-角色关联表里保存的权限信息设置相应的checkbox为true或者false;
当用户修改了checkbox后,根据前台所有checkbox的状态,把相应的权限信息保存入关联表。
请问这个前台生成的过程和前台所有控件状态的获取保存应该怎么实现比较好?
<input type="checkbox" name="chkEmployee" id="employee1" value="1" />
<input type="checkbox" name="chkEmployee" id="employee2" value="1" />
上面的name你可以绑定角色名,id你可以在绑定时用DataItem索引来生成
后台获取这一组员工权限时Request.Form.Get("chkEmployee"),值为 1,2,5...这样的数组(可以直接应用于sql的in中)
页面:js就可以实现
代码简单思路:先del后insert
扫描所有checkbox的状态
首先判断权限-角色关联表是否存在权限-角色这条记录
if(存在这条记录)
{if(checkbox为false)删除该记录
else 更新
}
else if(checkbox为true) 添加记录
首先这个是利用Js来实现。通过遍历循环出所有的节点出来你上网搜这个 Dtree
帮了找了几个参考的博客
参考1参考2参考3
权限ID 权限名称 是否有权限 这种数据表,然后以这个数据表绑定checkboxlist ,有权限就选中,没有就不选;
修改的过程可以是这样(事务执行):
1、删除该用户所有权限
2、遍历checkboxlist 把选中的权限插入权限-角色关联表