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

相关推荐
Java面试题总结10 小时前
LeetCode 93.复原IP地址
算法·leetcode·职场和发展·.net
慧都小妮子12 小时前
SciChart WPF v9.0 更新详解:矢量场图表、堆叠箱线图与 MVVM 轴同步来了
c#·.net·wpf·数据可视化·图表控件·图表
海盗123417 小时前
.NET编码规范05-Roslyn分析器与StyleCop
.net
用户2986985301418 小时前
Java 创建 CSV 文件的三种实用方法:从零构建、数组写入与 Excel 转换
java·后端·excel
春卷同学19 小时前
HarmonyOS掌上记账APP开发实践第29篇:条件渲染与 ForEach — 动态 UI 的构建策略
ui·华为·harmonyos
葡萄城技术团队19 小时前
Alt + PageDown实现横向换页:让 SpreadJS 宽表更接近 Excel 操作习惯
excel
小小测试开发20 小时前
Midscene.js:14K Stars 视驱 UI 自动化框架,用截图替代 DOM 选择器写测试
javascript·ui·自动化
不吃辣49020 小时前
从0-1学习导航页面布局优化和搭建
ui·平面·前端框架
幸福清风1 天前
Python 完美处理Excel合并单元格:拆分填充+自动合并
python·excel·合并单元格·拆分单元格