using DevExpress.XtraEditors; using DevExpress.XtraTreeList; using Gs.DevApp.Entity; using Gs.DevApp.ToolBox; using Newtonsoft.Json; using System; using System.Collections.Generic; namespace Gs.DevApp.DevFrm.Work { public partial class SelectDictionary : DevExpress.XtraEditors.XtraForm { string strTitle = ""; string strWhere = ""; public SelectDictionary(string _strTitle, string _strWhere) { InitializeComponent(); tlMenu.CustomDrawNodeCheckBox += TreeList1_CustomDrawNodeCheckBox; getTree(); tlMenu.OptionsBehavior.Editable = true; tlMenu.OptionsSelection.EnableAppearanceFocusedCell = false; tlMenu.OptionsSelection.MultiSelect = true; tlMenu.OptionsSelection.MultiSelectMode = TreeListMultiSelectMode.CellSelect; this.strTitle = _strTitle; this.strWhere = _strWhere; this.Text = _strTitle; btnIn.Click += (s, e) => { var list = new List(); list.Add(new { dicCode = "001", dicTxt = "test1" }); UpdateParent?.Invoke(this, new UpdateParentEventArgs { DynamicList = list }); Close(); }; } /// /// 选择后的回调事件 /// public event EventHandler UpdateParent; private void TreeList1_CustomDrawNodeCheckBox(object sender, DevExpress.XtraTreeList.CustomDrawNodeCheckBoxEventArgs e) { // 判断当前节点是否为叶子节点(无子节点) if (e.Node.Nodes.Count == 0) { // 允许绘制复选框(默认行为) } else { // 取消绘制复选框 e.Handled = true; } } // 可选:处理节点展开事件,确保动态加载的子节点生效 private void treeList1_BeforeExpand(object sender, BeforeExpandEventArgs e) { // 若子节点是动态加载的,在此处加载数据 // LoadChildNodes(e.Node); } /// /// 读取列表 /// private void getTree() { var pgq = new PageQueryModel(1, 999999, "a.idx"); var json = JsonConvert.SerializeObject(pgq); try { var strReturn = UtilityHelper.HttpPost("", "MenuAction/GetListPage", json); var dd = UtilityHelper.ReturnToTablePage(strReturn); var dt = dd.rtnData.list; tlMenu.DataSource = dt; tlMenu.KeyFieldName = "guid"; tlMenu.ParentFieldName = "upGuid"; tlMenu.Tag = "name"; tlMenu.EndUpdate(); this.tlMenu.CollapseAll(); // tlMenu.OptionsBehavior.Editable = true; tlMenu.OptionsBehavior.AllowRecursiveNodeChecking = false; } catch (Exception ex) { MsgHelper.Warning("提示:" + ex.Message); } } } }