详解在DevExpress程序中使用TreeList控件以及节点查(2)

//设置树的图标集合及逐级图标 this.tree.SelectImageList = this.imageCollection1; this.tree.CustomDrawNodeImages += (object sender, CustomDrawNodeImagesEventArgs e)=> { int maxCount = this.imageCollection1.Images.Count; var index = e.Node.Level < maxCount ? e.Node.Level : 0; e.SelectImageIndex = index; };

实现树节点选中的事件处理,则需要实现FocusedNodeChanged事件即可。

//初始化树节点选择事件 this.tree.FocusedNodeChanged += delegate(object sender, FocusedNodeChangedEventArgs e) { this.FocusedNodeChanged(); }; } private void FocusedNodeChanged() { if (this.tree.FocusedNode != null) { var PID = string.Concat(this.tree.FocusedNode.GetValue("ID")); treeConditionSql = string.Format("DictType_ID = '{0}'", PID); } else { treeConditionSql = ""; } BindData(); }

最后初始化树列表的代码如下所示。

private void InitTree() { this.tree.Columns.Clear(); //控件扩展函数封装处理 this.tree.CreateColumn("Name", "字典类型名称", 160, true); this.tree.InitTree("ID", "PID", "-1", false, false); //设置树的图标集合及逐级图标 this.tree.SelectImageList = this.imageCollection1; this.tree.CustomDrawNodeImages += (object sender, CustomDrawNodeImagesEventArgs e)=> { int maxCount = this.imageCollection1.Images.Count; var index = e.Node.Level < maxCount ? e.Node.Level : 0; e.SelectImageIndex = index; }; }

3、基于SearchControl控件对节点进行查询的操作

上面的处理就是树列表的一般性展示,如果需要在树节点上面增加一个查询过滤的操作,那么可以使用SearchControl控件进行过滤处理,只需要设置SearchControl控件的Client属性,以及实现树控件的FilterNode事件即可。

/// <summary> /// 实现树节点的过滤查询 /// </summary> private void InitSearchControl() { this.searchControl1.Client = this.tree; this.tree.FilterNode += (object sender, DevExpress.XtraTreeList.FilterNodeEventArgs e) => { if (tree.DataSource == null) return; string nodeText = e.Node.GetDisplayText("Name");//参数填写FieldName if (string.IsNullOrWhiteSpace(nodeText)) return; bool isExist = nodeText.IndexOf(searchControl1.Text, StringComparison.OrdinalIgnoreCase) >= 0; if (isExist) { var node = e.Node.ParentNode; while (node != null) { if (!node.Visible) { node.Visible = true; node = node.ParentNode; } else break; } } e.Node.Visible = isExist; e.Handled = true; }; }

实现效果如下所示, 对于符合记录的查询,那么会有高亮的颜色进行重点标注。

详解在DevExpress程序中使用TreeList控件以及节点查

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wdppsx.html