后台代码处理如下: UserBaseInfo ubi = (UserBaseInfo) this.getHttpSession().getAttribute(SESSION_KEY_USER); Long userid = ubi.getId(); JSONArray ary = this.params.getJSONArray("ids"); List<Module> moduleList = roleService.getUserCommonModulesByUserId(userid); //用户常用功能ID List<Long> commonIds = new ArrayList<Long>(); for (int i = 0; i < moduleList.size(); i++) { commonIds.add(moduleList.get(i).getId()); } List<Long> ids = new ArrayList<Long>(); //页面传过来的ID for (int i = 0; i < ary.size(); i++) { ids.add(ary.getLong(i)); }
List<Long> addIds = new ArrayList<Long>(); //添加的ID集 List<Long> delIds = new ArrayList<Long>(); //删除的ID集
if (!commonIds.containsAll(ids) || !ids.containsAll(commonIds)) { for (Long i : ids) { if (!commonIds.contains(i)) addIds.add(i); } for (Long i : commonIds) { if (!ids.contains(i)) delIds.add(i); }
<HeaderTemplate>
<table class="tableRoles" cellpadding="0" cellspacing="0" width="600px">
<thead>
<tr>
<td>
全选:<input id="chkAll" onclick="GetAllCheckBox(this)" type="checkbox" />
</td>
<td>
序号
</td>
<td>
权限编号
</td>
<td>
权限英文名
</td>
<td>
权限描述
</td>
</tr>
</thead>
</HeaderTemplate>
<ItemTemplate>
<tbody>
<tr>
<td>
<input name="checkbox" id='Checkbox<%#Eval("permissionid") %>' type="checkbox" />
</td>
<td>
<%#this.repRolesList.Items.Count+1 %>
</td>
<td>
<%#Eval("permissioncode")%>
</td>
<td>
<%#Eval("permissionname")%>
</td>
<td>
<%#Eval("description")%>
</td>
</tr>
</tbody>
</ItemTemplate>
<FooterTemplate>
</table></FooterTemplate>
</asp:Repeater>这是dbo.sk_manage_permissions表里的数据
数据库里面还有一张表dbo.sk_manage_rolepermissions里面有roleid角色ID和permissioncode
另外一张表是角色表,我现在是要做给角色赋权的功能。我想页面加载的时候把数据库里面对应的角色已经有的权限前面的checkbox勾选,然后在操作,最后在点击确定,把勾选的对应的permissioncode对应的插入到数据库的表中。
<option value="">请选择</option>
<%
if(lawTypePList.size()>0){for(int i2=0;i2<lawTypePList.size();i2++){
Map tempMap2 = (Map)lawTypePList.get(i2);
String tempValue2 = tempMap2.get("CATCODE").toString(); %><option value="<%=tempValue2 %>" <%if(tempValue2.equals(PCATCODE)){ %> selected="selected" <%} %>><%=tempMap2.get("CATNAME").toString() %>
</option>
<% }
}
%>
</select>
UserBaseInfo ubi = (UserBaseInfo) this.getHttpSession().getAttribute(SESSION_KEY_USER);
Long userid = ubi.getId();
JSONArray ary = this.params.getJSONArray("ids");
List<Module> moduleList = roleService.getUserCommonModulesByUserId(userid); //用户常用功能ID
List<Long> commonIds = new ArrayList<Long>();
for (int i = 0; i < moduleList.size(); i++) {
commonIds.add(moduleList.get(i).getId());
}
List<Long> ids = new ArrayList<Long>(); //页面传过来的ID
for (int i = 0; i < ary.size(); i++) {
ids.add(ary.getLong(i));
}
List<Long> addIds = new ArrayList<Long>(); //添加的ID集
List<Long> delIds = new ArrayList<Long>(); //删除的ID集
if (!commonIds.containsAll(ids) || !ids.containsAll(commonIds)) {
for (Long i : ids) {
if (!commonIds.contains(i)) addIds.add(i);
}
for (Long i : commonIds) {
if (!ids.contains(i)) delIds.add(i);
}
try {
if (addIds.size() > 0)
this.roleService.addUserCommonMenu(userid, addIds);
if (delIds.size() > 0)
this.roleService.delUserCommonMenu(userid, delIds);
this.sendResult("操作成功!");
} catch (Exception e) {
this.sendResult("操作失败!");
}
} else {
this.sendResult("请选择您要添加或删除的常用功能!");
}