using DevExpress.Skins; using DevExpress.XtraEditors; using System; using System.Collections.Generic; using System.Data; using System.Windows.Forms; namespace HL_FristAidPlatform_Public { public partial class Form_SelectUser : XtraForm { #region 变量 /// /// 当前选择的用户名集合 /// public string SelUserNameS = string.Empty; /// /// 当前选择的用户ID集合 /// public string SelUserIDS = string.Empty; #endregion 变量 public Form_SelectUser() { InitializeComponent(); } /// /// 窗体加载 /// /// /// private void Form_SelectUser_Load(object sender, EventArgs e) { BindData(); BindUser(); } /// /// 绑定科室 /// private void BindData() { try { string Url = string.Format("/api/admin/T_SYS_Departments/GetListByHospitalGuid?hospitalGuid={0}", Information.Hospital.GUID); DataTable DepartmentsDT = DBHelpClass.Get(Url); Skin skin = GridSkins.GetSkin(treeList_Department.LookAndFeel); skin.Properties[GridSkins.OptShowTreeLine] = true; treeList_Department.DataSource = DepartmentsDT; treeList_Department.KeyFieldName = "ID";//是节点id treeList_Department.ParentFieldName = "ParentID";//是父节点id treeList_Department.ExpandAll(); } catch (Exception ex) { PublicClass.WriteErrorLog(this.Text, "绑定科室:\r\n" + ex); } } #region 树事件 private void treeList_Department_AfterCheckNode(object sender, DevExpress.XtraTreeList.NodeEventArgs e) { SetCheckedChildNodes(e.Node, e.Node.CheckState); SetCheckedParentNodes(e.Node, e.Node.CheckState); } private void treeList_Department_BeforeCheckNode(object sender, DevExpress.XtraTreeList.CheckNodeEventArgs e) { e.State = (e.PrevState == CheckState.Checked ? CheckState.Unchecked : CheckState.Checked); } /// /// 设置子节点的状态 /// /// /// private void SetCheckedChildNodes(DevExpress.XtraTreeList.Nodes.TreeListNode node, CheckState check) { for (int i = 0; i < node.Nodes.Count; i++) { node.Nodes[i].CheckState = check; SetCheckedChildNodes(node.Nodes[i], check); } } /// /// 设置父节点的状态 /// /// /// private void SetCheckedParentNodes(DevExpress.XtraTreeList.Nodes.TreeListNode node, CheckState check) { if (node.ParentNode != null) { bool b = false; CheckState state; for (int i = 0; i < node.ParentNode.Nodes.Count; i++) { state = (CheckState)node.ParentNode.Nodes[i].CheckState; if (!check.Equals(state)) { b = !b; break; } } node.ParentNode.CheckState = b ? CheckState.Indeterminate : check; SetCheckedParentNodes(node.ParentNode, check); } } #endregion 树事件 /// /// 绑定用户 /// private void BindUser() { try { List list = PublicClass.FindOrigin(treeList_Department, "ID"); string whereStr = ""; foreach (string str in list) { whereStr += str + "&"; } DataTable ResultDT = DBHelpClass.Get(string.Format("/api/admin/T_SYS_User/GetList?departmentsIds={0}&keyWord={1}", whereStr, txt_Key.Text.ToString().Trim())); grid_User.DataSource = ResultDT; } catch (Exception ex) { PublicClass.WriteErrorLog(this.Text, "绑定用户:\r\n" + ex); } } /// /// 查询事件 /// /// /// private void btn_Select_Click(object sender, EventArgs e) { BindUser(); } /// /// 确认选择 /// /// /// private void btn_Sure_Click(object sender, EventArgs e) { try { int[] rownumber = grv_User.GetSelectedRows();//获取选中行号; SelUserIDS = string.Empty; SelUserNameS = string.Empty; foreach (int i in rownumber) { //根据行号获取相应行的数据; SelUserIDS += grv_User.GetRowCellValue(i, "ID").ToString() + ","; SelUserNameS += grv_User.GetRowCellValue(i, "FullName").ToString() + ";"; } if (!string.IsNullOrEmpty(SelUserIDS)) { SelUserIDS = SelUserIDS.Substring(0, SelUserIDS.Length - 1); DialogResult = DialogResult.OK; Close(); } else { XtraMessageBox.Show("请先勾选您要选择的用户!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } catch (Exception ex) { PublicClass.WriteErrorLog(this.Text, "确认选择:\r\n" + ex); } } } }