DevExpress WinForms中文教程:Data Grid - 过滤编辑器

DevExpress WinForms拥有180+组件和UI库,能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForms能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜任!

DevExpress WinForms Grid控件附带了一个内置的Filter Editor(过滤编辑器对话框),允许最终用户使用树形过滤构建器界面或像Visual Studio IntelliSense一样带有提示的文本编辑器来构建任何复杂程度的过滤器标准。在本教程中,您将了解最终用户如何调用此对话框,哪些选项会影响其可用性,以及如何在显示对话框之前从代码中调用它并自定义它。

获取DevExpress WinForms v25.1正式版下载

调用过滤编辑器和创建简单的过滤器标准

要调用Filter Editor(过滤编辑器),右键单击任何列标题,并在上下文菜单中选择Filter Editor...。

默认情况下,Filter EditorFilter Editor(过滤编辑器)将过滤条件显示为树,其中各个节点表示简单的过滤条件。根节点是组合所有条件的逻辑运算符,任何过滤条件都由三部分组成:列名、标准操作符和操作数值。如果未过滤网格的数据,则编辑器将为所单击的列包含一个不完整的过滤条件。

单击数值框,在下拉列表中选择Medium。

单击OK关闭编辑器并应用更改。因此网格只显示优先级设置为Medium的记录,现在您可以使用Filter Panel(过滤面板)中的Edit Filter按钮来调用Filter Editor(过滤编辑器)。

要添加新的过滤条件,请单击根节点旁边的加号按钮(FilterEditor_EU_AddButton),这也可以通过单击逻辑运算符并选择Add Condition来完成。

在可用列列表中选择Name,然后使用Contains比较运算符并在值框中输入'vendor'字符串。单击Apply来过滤数据,而不关闭编辑器。

网格现在显示具有中等优先级的记录,名称中包含'vendor'。

删除过滤条件

现在通过单击FilterEditor_EU_DeleteButton按钮或在逻辑运算符的菜单中选择Clear All来删除所有过滤条件。

从多项目过滤条件中删除项目

用户可以从多项目过滤条件中选择特定的项目(例如,"Is Any Of"、"Is One Of")并删除它们,使用键盘或"Ctrl+Click"选择需要配置的项,按Delete删除项目。

构造复杂的过滤条件

现在可以创建更复杂的过滤条件,要创建一个新的条件组,请单击根逻辑操作符并选择Add Group。

将创建的逻辑运算符更改为OR。

在该组中创建两个新条件,这些条件将选择具有高优先级或状态设置为New的记录。以同样的方式,再创建一个带有两个条件的OR条件组,这些条件将选择"创建日期"介于1月1日和今天之间的记录,或者"固定日期"大于4月1日的记录。

单击OK,使用创建的标准过滤数据,您将在筛选面板中看到整个筛选条件。

更改过滤编辑器样式

现在尝试一个不同的过滤条件编辑器UI,在设计时,访问视图的设置,展开ColumnView.OptionsFilter,并将ColumnViewOptionsFilter.DefaultFilterEditorView属性设置为FilterEditorViewMode.Text

运行应用程序并调用过滤器编辑器,现在您可以直接在嵌入的富文本编辑器中输入过滤字符串。当输入过滤器时,会自动调用操作符和字段名的下拉列表,这很像Visual Studio的智能感知功能。

找到相同的属性并将编辑模式设置为FilterEditorViewMode.VisualAndText,过滤编辑器将在各自的选项卡中显示可视化和文本编辑器。

阻止最终用户调用过滤编辑器

如果您不希望最终用户从列标题菜单中调用对话框,请将ColumnViewOptionsFilter.AllowFilterEditor属性设置为false。

注意,过滤器面板的Edit Filter按钮也变得不可见。

在代码中调用和自定义过滤编辑器

返回到设计时,查看如何在代码中调用和自定义Filter Editor(过滤编辑器)。

在显示Show Filter Editor按钮的Click事件处理程序中,调用视图的ColumnView.ShowFilterEditor方法来可视样式调用过滤编辑器。

C#

cs 复制代码
private void btn_ShowFilterEditor_ItemClick(object sender, ItemClickEventArgs e) {
gridView.OptionsFilter.DefaultFilterEditorView = DevExpress.XtraEditors.FilterEditorViewMode.Visual;
gridView.ShowFilterEditor(null);
}

此外,处理视图的ColumnView.FilterEditorCreated事件,该事件在即将显示过滤器编辑器时引发。在事件处理程序中,使用事件的FilterControlEventArgs.FilterControl参数的FilterControl.AppearanceValueColor属性自定义值color。启用FilterControl.ShowOperandTypeIcon 选项,来允许将一列的值与其他列中的值或预定义常量进行比较。

C#

cs 复制代码
private void gridView_FilterEditorCreated(object sender, DevExpress.XtraGrid.Views.Base.FilterControlEventArgs e) {
e.FilterControl.AppearanceValueColor = Color.Red;
e.FilterControl.ShowOperandTypeIcon = true;
}

运行应用程序并单击Show Filter Editor按钮,在调用的编辑器中,添加一个新条件,然后单击现在显示在删除按钮左侧的操作数类型图标。

单击值框,选择Date and time constants ,并选择This year

将比较运算符更改为小于,添加另一个条件,选择"优先级"为"中等"的记录。请注意,该值是使用事件处理程序中指定的红色绘制的。


更多DevExpress线上公开课、中文教程资讯请上中文网获取

相关推荐
love530love7 分钟前
EPGF 架构下的 Python 环境变量设置建议——Anaconda 路径精简后暴露 python 及工具到环境变量的配置记录 [三]
开发语言·人工智能·windows·python·架构·conda·epgf 架构
卡奥斯开源社区官方7 分钟前
AI设计功能性病毒:从DNA语言模型到精准杀菌实战
人工智能·语言模型·自然语言处理
山石玉人7 分钟前
lora微调大语言模型(qwen1.5-chat)
人工智能·语言模型·自然语言处理
小oo呆14 分钟前
【自然语言处理与大模型】大模型应用开发四个场景
人工智能·自然语言处理
邂逅星河浪漫1 小时前
【Spring AI】Ollama大模型-智能对话实现+项目实战(Spring Boot + Vue)
java·人工智能·spring boot·vue·prompt·agent·ollama
jwybobo20072 小时前
使用Azure OpenAI Realtime模型实现语音助理
人工智能·azure
weixin_446260852 小时前
Perplexica - 开源AI搜索引擎,让搜索更智能
人工智能·搜索引擎·开源
盟接之桥3 小时前
盟接之桥EDI软件:中国制造全球化进程中的连接挑战与路径探索
大数据·网络·人工智能·安全·制造
视觉&物联智能3 小时前
【杂谈】-重构注意力经济:人工智能重塑短视频内容生态
人工智能·ai·重构·aigc·agi·短视频
WeiJingYu.4 小时前
O3.6opencv
人工智能·opencv·计算机视觉