logo Devexpress WPF控件文档中心
文档首页>>Devexpress WPF控件文档中心>>自动过滤行

自动过滤行


自动过滤行允许终端用户过滤数据。终端用户应在行内键入文本以应用过滤条件。

自动过滤行被隐藏。将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。
自动过滤行按以下顺序选择默认的过滤标准。
  1. 如果一个单元格的ColumnBase.EditSettings属性是CheckEditSettings,那么过滤标准就是Equals。ColumnBase.ColumnFilterMode、ColumnBase.AutoFilterCondition和ColumnBase.AutoFilterCriteria属性被忽略。
  2. 如果一个单元格的ColumnBase.ColumnFilterMode属性是DisplayText或ColumnBase.FieldType属性是String,则过滤条件是StartsWith。
  3. 如果一个单元格的ColumnBase.FieldType属性是byte[],则过滤条件是IsNotNull。
  4. 如果单元格的ColumnBase.ShowCriteriaInAutoFilterRow属性为true,则过滤条件为Equals。
  5. 如果单元格的ColumnBase.ShowCriteriaInAutoFilterRow属性为false,则过滤条件为StartsWith。

在线咨询
联系我们

客服热线
023-68661681

QQ客服

意见反馈


添加微信获专业服务

TOP