没有找到合适的产品?
联系客服协助选型:023-68661681
提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|使用教程|编辑:龚雪|2025-08-12 11:23:03.797|阅读 13 次
概述:本教程主要为大家介绍DevExpress WinForms数据网格控件中的列过滤器功能,欢迎下载最新版组件体验!
# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>
相关链接:
DevExpress WinForms拥有180+组件和UI库,能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForms能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜任!
本教程将向您展示Microsoft Excel和Microsoft Windows Explorer启发的数据过滤功能,这些功能可在DevExpress WinForms网格中使用,包括:
您将了解默认情况下可用的内容以及如何禁用或自定义这些UI元素。
获取DevExpress WinForms v25.1正式版下载
DevExpress技术交流群11:749942875 欢迎一起进群讨论
使用悬停列标题时出现的按钮,可以使用Excel样式的过滤器下拉菜单。对于除日期-时间外的所有列类型,过滤器下拉列表显示一个简单的列表,您可以在其中一次选择一个项目。
当您选择一个项目时,网格会自动关闭下拉菜单,并过滤网格的数据,以便在相应的列中显示具有所选值的记录。
下拉列表还提供(Custom)项,它调用Custom Filter Editor。与Microsoft Excel非常相似,此对话框允许最终用户指定最多两个过滤条件,显示谁是Mike Roller或Carl Lucas的记录。
您可以过滤网格对多个列的数据,如果单击另一列的筛选器按钮,则只会看到符合先前应用筛选标准的记录中的值。如果需要查看从所有记录中获取的值,请在按住SHIFT键的同时单击过滤器按钮。如果将筛选条件应用于某列,则该列的筛选器下拉列表将显示所有值。
若要清除特定列的过滤,请单击对应下拉列表中的(All)项。
之后,您可以再次单击列的筛选器按钮,来在列表顶部查找最近使用的项目,它们与其他项目之间用双线隔开。
现在关闭应用程序并展开视图的ColumnView.OptionsFilter属性,要禁用最近使用的筛选器项显示,请关闭ColumnViewOptionsFilter.AllowColumnMRUFilterList选项,通过设置ColumnViewOptionsFilter.ColumnFilterPopupMaxRecordsCount属性为10来改变下拉高度。
运行应用程序。现在列标题下拉菜单显示10个或更少的项目,如果需要,还会显示一个垂直滚动条,过滤器下拉列表不再显示最近使用的项目。
单击日期-时间列中的过滤器按钮,您会看到一个下拉菜单,里面有一个嵌入式日历。选择所需的日期或间隔后,网格立即过滤其数据。
您还可以使用日历下面的复选框来选择常见的日期间隔,例如“本月早些时候”、“今年早些时候”等。要清除当前过滤器,请选中Show all复选框,要隐藏下拉菜单,请单击关闭按钮。
您也可以使用下拉列表,就像新版的Microsoft Excel或Windows File Explorer一样。要启用此模式,请选择一个列,展开其GridColumn.OptionsFilter属性并将OptionsColumnFilter.FilterPopupMode选项设置为FilterPopupMode.CheckedList。
运行应用程序并单击列的过滤器按钮,现在您可以同时选择多个项目,选择三个值,单击OK。
网格现在显示具有下拉列表中所选值的记录。
要清除针对该列的过滤,请调用下拉菜单,单击Select All,然后单击OK。
过滤器下拉菜单提供特殊项来处理空值或null值,如果在下拉列表中选择(Blanks)项,则网格将显示值为空的记录。
以同样的方式,您可以选择(Non Blanks)来过滤掉这些空值。类似地,选中的下拉列表提供(Blanks)项。
默认情况下,日期-时间列的下拉列表不包含此类项。
关闭应用程序。要从下拉菜单中隐藏(blank)和(Non Blanks)项,将OptionsColumnFilter.ShowBlanksFilterItems属性设置为False。选择固定日期列,并将其OptionsColumnFilter.ShowEmptyDateFilter选项设置为True,这将在日期时间过滤器下拉列表中添加一个空值复选框。
运行应用程序来查看结果。调用Priority列下拉列表,查看它是否包含(Blanks)和(Non Blanks)项。然后单击Fixed Date列标题中的过滤器按钮,现在这个列下拉菜单显示额外的Show Empty复选框。
网格还允许您手动自定义过滤器下拉列表。
您可以添加新的或删除现有的项目,切换到设计时,看看如何做到这一点。
常规下拉列表可以使用View的ColumnView.ShowFilterPopupListBox事件自定义,该事件会在过滤器下拉列表显示之前触发。为这个事件编写一个处理程序,将一个新的自定义项添加到Priority列的下拉列表中,事件的Column参数指定下拉列表中将要显示的列。首先,找到第一个值项的索引,在它之前插入一个自定义项。要做到这一点,使用事件的FilterPopupListBoxEventArgs.ComboBox参数的RepositoryItemComboBox.Items属性,遍历当前下拉框显示的项目。若要跳过分隔MRU项和预定义项的双线,请检查当前项是否由FilterItem对象表示。然后使用当前项的Value属性。如果是FilterItem或ColumnFilterInfo类型,则当前项不是值项。一旦检测到值项,就应该停止搜索过程。
之后,创建一个过滤器标准来选择具有High和Medium优先级的记录,指定所需的筛选条件和要在过滤器面板中显示的文本,并用这些设置创建一个新的ColumnFilterInfo对象。将标题为“Important”的过滤选项插入到过滤器下拉框中的指定位置。
C#
private void gridView_ShowFilterPopupListBox(object sender, FilterPopupListBoxEventArgs e) { if (e.Column.FieldName != "Priority") return; // Get the index of the first value item. int index; for (index = 0; index < e.ComboBox.Items.Count; index++) { object item = e.ComboBox.Items[index]; if (item is FilterItem) { object itemValue = ((FilterItem)item).Value; if (itemValue is FilterItem || itemValue is ColumnFilterInfo) continue; break; } } // Create a filter criterion to select records with the "High" and "Medium" priorities. string filterString = "([Priority] == 3 OR [Priority] == 2)"; string filterDisplayText = "[Priority] == High OR [Priority] == Medium"; ColumnFilterInfo filterInfo = new ColumnFilterInfo(filterString, filterDisplayText); e.ComboBox.Items.Insert(index, new FilterItem("Important", filterInfo)); }
运行应用程序来查看结果,单击优先级列的筛选器按钮,来在下拉列表中找到显示的重要项。选择此项时,网格显示优先级设置为High或Medium的记录。
现在关闭应用程序并自定义Name列中的选中的下拉列表,选择View并处理它的ColumnView.ShowFilterPopupCheckedListBox事件,事件的Column参数标识将要显示的下拉列表的列,FilterPopupCheckedListBoxEventArgs.CheckedComboBox参数提供下拉列表的项集合。事件处理程序禁用以‘ Data ’开头的项,并删除以‘ Help ’开头的项。
C#
private void gridView_ShowFilterPopupCheckedListBox(object sender, FilterPopupCheckedListBoxEventArgs e) { if (e.Column.FieldName != "Name") return; for (int i = 0; i < e.CheckedComboBox.Items.Count; i++) { CheckedListBoxItem item = e.CheckedComboBox.Items[i]; string itemValue = (string)(item.Value as FilterItem).Value; // Disable checked items that start with "Data". if (itemValue.StartsWith("Data")) e.CheckedComboBox.Items[i].Enabled = false; // Remove checked items that start with "Help". if (itemValue.StartsWith("Help")) { e.CheckedComboBox.Items.Remove(item); i--; } } }
再次运行应用程序并单击Name列中的过滤器按钮,出现的选中的下拉列表不包含以“Help”开头的项,并且有三个文本以“Data”开头的禁用项。
更多DevExpress线上公开课、中文教程资讯请上中文网获取
慧都是⼀家⾏业数字化解决⽅案公司,专注于软件、⽯油与⼯业领域,以深⼊的业务理解和⾏业经验,帮助企业实现智能化转型与持续竞争优势。
慧都科技是DevExpress的中国区的合作伙伴,DevExpress作为用户界面领域的优秀产品,帮助企业高效构建权限管理、数据可视化(如网格/图表/仪表盘)、跨平台系统(WinForms/ASP.NET/.NET MAUI)及行业定制解决方案,加速开发并强化交互体验。
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com
文章转载自:慧都网本文将带你一步步掌握如何用 Python 高效准确地完成词频统计,帮助你从 Word 文件中快速提取有价值的信息,省去手动查找的麻烦。
3MF和STL都是 3D 建模软件广泛使用的 3D 文件格式。在某些情况下,由于行业标准要求和兼容性,STL 文件格式更受青睐。本教程将演示借助Aspose.3D for .NET,使用 C# 以编程方式将 3MF 转换为 STL 。
本教程主要为大家介绍DevExpress WinForms数据网格控件中的列过滤器功能,欢迎下载最新版组件体验!
如果您的PDF太大,无法通过电子邮件发送,或者在线加载时间过长,您可以在几秒钟内缩小 PDF 大小。本教程介绍了借助Aspose.PDF使用 C#、Java 和 Python 编程快速缩小PDF的方法。
优秀的界面控件开发包,帮助企业构建卓越应用!
DevExpress DXperience Subscription高性价比的企业级.NET用户界面套包,助力企业创建卓越应用!
DevExpress WinForms Subscription为Windows Forms平台创建具有影响力的业务解决方案,高性价比WinForms界面控件套包。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@evget.com
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢
慧都科技 版权所有 Copyright 2003-
2025 渝ICP备12000582号-13 渝公网安备
50010702500608号