界面控件DevExpress WinForms中文教程:Data Grid - 搜索/查找面板
DevExpress WinForms拥有180+组件和UI库,能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForms能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜任!
DevExpress WinForms的网格控件包含一个Outlook样式的搜索面板UI,允许最终用户通过搜索所有列或特定列中的文本来轻松过滤视图。本教程将演示搜索字符串语法,然后指导您完成影响面板操作的关键设置。最后,您将学习如何在代码中调用或隐藏面板。
获取DevExpress WinForms v25.1正式版下载
DevExpress技术交流群11:749942875 欢迎一起进群讨论
搜索面板基础知识
要调用搜索面板,按快捷键CTRL+F。当最终用户在搜索框中输入时,网格会自动在所有列中搜索该文本并过滤视图。

搜索语法
注意:
搜索语法取决于以下属性:
- WindowsFormsSettings.FindPanelParserKind 和 GridView.OptionsFind.ParserKind - 指定结果记录是否应该包含查询中的所有关键字或其中任何一个。
- WindowsFormsSettings.FindPanelCondition 和 GridView.OptionsFind.Condition - 指定结果记录中的单词应该如何匹配查询中的关键字(以,包含等开始)。
本教程假设生成的记录应包含查询中的任何关键字,并且记录中的单词应以关键字开头。
如果您输入两个单词,例如“new vendor”,网格将它们视为单独的条件,并选择包含“new”或“vendor”的记录。

要查找同时包含这两个单词的记录,请在第二个单词前键入“+”。类似地,您可以键入“-”来排除包含特定单词的记录。

您可以组合不同的操作符。使用“+”和“-”选择同时包含“new”和“vendor”的记录,不包括包含“history”的记录。

要搜索包含空格字符的字符串,需要将该字符串用引号括起来。

若要针对特定列进行搜索,请输入该列名称的首字母加上冒号字符。现在,网格在Status列中显示包含“new”的记录。

如果添加另一个特定于列的条件,网格将使用AND逻辑运算符将它们连接起来,并显示与它们都匹配的记录。当您将特定于列的条件与应用于所有列的条件连接起来时,也会发生同样的情况:结果将包含满足这两个条件的记录。

单击Clear显示所有记录。
搜索面板选项
默认情况下,通过关闭按钮隐藏Search Panel(搜索面板)时,搜索字符串将被清除,并显示所有记录。关闭应用程序,展开View的GridView.OptionsFind属性并禁用ColumnViewOptionsFind.ClearFindOnClose选项。

运行应用程序来查看结果,现在当隐藏搜索面板时,过滤条件不会被删除。
打开显示视图设置的属性网格。展开View的GridView.OptionsFind属性并禁用ColumnViewOptionsFind.AllowFindPanel选项,这将防止通过按CTRL+F快捷键调用搜索面板。将ColumnViewOptionsFind.AlwaysVisible属性设置为true,来始终显示没有关闭按钮的搜索面板,从而防止最终用户隐藏面板。

默认情况下,ColumnViewOptionsFind.FindFilterColumns属性设置为“*”,这就是网格搜索所有可见列的原因,将状态分配给此属性。网格将选择仅在指定列中包含搜索字符串的记录,还可以指定用分号分隔的两个或多个列。

ColumnViewOptionsFind.FindDelay属性指定停止输入之后和应用筛选器之前的时间间隔。
对于大型数据集,将ColumnViewOptionsFind.FindMode设置为FindMode.FindClick来防止不必要的更新是很有用的。现在当您在搜索面板中输入文本时,什么也不会发生,直到您单击查找Find或按ENTER键来强制更新。

您还可以禁用ColumnViewOptionsFind.HighlightFindResults选项来删除搜索结果高亮显示,还可以通过设置ColumnViewOptionsFind.FindNullPrompt属性来更改搜索框中的提示文本,ColumnViewOptionsFind.ShowClearButton和ColumnViewOptionsFind.ShowFindButton选项允许您隐藏按钮。

显示和隐藏代码中的搜索面板
切换到设计时在代码中实现搜索面板可见性控制,在按钮的Click事件处理程序中,使用视图的ColumnView.IsFindPanelVisible属性检查搜索面板的可见性状态。如果面板现在是可见的,通过调用ColumnView.HideFindPanel方法隐藏它;否则,使用ColumnView.ShowFindPanel方法来显示它。
C#
private void btn_ShowHideFindPanel_ItemClick(object sender, ItemClickEventArgs e) { if (gridView.IsFindPanelVisible) gridView.HideFindPanel(); else gridView.ShowFindPanel(); }
运行应用程序。要更改Search Panel的可见性状态,请单击该按钮。
更多DevExpress线上公开课、中文教程资讯请上中文网获取
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/915512.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!