自动过滤行
自动过滤行允许终端用户过滤数据。终端用户应在行内键入文本以应用过滤条件。
自动过滤行被隐藏。将TableView.ShowAutoFilterRow属性设置为true以激活自动过滤行。
当终端用户修改自动过滤行单元格的文本时,GridControl会立即更新该列的过滤条件。将ColumnBase.ImmediateUpdateAutoFilter属性设置为false以禁用列的自动更新。在这种情况下,要更新单元格,终端用户应该按回车键或聚焦另一个单元格。
清空自动过滤行的文本以删除过滤器。
自动过滤行设置
可用性
使用ColumnBase.AllowAutoFilter属性来指定是否可以用自动过滤行过滤此列的值。如果此属性设置为false,则自动过滤行中的相应单元格将被禁用。
比较运算符类型
ColumnBase.AutoFilterCondition属性允许你指定列的比较操作符类型(包含、等于或相似)。
标识符
自动过滤行的句柄标识这一行。使用静态GridControl.AutoFilterRowHandle字段来获取句柄。
行数据
使用ColumnBase.AutoFilterValue属性来获取或设置自动过滤行的列值。
筛选条件选择器
将ColumnBase.ShowCriteriaInAutoFilterRow属性设置为true,以启用过滤标准选择器。该选择器允许终端用户将所需的标准类型应用到所需的列中。
将TableView.ShowCriteriaInAutoFilterRow(TreeListView.ShowCriteriaInAutoFilterRow)属性设置为true,以启用所有列的过滤标准选择器。
滤波器行延时
你可以用DataViewBase.FilterRowDelay属性指定过滤延迟时间,单位是毫秒。以下代码示例创建了一个具有1秒列过滤延迟的GridControl。
<dxg:GridControl ItemsSource="{Binding Customers}"> <dxg:GridControl.View> <dxg:TableView ShowAutoFilterRow="True" FilterRowDelay="1000"/> </dxg:GridControl.View> </dxg:GridControl>过滤器条件更新模式
当终端用户修改自动过滤行的文本时,GridControl会更新过滤条件。您可以将ColumnBase.ImmediateUpdateAutoFilter属性设置为false以禁用列的自动更新。在这种模式下,当终端用户按下Enter键或聚焦其他单元格时,过滤条件就会被应用。
<dxg:GridControl ItemsSource="{Binding Customers}"> <dxg:GridControl.View> <dxg:TableView ShowAutoFilterRow="True"/> </dxg:GridControl.View> <dxg:GridColumn FieldName="Name" ImmediateUpdateAutoFilter="False"/> </dxg:GridControl>过滤标准
单元格的过滤标准取决于ColumnBase.AutoFilterCondition和ColumnBase.AutoFilterCriteria属性。
- 当ColumnBase.AutoFilterCriteria属性不为空时,自动过滤行使用该属性中指定的标准。
- 如果ColumnBase.ShowCriteriaInAutoFilterRow属性设置为true,则自动过滤行使用ColumnBase.AutoFilterCriteria属性,并忽略ColumnBase.AutoFilterCondition属性。
- 当ColumnBase.AutoFilterCriteria为空时,自动过滤行根据列类型和ColumnBase.ColumnFilterMode选择一个过滤条件。
- 当ColumnBase.AutoFilterCriteria属性为空时,自动过滤行使用ColumnBase.AutoFilterCondition。
- 如果一个单元格的ColumnBase.EditSettings属性是CheckEditSettings,那么过滤标准就是Equals。ColumnBase.ColumnFilterMode、ColumnBase.AutoFilterCondition和ColumnBase.AutoFilterCriteria属性被忽略。
- 如果一个单元格的ColumnBase.ColumnFilterMode属性是DisplayText或ColumnBase.FieldType属性是String,则过滤条件是StartsWith。
- 如果一个单元格的ColumnBase.FieldType属性是byte[],则过滤条件是IsNotNull。
- 如果单元格的ColumnBase.ShowCriteriaInAutoFilterRow属性为true,则过滤条件为Equals。
- 如果单元格的ColumnBase.ShowCriteriaInAutoFilterRow属性为false,则过滤条件为StartsWith。