没有找到合适的产品?
联系客服协助选型:023-68661681
提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|使用教程|编辑:龚雪|2025-09-10 10:16:07.997|阅读 1 次
概述:本教程主要为大家介绍DevExpress WinForms数据网格控件中的过滤器行功能,欢迎下载最新版组件体验!
# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>
相关链接:
DevExpress WinForms拥有180+组件和UI库,能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForms能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜任!
本教程提供了有关DevExpress WinForms Grid的API信息,该API运行您过滤数据并定位行。在本文中您将了解如何将过滤条件应用于整个视图或单个列,如何清除现有过滤条件,以及如何按单元格值定位行或显示文本。
获取DevExpress WinForms v25.1正式版下载
DevExpress技术交流群11:749942875 欢迎一起进群讨论
DevExpress WinForms Grid的API允许您对视图或单个列应用过滤条件,本教程将通过把Click处理程序分配给View Filtering(视图过滤)和Column Filtering(列过滤)组中的按钮来展示这两种方法。
首先,处理View Filtering组中Apply Filter按钮的Click事件。在事件处理程序中,将过滤器表达式分配给视图的属性。
过滤器表达式包含由OR和AND逻辑运算符组合的三个子句,第一和第二子句用括号分组,过滤条件使用各种比较运算符,例如大于或不等于。日期-时间常量必须用“#”字符封装,而字符串常量必须用单引号括起来。
C#
private void btn_ApplyViewFilter_ItemClick(object sender, ItemClickEventArgs e) { gridView.ActiveFilterString = "([UnitPrice] < 20 OR [OrderDate] >= #06/1/2015#) AND [ProductName] <> 'Chang'"; }
现在为Clear Filter按钮编写事件处理程序。要清除视图及其所有列的过滤器设置,请调用视图属性的clear方法。
C#
private void btn_ClearViewFilter_ItemClick(object sender, ItemClickEventArgs e) { gridView.ActiveFilter.Clear(); }
运行应用程序来查看结果,点击Apply Filter按钮,选择单价小于20或订单日期大于6月1日且产品名称不是“chang”的记录。网格将显示过滤器表达式中涉及的列的过滤器按钮,但是这些列中的过滤器下拉列表不包含可清除过滤器的项。
单击Clear Filter按钮来删除整个视图中得过滤器设置。
关闭应用程序并切换到 Column Filtering组,处理Apply Filter按钮的Click事件,来选择单价大于20且小于30的记录。为此,使用所需的过滤条件创建一个新的对象,并将其分配给Unit Price列的属性。
C#
private void btn_ApplyColumnFilter_ItemClick(object sender, ItemClickEventArgs e) { string filterString = "[UnitPrice] > 20 AND [UnitPrice] < 30"; gridView.Columns["UnitPrice"].FilterInfo = new ColumnFilterInfo(filterString); }
在ClearFilter按钮的Click事件处理程序中,调用目标列的方法。
C#
private void btn_ClearColumnFilter_ItemClick(object sender, ItemClickEventArgs e) { gridView.Columns["UnitPrice"].ClearFilter(); }
运行应用程序并单击Column Filtering组中的Apply Filter按钮,来根据Unit Price列过滤数据。现在,目标列的下拉列表包含清除列过滤器的(All)项。
通过单击相应的Clear filter按钮,删除应用于该列的过滤器。
要更改过滤器面板中显示的文本,请向对象构造函数添加一个参数。
C#
private void btn_ApplyColumnFilter_ItemClick(object sender, ItemClickEventArgs e) { string filterString = "[UnitPrice] > 20 AND [UnitPrice] < 30"; string displayText = "[UnitPrice] Is between $20.00 and $30.00"; gridView.Columns["UnitPrice"].FilterInfo = new ColumnFilterInfo(filterString, displayText); }
再次运行应用程序来查看结果,当您单击Column Filtering组中的Apply Filter按钮时,网格将根据Unit Price列筛选数据,并在过滤器面板中显示指定的文本。
返回到设计时,为Locate Row按钮编写代码。
用三个参数调用View的方法:第一个参数指定搜索开始的行句柄;第二个命令将搜索范围缩小到特定列,第三个命令指定搜索值。Category列使用就地编辑器,它将底层整数值表示为带有图像的字符串。值1对应于“饮料”类别,找到行后,通过设置视图的属性将焦点移动到该行。
C#
private void btn_LocateRow_ItemClick(object sender, ItemClickEventArgs e) { int rowHandle = gridView.LocateByValue(gridView.FocusedRowHandle + 1, gridView.Columns["Category"], 1); gridView.FocusedRowHandle = rowHandle; }
运行应用程序并单击Locate Row按钮,因此网格将关注Category列中最近的包含“Beverages”的行,随后的单击遍历带有“Beverages”类别的所有行。
关闭应用程序并修改处理程序代码,以便通过显示文本定位行。要做到这一点,使用方法并传递“Beverages”字符串作为第三个参数。
C#
private void btn_LocateRow_ItemClick(object sender, ItemClickEventArgs e) { int rowHandle = gridView.LocateByDisplayText(gridView.FocusedRowHandle + 1, gridView.Columns["Category"], "Beverages"); gridView.FocusedRowHandle = rowHandle; }
再次运行应用程序并单击Locate Row按钮来查看结果。
慧都是⼀家⾏业数字化解决⽅案公司,专注于软件、⽯油与⼯业领域,以深⼊的业务理解和⾏业经验,帮助企业实现智能化转型与持续竞争优势。
慧都科技是DevExpress的中国区的合作伙伴,DevExpress作为用户界面领域的优秀产品,帮助企业高效构建权限管理、数据可视化(如网格/图表/仪表盘)、跨平台系统(WinForms/ASP.NET/.NET MAUI)及行业定制解决方案,加速开发并强化交互体验。
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@fc6vip.cn
文章转载自:慧都网本文将为大家介绍如何用MyEclipse开发Java EE企业应用程序,欢迎下载最新版体验!
本文主要介绍了Tool Call Confirmation API层和DevExpress Blazor AI Chat组件的相关可自定义接口,欢迎下载最新版体验!
本文将带大家学习如何在Kendo UI for Angular 网格组件中使用Angular的httpResource API,欢迎下载最新版组件体验!
本文主要介绍DevExpress WPF Grid控件如何将数据绑定虚拟数据源,欢迎下载最新版组件体验!
为Windows Forms平台创建具有影响力的业务解决方案,高性价比WinForms界面控件套包。
DevExpress Universal Subscription优秀的界面控件开发包,帮助企业构建卓越应用!
DevExpress DXperience Subscription高性价比的企业级.NET用户界面套包,助力企业创建卓越应用!
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@fc6vip.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