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

原创|行业资讯|编辑:龚雪|2025-08-29 11:22:20.090|阅读 8 次

概述:本教程主要为大家介绍DevExpress WinForms数据网格控件中的过滤编辑器,欢迎下载最新版组件体验!

# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>

相关链接:

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

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

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

DevExpress技术交流群11:749942875      欢迎一起进群讨论

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

要调用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线上公开课、中文教程资讯请上中文网获取

关于慧都科技

慧都是⼀家⾏业数字化解决⽅案公司,专注于软件、⽯油与⼯业领域,以深⼊的业务理解和⾏业经验,帮助企业实现智能化转型与持续竞争优势。

慧都科技是DevExpress的中国区的合作伙伴,DevExpress作为用户界面领域的优秀产品,帮助企业高效构建权限管理、数据可视化(如网格/图表/仪表盘)、跨平台系统(WinForms/ASP.NET/.NET MAUI)及行业定制解决方案,加速开发并强化交互体验。


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com

文章转载自:慧都网

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP