序:在功能性比较强大的后台管理网站处于各种角度考虑多有应用权限管理功能。以公司内部管理系统为例,管理员根据不同员工所在不同部门赋予其不同权限,或者根据上下级隶属关系实现“金字塔”管理。本文内容有不尽不实之处恳请指正。
正文:
如下效果图是否令某用户具备相应权限用checkbox状态区别存储。
(一)储存
这里的权限功能(类别)名称和权限模块(具体)名称均是手动输入数据库,不可增删改查。本例将某权限模块作为最基本元素,是否具备该权限用1或0表示,进而将当前用户所有权限链接组成二进制字符串储存在数据库中。如示例代码1.1
(二)读取 如示例代码1.2
(三)前台代码 如下
代码如下:
//利用js添加逗号和竖线 ,通过hidden传值
<script language="javascript" type="text/javascript">
function getcheck() {
var inputs = document.getElementById("cbpanel");
var chks = inputs.getElementsByTagName("input");
var str = "";
for (var i = 0; i < chks.length; i++) {
if (chks[i].type == 'checkbox') {
str += chks[i].value + "," + chks[i].checked + "|";
}
}
document.getElementById("Hidden1").value = str;
}
<script>
<body>
<div id="cbpanel"> <asp:Literal ID="LiteralRole" runat="server"></asp:Literal>
<input id="Hidden1" runat="server" type="hidden" /></div>
</body>
代码如下:
示例代码1.2
/// <summary>
/// 绑定所有模块分类
/// </summary>
private void BindAllModule()
{
StringBuilder sb = new StringBuilder();
sb.Append("<table class=/"AddRole/" width=/"100%/" border=/"0/" cellpadding=/"0/" cellspacing=/"0/">");
Bll_User_Module mbll = new Bll_User_Module();
IList<User_Model.Model_User_Module> list = mbll.GetAllList();//得到泛型集合
string moduleidstr = "";
for (int i = 0; i < list.Count; i++)
{
sb.Append("<tr><th style=/"width: 100px; height: 36px;/">");
新闻热点
疑难解答
图片精选