筛选允许显示数据源中满足特定标准的记录子集。 当对网格视图应用筛选时,只显示那些满足当前筛选标准的记录。 可以对单个列或多个列执行数据筛选。 最终用户可以通过从 筛选下拉列表 中选择列的取值来应用筛选,通过 筛选编辑器 或通过使用 自定义筛选对话框 生成筛选。
筛选概述
XtraGrid 从版本 3.0 以上可以为任何数据源支持自动筛选功能 (在之前的版本中,此功能仅适用于 DataView 数据源)。 当对列应用筛选时,网格控件不再像 3.0 以前的版本那样,把筛选功能委托给下层数据源。 而是网格控件自身执行数据筛选,因此筛选机制不依赖于数据源的类型。
当网格控件被绑定到 DataView 数据源时,不再使用或修改 DataView.RowFilter 属性。 如果需要,现在该属性可以用于直接对数据源应用筛选。从版本 3 以上,卡片视图 支持筛选和 排序功能。 最终用户可以通过 “Customization(自定义)”按钮 在卡片视图中应用筛选/排序。
在下面的插图中,为网格视图中的两个列应用了筛选 (“Status” 和 “Created Date”):
在网格视图中,最终用户可以通过列的 筛选按钮 应用、改变或移除筛选。 单击它调用 筛选下拉列表,在默认情况下,在此列表中包含预定义的 ((All-全部)、(Custom-自定义)、(Blanks-空白) 和 (Non Blanks-非空白)) 取值和其他取值项。 在列表顶部,显示最近使用的筛选条件。 下面的插图展示了为网格视图的一个列调用的筛选下拉列表:
在卡片视图中,可以通过 “Customization(自定义)”按钮 调用筛选下拉列表。
也可以把自定义筛选项添加到筛选下拉列表中,当选中它们时,可以用于为数据提供任何筛选标准。 要获得更多关于筛选下拉列表及其定制方式的信息,请参阅 筛选下拉列表 文档。
对列应用筛选时不影响任何其他列的筛选设置。
在对当前视图应用筛选之后,在默认情况下,筛选面板 出现在视图的底部。
筛选面板显示一个表示当前筛选标准的字符串。 它也包含了相关的筛选按钮:
- “x”按钮,用于关闭筛选面板并清除当前筛选
当 ColumnViewOptionsView.ShowFilterPanelMode 属性值设置为 ShowAlways 时,此按钮不可用。
- 一个复选按钮,用于禁用/启用筛选
- 一个下拉按钮,可以用于调用最近使用的筛选标准的列表
- “Edit filter(编辑筛选)”按钮,用于打开 筛选编辑器。
注意,使用 ColumnViewOptionsView.ShowFilterPanelMode 属性可以使筛选面板始终可视或始终隐藏。
为了方便最终用户,可以在 列标头的上下文菜单 或 分组面板的上下文菜单 中实现自定义筛选选项。 在 GridMainDemo 中的 Data Filtering 模块演示了添加“Clear Filter”和“Can Filter”选项的一个示例。 也可以参阅 为弹出式菜单实现自定义行为 文档,此文档提供了关于定制内建弹出式菜单的详细信息。