当前位置: 首页 > ai >正文

DevExpress WinForms中文教程:Data Grid - 过滤编辑器

DevExpress WinForms拥有180+组件和UI库,能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForms能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜任!

DevExpress WinForms Grid控件附带了一个内置的Filter Editor(过滤编辑器对话框),允许最终用户使用树形过滤构建器界面或像Visual Studio IntelliSense一样带有提示的文本编辑器来构建任何复杂程度的过滤器标准。在本教程中,您将了解最终用户如何调用此对话框,哪些选项会影响其可用性,以及如何在显示对话框之前从代码中调用它并自定义它。

获取DevExpress WinForms v25.1正式版下载

调用过滤编辑器和创建简单的过滤器标准

要调用Filter Editor(过滤编辑器),右键单击任何列标题,并在上下文菜单中选择Filter Editor…。

DevExpress WinForms中文使用教程图集

默认情况下,Filter EditorFilter Editor(过滤编辑器)将过滤条件显示为树,其中各个节点表示简单的过滤条件。根节点是组合所有条件的逻辑运算符,任何过滤条件都由三部分组成:列名、标准操作符和操作数值。如果未过滤网格的数据,则编辑器将为所单击的列包含一个不完整的过滤条件。

DevExpress WinForms中文使用教程图集

单击数值框,在下拉列表中选择Medium。

DevExpress WinForms中文使用教程图集

单击OK关闭编辑器并应用更改。因此网格只显示优先级设置为Medium的记录,现在您可以使用Filter Panel(过滤面板)中的Edit Filter按钮来调用Filter Editor(过滤编辑器)。

DevExpress WinForms中文使用教程图集

要添加新的过滤条件,请单击根节点旁边的加号按钮(FilterEditor_EU_AddButton),这也可以通过单击逻辑运算符并选择Add Condition来完成。

DevExpress WinForms中文使用教程图集

在可用列列表中选择Name,然后使用Contains比较运算符并在值框中输入‘vendor’字符串。单击Apply来过滤数据,而不关闭编辑器。

DevExpress WinForms中文使用教程图集

网格现在显示具有中等优先级的记录,名称中包含‘vendor’。

DevExpress WinForms中文使用教程图集

删除过滤条件

现在通过单击FilterEditor_EU_DeleteButton按钮或在逻辑运算符的菜单中选择Clear All来删除所有过滤条件。

DevExpress WinForms中文使用教程图集

从多项目过滤条件中删除项目

用户可以从多项目过滤条件中选择特定的项目(例如,“Is Any Of”、“Is One Of”)并删除它们,使用键盘或“Ctrl+Click”选择需要配置的项,按Delete删除项目。

DevExpress WinForms中文使用教程图集

构造复杂的过滤条件

现在可以创建更复杂的过滤条件,要创建一个新的条件组,请单击根逻辑操作符并选择Add Group。

DevExpress WinForms中文使用教程图集

将创建的逻辑运算符更改为OR。

DevExpress WinForms中文使用教程图集

在该组中创建两个新条件,这些条件将选择具有高优先级或状态设置为New的记录。以同样的方式,再创建一个带有两个条件的OR条件组,这些条件将选择“创建日期”介于1月1日和今天之间的记录,或者“固定日期”大于4月1日的记录。

DevExpress WinForms中文使用教程图集

单击OK,使用创建的标准过滤数据,您将在筛选面板中看到整个筛选条件。

DevExpress WinForms中文使用教程图集

更改过滤编辑器样式

现在尝试一个不同的过滤条件编辑器UI,在设计时,访问视图的设置,展开ColumnView.OptionsFilter,并将ColumnViewOptionsFilter.DefaultFilterEditorView属性设置为FilterEditorViewMode.Text。

DevExpress WinForms中文使用教程图集

运行应用程序并调用过滤器编辑器,现在您可以直接在嵌入的富文本编辑器中输入过滤字符串。当输入过滤器时,会自动调用操作符和字段名的下拉列表,这很像Visual Studio的智能感知功能。

DevExpress WinForms中文使用教程图集

找到相同的属性并将编辑模式设置为FilterEditorViewMode.VisualAndText,过滤编辑器将在各自的选项卡中显示可视化和文本编辑器。

DevExpress WinForms中文使用教程图集

