DevExpress WinForms中文教程:Data Grid - Excel样式的自定义过滤器对话框

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

在本教程中,您将学习如何使用最终用户默认可用的Excel样式过滤器对话框、如何切换到允许您将一个字段的值与另一个字段的值进行比较的版本、如何在代码中手动调用和自定义这些对话框。

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

标准自定义过滤器对话框

要调用某个列的Excel样式过滤器对话框,请单击该列的过滤器按钮并在下拉框中选择 (Custom)。

对话框允许最终用户创建由AND或OR逻辑运算符组合的一个或两个条件组成的标准,将第一个条件的比较运算符更改为Is greater than(大于)。在右侧的对话框中,输入值10,让AND逻辑运算符保持选中状态。对于第二个条件,选择Is less than(小于)并输入值30,单击OK应用创建的过滤条件。

因此,网格显示的是单价在10美元到30美元之间的记录。

高级自定义过滤器对话框

关闭应用程序。选择View,展开它的ColumnView.OptionsFilter属性并启用ColumnViewOptionsFilter.UseNewCustomFilterDialog选项。

运行应用程序来查看更改,现在当您在列的过滤器下拉列表中选择(Custom)时,将使用一个不同版本的Custom Filter Dialog(自定义过滤器对话框),此对话框还提供将当前列值与另一列中的值进行比较的功能。通过选择Field复选框激活第一种条件下的此模式,并在下拉列表中选择Discount Price列。然后,将比较操作符更改为Does not equal。对于第二个条件,选择Is less than(小于)并输入值20,单击OK来仅显示那些在单价小于20时已分配折扣的记录。

在代码中调用和自定义过滤器对话框

下一步是查看如何在代码中调用和定制自定义筛选器对话框。

若要在Show Custom Filter Editor的Click事件处理程序中为类别列调用自定义筛选器对话框,请调用视图的ColumnView.ShowCustomFilterDialog方法并将类别列作为参数传递。

C#

cs 复制代码
private void btn_ShowCustomFilterDialog_ItemClick(object sender, ItemClickEventArgs e) {
gridView.ShowCustomFilterDialog(colCategory);
}

过滤器对话框可以在View的ColumnView.CustomFilterDialog事件中定制,该事件将在即将显示对话框时引发。为此事件编写一个处理程序,该处理程序将抑制Unit Price列的默认对话框,然后应用自定义筛选条件。事件的CustomFilterDialogEventArgs.Column参数标识要过滤的列,指定所需的筛选条件和要在筛选面板中显示的文本,并用这些设置创建一个新的ColumnFilterInfo对象,然后将新的过滤器项分配给事件的CustomFilterDialogEventArgs.FilterInfo参数。最后,将CustomFilterDialogEventArgs.Handled参数设置为true,以防止在事件执行后调用默认的FilterDialog。

C#

cs 复制代码
private void gridView_CustomFilterDialog(object sender, DevExpress.XtraGrid.Views.Grid.CustomFilterDialogEventArgs e) {
if (e.Column.FieldName != "UnitPrice") return;
string filterSting = "[UnitPrice] > 10 AND [UnitPrice] < 30";
string displayText = "[UnitPrice] > $10.00 AND [UnitPrice] < $30.00";
ColumnFilterInfo columnFilter = new ColumnFilterInfo(filterSting, displayText);
e.FilterInfo = columnFilter;
e.Handled = true;
}

运行应用程序并单击Show Custom Filter Editor按钮,将显示Category列的过滤器对话框。在调用的对话框中,指定两个条件来显示Beverages和Confections类别中的记录。现在调用Unit Price列的过滤器下拉菜单并选择(Custom),它选择单价在10到30之间的记录。


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

相关推荐
会一点设计9 小时前
6个优质春节海报模板网站推荐!轻松设计马年祝福海报
ui·ux
qq_2975746710 小时前
【实战】POI 实现 Excel 多级表头导出(含合并单元格完整方案)
java·spring boot·后端·excel
hudawei99619 小时前
TweenAnimationBuilder和AnimatedBuilder两种动画的比较
flutter·ui·动画·tweenanimation·animatedbuilder
依米阳光0820 小时前
Playwright MCP AI实现自动化UI测试
ui·自动化·playwright·mcp
缺点内向1 天前
C#: 告别繁琐!轻松移除Word文档中的文本与图片水印
c#·自动化·word·.net
2501_930707781 天前
使用 C# .NET 从 PowerPoint 演示文稿中提取背景图片
c#·powerpoint·.net
芷栀夏1 天前
CANN 仓库实战:用 DrissionPage 构建高效、稳定的 UI 自动化测试框架
ui·aigc·transformer·cann
初级代码游戏1 天前
套路化编程 C# winform 自适应缩放布局
开发语言·c#·winform·自动布局·自动缩放
向上的车轮1 天前
为什么.NET(C#)转 Java 开发时常常在“吐槽”Java:checked exception
java·c#·.net
微祎_1 天前
构建一个 Flutter 点击速度测试器:深入解析实时交互、性能度量与响应式 UI 设计
flutter·ui·交互