using System; using System.Data; using System.Text; using System.Windows.Forms; using DevExpress.XtraEditors; using Gs.DevApp.Properties; using Gs.DevApp.ToolBox; using Newtonsoft.Json; namespace Gs.DevApp.DevFrm.User { public partial class UserSelectRole : XtraForm { private readonly string _userGuid; public UserSelectRole(string userGuid) { InitializeComponent(); _userGuid = userGuid; GetCheckList(); btnSave.Click += BtnSave_Click; GetTree(_userGuid); } private void BtnSave_Click(object sender, EventArgs e) { if (string.IsNullOrEmpty(_userGuid)) { MsgHelper.Warning("请先选择你要操作的用户!"); return; } if (!MsgHelper.AskQuestion("你选择了【" + ckList.CheckedItems.Count + "】个角色,确定设置权限吗?")) return; var roleLst = new StringBuilder(); foreach (DataRowView box in ckList.CheckedItems) { if (roleLst.Length > 0) roleLst.Append(","); roleLst.Append(box.Row["guid"]); } var _obj = new { userGuid = _userGuid, roleLst = roleLst.ToString() }; var strJson = ""; try { strJson = UtilityHelper.HttpPost("", "Role/SetUserRole", JsonConvert.SerializeObject(_obj)); var _rtn = UtilityHelper.ReturnToDynamic(strJson); MsgHelper.Warning("提示:" + _rtn.rtnData.outMsg); Close(); } catch (Exception ex) { MsgHelper.Warning("提示:" + ex.Message); } } private void GetCheckList() { var _obj = new { userGuid = _userGuid }; var strReturn = ""; try { strReturn = UtilityHelper.HttpPost("", "Role/GetUserRole", JsonConvert.SerializeObject(_obj)); var dd = UtilityHelper.ReturnToList(strReturn); var dt = dd.rtnData; ckList.DataSource = dt; ckList.ValueMember = "guid"; ckList.DisplayMember = "roleName"; foreach (DataRow row in dt.Rows) { // 假设Condition是决定是否选中的字段 var isChecked = (bool)row["isCk"]; // 转换为实际的类型 var index = ckList.FindString(row["roleName"].ToString()); if (index != ListBox.NoMatches) ckList.SetItemChecked(index, isChecked); } } catch (Exception ex) { MsgHelper.Warning("提示:" + ex.Message); } } /// /// 查看用户的权限集合 /// /// private void GetTree(string userGuid) { trv.Nodes.Clear(); var imageList = new ImageList(); imageList.Images.Add("icon0", Resources.addfooter_32x32); imageList.Images.Add("icon1", Resources.listmultilevel_16x16); imageList.Images.Add("icon2", Resources.addcalculatedfield_16x16); // trv.ImageList = imageList; var _obj = new { userGuid }; var strReturn = ""; try { strReturn = UtilityHelper.HttpPost("", "Role/GetUserMenuAction", JsonConvert.SerializeObject(_obj)); var dd = UtilityHelper.ReturnToTablePage(strReturn); var dt = dd.rtnData.list; var drGrp = dt.Select("upGuid='' or upGuid is null"); // 使用DefaultView.Sort对筛选后的结果进行排序 DataTable sortedTable = drGrp.CopyToDataTable(); sortedTable.DefaultView.Sort = "idx ASC"; DataTable result = sortedTable.DefaultView.ToTable(); var _gou = "✔ "; foreach (DataRow _dy in result.Rows) { var node = new TreeNode(); //定义结点 node.Text = (_dy["isCk"].ToString() == "1" ? _gou : "") + _dy["name"]; //为结点赋值 node.Name = _dy["guid"].ToString(); node.ImageIndex = 0; node.Checked = _dy["isCk"].ToString() == "1" ? true : false; var drItem = dt.Select("upGuid='" + _dy["guid"] + "'"); foreach (var _dy2 in drItem) { var node22 = new TreeNode(); //定义结点 node22.Text = (_dy2["isCk"].ToString() == "1" ? _gou : "") + _dy2["name"]; //为结点赋值 node22.Name = _dy2["guid"].ToString(); node22.ImageIndex = 1; node22.Checked = _dy2["isCk"].ToString() == "1" ? true : false; var drItem33 = dt.Select("upGuid='" + _dy2["guid"] + "'"); foreach (var _dy3 in drItem33) { var node33 = new TreeNode(); //定义结点 node33.Text = (_dy3["isCk"].ToString() == "1" ? _gou : "") + _dy3["name"]; //为结点赋值 node33.Name = _dy3["guid"].ToString(); node33.ImageIndex = 2; node33.Checked = _dy3["isCk"].ToString() == "1"? true : false; node22.Nodes.Add(node33); } node22.Expand(); node.Nodes.Add(node22); } node.Expand(); trv.Nodes.Add(node); } } catch (Exception ex) { MsgHelper.Warning("提示:" + ex.Message); } } } }