DevExpress WinForms拥有180+组件和UI库,能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForms能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜任!
在本教程中,您将学习如何激活自动过滤器行,并使用它根据使用不同就地编辑器的列过滤数据。
获取DevExpress WinForms v25.1正式版下载
DevExpress技术交流群11:749942875 欢迎一起进群讨论
由最终用户激活过滤行
要激活自动过滤行,右键单击任何列标题并选择上下文菜单中的Show Auto Filter Row项。

通过在过滤器行中输入文本过滤数据
当最终用户开始在一行中输入时,将使用LIKE比较操作符自动创建过滤条件。在Name单元格中输入“d”后,网格将显示以“d”开头的名称的记录。

然后可以输入其他字符来继续过滤视图,若要清除当前应用的过滤条件,请从过滤器行的单元格中删除文本。
以类似的方式,您可以根据日期-时间列对数据进行过滤。例如,输入1和正斜杠来过滤1月份创建的记录。

还可以使用自动过滤行根据多个列过滤数据,在Name列中输入“help”字符串,而不清除前面的过滤器来尝试它的实际操作。

然后,清除过滤器来再次查看所有数据。
对使用LookUp、ImageComboBox和CheckEdit编辑器的列使用过滤器行
在具有LookUpEdit、ImageComboBoxEdit或CheckEdit就地编辑器的列中,自动过滤器行不允许自定义文本输入。自动过滤器行单元格使用相同的编辑器,并且只允许用户使用Equals和Does not Equal操作符创建过滤条件。
提示:如果您想使用其他操作符(如Contains或Less than),请将FilterMode属性设置为DisplayText。在本示例中,AutoFilterRow单元格显示textit替代查找编辑器,并允许用户输入任何自定义值。
在下拉列表中选择Carl Lucas项来创建并应用一个适当的过滤器。

要清除对Owner列的过滤,可以按CTRL+DELETE组合键或在列标题下拉菜单中选择(All)。
要根据分配了ImageComboBoxEdit编辑器的Priority列筛选数据,请在相应的下拉列表中选择所需的项。

要清除当前过滤器,请在下拉框中选择空项。
自动过滤器行中的复选框可以处于三种状态,如果将编辑器的检查状态切换为Checked或Unchecked,则应用相应的过滤器。

若要删除当前过滤器,请将复选框切换到Indeterminate状态。
阻止最终用户激活过滤器行
要防止使用列标题上下文菜单调用自动过滤器行,请展开视图的GridView.OptionsMenu属性并禁用GridOptionsMenu.ShowAutoFilterRowItem选项。

运行应用程序并单击任意列标题,查看上下文菜单是否不再包含Show Auto Filter Row项。
在设计时激活过滤器行
展开视图的GridView.OptionsView属性并启用GridOptionsView.ShowAutoFilterRow选项。

再次运行应用程序,将看到显示在视图顶部的自动过滤器,它现在在应用程序启动时启用,最终用户不能使用上下文菜单隐藏它。
更改过滤条件的比较运算符
DevExpress WinForms网格控件还允许您手动指定过滤器条件的比较运算符,关闭应用程序并更改Name列的比较运算符。展开列的GridColumn.OptionsFilter属性,并将OptionsColumnFilter.AutoFilterCondition设置为AutoFilterCondition.Contains。

如果现在对网格进行过滤,它将在任何位置显示其值包含输入字符串的记录。

注意,对于使用LookUpEdit, ImageComboBoxEdit 或 CheckEdit编辑器的列,不能更改比较操作符。
禁用过滤器行条件的自动更新
默认情况下,当您输入每个单独的字符时,过滤器会立即更新。对于大型数据集,您可能希望启用延迟过滤,以便在输入整个筛选字符串后仅应用一次条件。为此,打开显示Name列属性的Property网格,并禁用OptionsColumnFilter.ImmediateUpdateAutoFilter 选项。

现在当您在Name列内的自动筛选行中输入文本时,不会自动应用过滤器,需要按ENTER键或将焦点移动到另一个单元格来强制更新。

禁用单个列的过滤器行
现在通过将OptionsColumnFilter.AllowAutoFilter属性设置为false来禁用Name列的过滤器行功能。

因此,Name列的自动过滤器行单元格现在被禁用了,但是您仍然可以使用该行根据其他列过滤数据。
更多DevExpress线上公开课、中文教程资讯请上中文网获取
关于慧都科技
慧都是⼀家⾏业数字化解决⽅案公司,专注于软件、⽯油与⼯业领域,以深⼊的业务理解和⾏业经验,帮助企业实现智能化转型与持续竞争优势。
慧都科技是DevExpress的中国区的合作伙伴,DevExpress作为用户界面领域的优秀产品,帮助企业高效构建权限管理、数据可视化(如网格/图表/仪表盘)、跨平台系统(WinForms/ASP.NET/.NET MAUI)及行业定制解决方案,加速开发并强化交互体验。
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果
转载请注明:文章转载自:DevExpress控件中文网 [https://www.devexpresscn.com/]
本文地址:https://www.devexpresscn.com/post/5434.html
相关产品: DevExpress WinForms Subscription, DevExpress Universal Subscription,