dev treelist和searchcontrol组合模糊查询用法

2024-01-27 12:18

本文主要是介绍dev treelist和searchcontrol组合模糊查询用法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

这里需要用到两个控件,是dev的treelist和searchcontrol,首先呢树形控件要形成树形我在这就不多说了

因为这里是记录下searchcontrol这控件的用法

首先写这三行代码,里面都有注释

            this.searchControl1.Client = this.treeList1;//设置搜索绑定treeList1.OptionsBehavior.EnableFiltering = true;//开启过滤功能treeList1.OptionsFilter.FilterMode = FilterMode.Smart;//过滤模式

经测试,以上就可以完成简单的过滤功能:只负责每个node的displayText和search串的匹配,实现子节点或父节点匹配显示,不匹配隐藏,注:如果子节点匹配,它的父节点为匹配只显示子节点;反之,如果父节点匹配,它的子节点不显示。另外不能实现通过节点的其他属性显示,如拼音首字母。如果需要这些,需要以下的代码。

然后我们构造一个事件,我们称它为过滤事件,

//过滤事件treeList1.FilterNode += treeList1_FilterNode;

然后在事件中写上代码

void treeList1_FilterNode(object sender, DevExpress.XtraTreeList.FilterNodeEventArgs e){if (treeList1.DataSource == null){return;}string NodeText = e.Node.GetDisplayText("ITEM_NAME");//参数填写FieldName  string NodeTextPY = e.Node.GetValue("PINYIN").ToString(); //拼音码搜索if (string.IsNullOrWhiteSpace(NodeText)){return;}bool IsVisible = NodeText.ToUpper().IndexOf(txtSearch.Text.ToUpper()) >= 0;bool IsVisiblePY = NodeTextPY.ToUpper().IndexOf(txtSearch.Text.ToUpper()) >= 0;if (IsVisible || IsVisiblePY){DevExpress.XtraTreeList.Nodes.TreeListNode Node = e.Node;while (Node != null){if (!Node.Visible){Node.Visible = true;Node = Node.ParentNode;}else{break;}}e.Node.Visible = true;}else{e.Node.Visible = false;}e.Handled = true;}

e.Handled=true,表示我已经处理当前事件,系统不做处理了。

FilterNode这个事件经跟踪是循环每一个node对其进行判断并处理,显示隐藏。一次筛选有多少个node就会执行多少次此事件。

这篇关于dev treelist和searchcontrol组合模糊查询用法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/650224

相关文章

Oracle查询表结构建表语句索引等方式

《Oracle查询表结构建表语句索引等方式》使用USER_TAB_COLUMNS查询表结构可避免系统隐藏字段(如LISTUSER的CLOB与VARCHAR2同名字段),这些字段可能为dbms_lob.... 目录oracle查询表结构建表语句索引1.用“USER_TAB_COLUMNS”查询表结构2.用“a

C语言中%zu的用法解读

《C语言中%zu的用法解读》size_t是无符号整数类型,用于表示对象大小或内存操作结果,%zu是C99标准中专为size_t设计的printf占位符,避免因类型不匹配导致错误,使用%u或%d可能引发... 目录size_t 类型与 %zu 占位符%zu 的用途替代占位符的风险兼容性说明其他相关占位符验证示

MySQL中EXISTS与IN用法使用与对比分析

《MySQL中EXISTS与IN用法使用与对比分析》在MySQL中,EXISTS和IN都用于子查询中根据另一个查询的结果来过滤主查询的记录,本文将基于工作原理、效率和应用场景进行全面对比... 目录一、基本用法详解1. IN 运算符2. EXISTS 运算符二、EXISTS 与 IN 的选择策略三、性能对比

全面解析Golang 中的 Gorilla CORS 中间件正确用法

《全面解析Golang中的GorillaCORS中间件正确用法》Golang中使用gorilla/mux路由器配合rs/cors中间件库可以优雅地解决这个问题,然而,很多人刚开始使用时会遇到配... 目录如何让 golang 中的 Gorilla CORS 中间件正确工作一、基础依赖二、错误用法(很多人一开

Java Stream流之GroupBy的用法及应用场景

《JavaStream流之GroupBy的用法及应用场景》本教程将详细介绍如何在Java中使用Stream流的groupby方法,包括基本用法和一些常见的实际应用场景,感兴趣的朋友一起看看吧... 目录Java Stream流之GroupBy的用法1. 前言2. 基础概念什么是 GroupBy?Stream

解密SQL查询语句执行的过程

《解密SQL查询语句执行的过程》文章讲解了SQL语句的执行流程,涵盖解析、优化、执行三个核心阶段,并介绍执行计划查看方法EXPLAIN,同时提出性能优化技巧如合理使用索引、避免SELECT*、JOIN... 目录1. SQL语句的基本结构2. SQL语句的执行过程3. SQL语句的执行计划4. 常见的性能优

Linux系统中查询JDK安装目录的几种常用方法

《Linux系统中查询JDK安装目录的几种常用方法》:本文主要介绍Linux系统中查询JDK安装目录的几种常用方法,方法分别是通过update-alternatives、Java命令、环境变量及目... 目录方法 1:通过update-alternatives查询(推荐)方法 2:检查所有已安装的 JDK方

Java Spring的依赖注入理解及@Autowired用法示例详解

《JavaSpring的依赖注入理解及@Autowired用法示例详解》文章介绍了Spring依赖注入(DI)的概念、三种实现方式(构造器、Setter、字段注入),区分了@Autowired(注入... 目录一、什么是依赖注入(DI)?1. 定义2. 举个例子二、依赖注入的几种方式1. 构造器注入(Con

详解MySQL中JSON数据类型用法及与传统JSON字符串对比

《详解MySQL中JSON数据类型用法及与传统JSON字符串对比》MySQL从5.7版本开始引入了JSON数据类型,专门用于存储JSON格式的数据,本文将为大家简单介绍一下MySQL中JSON数据类型... 目录前言基本用法jsON数据类型 vs 传统JSON字符串1. 存储方式2. 查询方式对比3. 索引

MyBatis-Plus通用中等、大量数据分批查询和处理方法

《MyBatis-Plus通用中等、大量数据分批查询和处理方法》文章介绍MyBatis-Plus分页查询处理,通过函数式接口与Lambda表达式实现通用逻辑,方法抽象但功能强大,建议扩展分批处理及流式... 目录函数式接口获取分页数据接口数据处理接口通用逻辑工具类使用方法简单查询自定义查询方法总结函数式接口