阻止最终用户调用过滤编辑器

如果您不希望最终用户从列标题菜单中调用对话框,请将ColumnViewOptionsFilter.AllowFilterEditor属性设置为false。

DevExpress WinForms中文使用教程图集

注意,过滤器面板的Edit Filter按钮也变得不可见。

在代码中调用和自定义过滤编辑器

返回到设计时,查看如何在代码中调用和自定义Filter Editor(过滤编辑器)。

在显示Show Filter Editor按钮的Click事件处理程序中,调用视图的ColumnView.ShowFilterEditor方法来可视样式调用过滤编辑器。

C#

private void btn_ShowFilterEditor_ItemClick(object sender, ItemClickEventArgs e) {
gridView.OptionsFilter.DefaultFilterEditorView = DevExpress.XtraEditors.FilterEditorViewMode.Visual;
gridView.ShowFilterEditor(null);
}

此外,处理视图的ColumnView.FilterEditorCreated事件,该事件在即将显示过滤器编辑器时引发。在事件处理程序中,使用事件的FilterControlEventArgs.FilterControl参数的FilterControl.AppearanceValueColor属性自定义值color。启用FilterControl.ShowOperandTypeIcon 选项,来允许将一列的值与其他列中的值或预定义常量进行比较。

C#

private void gridView_FilterEditorCreated(object sender, DevExpress.XtraGrid.Views.Base.FilterControlEventArgs e) {
e.FilterControl.AppearanceValueColor = Color.Red;
e.FilterControl.ShowOperandTypeIcon = true;
}

运行应用程序并单击Show Filter Editor按钮,在调用的编辑器中,添加一个新条件,然后单击现在显示在删除按钮左侧的操作数类型图标。

DevExpress WinForms中文使用教程图集

单击值框,选择Date and time constants,并选择This year

DevExpress WinForms中文使用教程图集

将比较运算符更改为小于,添加另一个条件,选择“优先级”为“中等”的记录。请注意,该值是使用事件处理程序中指定的红色绘制的。

DevExpress WinForms中文使用教程图集


更多DevExpress线上公开课、中文教程资讯请上中文网获取

http://www.xdnf.cn/news/19410.html

相关文章:

  • 【机器学习学习笔记】pandas基础
  • matlab-神经网络的语音识别
  • SHELL命令pr
  • 【C++】 Vector容器操作全解析
  • OpenHarmony智能语音框架深度拆解:从VAD到唤醒词打造你的AI语音智能体
  • 第8篇c++Expression: (L“Buffer is too small“ 0
  • 20.30 QLoRA微调终极指南:Hugging Face参数优化实战,24GB显存直降50%性能不减
  • 【JavaScript】async/await 与 Fetch 传参,PUT,PATCH,文件上传,批量删除等前端案例
  • 二、Git基础命令速查表
  • Goframe 框架下HTTP反向代理并支持MCP所需的SSE协议的实现
  • leetcode算法刷题的第二十三天
  • Windows Qt5.15.17源码使用VS2019编译安装
  • Linux自动化构建工具-make/Makefile
  • C#/.NET/.NET Core技术前沿周刊 | 第 52 期(2025年8.25-8.31)
  • 【论文精读】基于YOLOv3算法的高速公路火灾检测
  • Jenkins 自动构建Vue 项目的一个大坑
  • 计算机毕设选题:基于Python+Django的健康饮食管理系统设计【源码+文档+调试】
  • 【LeetCode 155】—最小栈 - 详解与实现
  • Apache Commons ConvertUtils
  • 电科金仓 KFS 场景化实践路径解析:从行业场景落地看技术价值转化
  • Redis面试重点-2
  • std::thread详解
  • JDK14安装步骤及下载(附小白详细教程)
  • 在Unity中,让子物体不随父物体移动或转动的方法!
  • 数据库索引abc,请问查询哪些字段能命中索引
  • APB验证VIP Agent的各个组件之间的通信
  • 【C++ 】string类:深拷贝与浅拷贝解析
  • ​​告别通用模型局限:5步微调实战指南​
  • 数值分析——非线性方程与方程组的数值解法之迭代法
  • [灵动微电子 MM32BIN560CN MM32SPIN0280]读懂电机MCU 模拟输入运放放大