using DevExpress.XtraEditors; using Gs.DevApp.Entity; using Gs.DevApp.ToolBox; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace Gs.DevApp.DevFrm.User { public partial class UserSelectRole : DevExpress.XtraEditors.XtraForm { private string _userGuid; public UserSelectRole(string userGuid) { InitializeComponent(); this._userGuid = userGuid; GetCheckList(); btnSave.Click += BtnSave_Click; GetTree(_userGuid); } private void BtnSave_Click(object sender, EventArgs e) { if (string.IsNullOrEmpty(_userGuid)) { ToolBox.MsgHelper.Warning("请先选择你要操作的用户!"); return; } if (!MsgHelper.AskQuestion("你选择了【" + ckList.CheckedItems.Count.ToString() + "】个角色,确定设置权限吗?")) return; System.Text.StringBuilder roleLst = new StringBuilder(); foreach (DataRowView box in ckList.CheckedItems) { if (roleLst.Length > 0) roleLst.Append(","); roleLst.Append(box.Row["guid"].ToString()); } var _obj = new { userGuid = _userGuid, roleLst = roleLst.ToString(), }; string strJson = ""; try { strJson = UtilityHelper.HttpPost("", "MenuAction/SetRoleByUser", JsonConvert.SerializeObject(_obj)); ReturnModel _rtn = ToolBox.UtilityHelper.GetDataByJson(strJson); ToolBox.MsgHelper.Warning("提示:" + _rtn.rtnData.outMsg); this.Close(); } catch (Exception ex) { ToolBox.MsgHelper.Warning("提示:" + ex.Message); } } private void GetCheckList() { var _obj = new { userGuid = this._userGuid, }; string strReturn = ""; try { strReturn = UtilityHelper.HttpPost("", "MenuAction/GetRoleByUser", JsonConvert.SerializeObject(_obj)); ReturnModel dd = UtilityHelper.GetNoPageTableByJson(strReturn); DataTable dt = dd.rtnData; this.ckList.DataSource = dt; this.ckList.ValueMember = "guid"; this.ckList.DisplayMember = "roleName"; foreach (DataRow row in dt.Rows) { // 假设Condition是决定是否选中的字段 bool isChecked = (bool)row["isCk"]; // 转换为实际的类型 int index = ckList.FindString(row["roleName"].ToString()); if (index != ListBox.NoMatches) { ckList.SetItemChecked(index, isChecked); } } } catch (Exception ex) { ToolBox.MsgHelper.Warning("提示:" + ex.Message); } } private void GetTree(string userGuid) { trv.Nodes.Clear(); ImageList imageList = new ImageList(); imageList.Images.Add("icon0", Properties.Resources.publicfix_32x32); imageList.Images.Add("icon1", Properties.Resources.addfooter_32x32); imageList.Images.Add("icon2", Properties.Resources.listmultilevel_16x16); imageList.Images.Add("icon3", Properties.Resources.addcalculatedfield_16x16); trv.ImageList = imageList; var _obj = new { userGuid = userGuid, }; string strReturn = ""; try { strReturn = UtilityHelper.HttpPost("", "MenuAction/GetListByUser", JsonConvert.SerializeObject(_obj)); ReturnModel dd = UtilityHelper.GetTableByJson(strReturn); DataTable dt = dd.rtnData.list; DataRow[] drGrp = dt.Select("upGuid='' or upGuid is null"); foreach (DataRow _dy in drGrp) { string _orgGuid = _dy["guid"].ToString() + "&"; TreeNode node = new TreeNode();//定义结点 node.Text = _dy["name"].ToString();//为结点赋值 node.Name = _dy["guid"].ToString(); node.ImageIndex = 0; node.Checked = (_dy["isCk"].ToString() == "1" ? true : false); DataRow[] drItem = dt.Select("upGuid='" + _dy["guid"].ToString() + "' and orgGuid='" + _dy["guid"].ToString() + "'"); foreach (DataRow _dy2 in drItem) { TreeNode node22 = new TreeNode();//定义结点 node22.Text = _dy2["name"].ToString();//为结点赋值 node22.Name = _orgGuid + _dy2["guid"].ToString(); node22.ImageIndex = 1; node22.Checked = (_dy2["isCk"].ToString() == "1" ? true : false); DataRow[] drItem33 = dt.Select("upGuid='" + _dy2["guid"].ToString() + "' and orgGuid='" + _dy["guid"].ToString() + "'"); foreach (DataRow _dy3 in drItem33) { TreeNode node33 = new TreeNode();//定义结点 node33.Text = _dy3["name"].ToString();//为结点赋值 node33.Name = _orgGuid + _dy3["guid"].ToString(); node33.ImageIndex = 2; node33.Checked = (_dy3["isCk"].ToString() == "1" ? true : false); DataRow[] drItem44 = dt.Select("upGuid='" + _dy3["guid"].ToString() + "' and orgGuid='" + _dy["guid"].ToString() + "'"); foreach (DataRow _dy4 in drItem44) { TreeNode node44 = new TreeNode();//定义结点 node44.Text = _dy4["name"].ToString();//为结点赋值 node44.Name = _orgGuid + _dy4["guid"].ToString(); node44.ImageIndex = 3; node44.Checked = (_dy4["isCk"].ToString() == "1" ? true : false); node33.Nodes.Add(node44); } node22.Nodes.Add(node33); } node22.Expand(); node.Nodes.Add(node22); } node.Expand(); trv.Nodes.Add(node); } } catch (Exception ex) { ToolBox.MsgHelper.Warning("提示:" + ex.Message); } } } }