/// <summary> /// 确定按钮的点击事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void btnChecked_OnClick(object sender, EventArgs e) { int id = int.Parse(this.ddlRolesList.SelectedValue); //在这我们获取的是选中的权限id //1. 通过我们找到的权限id,对UsersPermission表格进行查询,得到这个权限所拥有的所有SystemMenuId var data = permissionSvc.GetUsersPermissionsByRolesId(id); //select * from UsersPermission where RolesId = 1 this.RepUsersOwn.DataSource = data; this.RepUsersOwn.DataBind(); //2. 绑定未拥有的权限,需要我们把已拥有的系统菜单id 与 所有的系统菜单id对比 #region 推荐的写法 //var allMenu = menuSvc.GetSystemMenusList(); //得到所有的系统菜单id //foreach (var item in data) //遍历已拥有的系统菜单id //{ // bool rs = false; // foreach (var option in allMenu) // { // if (item.SystemMenuId == option.Id) // { // rs = true; // break; // } // } // if (rs == false) // { // //我们在这可以对其统计 // } //} #endregion string idList = ""; for (int i = 0; i < data.Count; i++) { idList += data[i].SystemMenuId; if (i != data.Count - 1) { idList += ","; } } var noOwnList = menuSvc.GetMenusListNoOwn(idList); this.RepUsersNoOwn.DataSource = noOwnList; this.RepUsersNoOwn.DataBind(); }