概述
数据切片器在电子商务网站上很常见 - 它们可以帮助用户快速过滤所选商品,并且所有过滤选项都可以在一个地方使用,通常包含核心控件类型为:清单,范围栏和单选按钮等。在ComponentOne For WinForm 最新版 2018V3 中,我们推出了数据过滤器的测试版,可以附加到任何数据感知控件中。
滤镜布局由手风琴面板组成,它为过滤条件提供了扩展/折叠选项:
以下就是ComponentOne For WinForm DataFilter控件的一些用法。
使用DataFilter过滤仪表板中的多个控件
仪表板是DataFilters的最佳实践,因为屏幕上的所有信息都可以在一个地方以交互方式进行过滤,从而使用户可以通过选择从数据中获取更多信息。 此外,每个视觉所触及之处都可以连接到DataFilter以进一步向下钻取。
当产品目录涉及大量有关产品的信息时,数据切片器将会派上用场:
将DataFilter控件集成到FlexGrid中
在处理Grid或TreeView等数据控件时,切片器可以是一个有用的交互式过滤工具。 当用户需要在多个列上进行过滤时,可以更轻松地将它们全部设置在一个位置:
WinForm DataFilter的体系结构
DataFilter使用C1CollectionView进行过滤。 C1CollectionView 功能类似于 .NET CollectionView,它支持对集合进行过滤、分组和排序。
在系统内部,当数据过滤器根据用户选择创建过滤器表达式时,表达式将传递给C1CollectionView。 C1CollectionView创建数据源的视图,并根据此表达式应用过滤器。
WinForm DataFilter的用户界面
数据过滤器控件使用的基本布局是“抽屉效果”。 即,每个过滤器项目一个接一个地堆叠,其中每个过滤器项目都可以折叠和展开。
在DataFilter中自动选择过滤器类型
该控件为不同类型的数据生成不同的过滤器控件:
- 对于布尔数据字段,DataFilter控件生成一个BoolFilter,由复选框表示。
- 对于数字数据字段,控件将生成RangeFilter,它提供范围编辑器和范围滑块以过滤指定范围内的值。
- 对于文本/字符串数据字段,控件生成ChecklistFilter,允许用户从清单中选择和过滤项目。
- 对于DateTime数据字段,控件生成DateRangeFilter,它提供范围编辑器和范围滑块以过滤指定日期范围内的值。
异步过滤
异步过滤最常见的使用场景是处理大数据时避免阻塞UI。 DataFilter控件中有一个名为ApplyFilterAsync的内置方法,就可以实现异步过滤。
保存并加载过滤器
DataFilter控件支持通过C1DataFilter类的SaveFilterExpression和LoadFilterExpression方法进行序列化。SaveFilterExpression方法将当前过滤器表达式从C1.Win.DataFilter.C1DataFilter.Filters集合保存到XML文件。 LoadFilterExpression方法从XML文件加载保存的过滤器表达式。
设置WinForm DataFilter控件的样式
C1DataFilter类提供了一个Styles属性,可用于自定义DataFilter控件及其元素的外观。 在这里,您可以看到如何编辑按钮、过滤器、复选框、编辑器、标题、过滤器标题和滚动条:
将 ComponentOne 主题应用于DataFilter
DataFilter支持ComponentOne For WinForm中包含的所有主题,包括最近添加的Material和Office 2016主题。 使用C1ThemeController即可在应用程序范围内应用主题:
DataFilter在许多应用程序中非常有用。请下载试用最新版 ComponentOne Enterprise .NET控件集,体验产品并分享您的建议和反馈,以帮助我们改进产品体验,并添加在2019年v1即将发布的 ComponentOne 新版本上!
ComponentOne Enterprise | 下载试用
ComponentOne是一款专注于企业应用高性能开发的 .NET 全功能控件套包,包含300余种控件,支持7大平台,涵盖7大功能模块。较于市面上其他同类产品,ComponentOne更加轻盈,功能更加强大,20多年的开发经验,将为您的应用系统带来更为安全的使用体验。纯中文操作界面,一对一技术支持,厂商级的技术服务,共同造就了这款国际顶级控件套包。
您对ComponentOne 产品的任何技术问题,都有技术支持工程师提供1对1专业解答,点击此处即可发帖提问>> 技术支持论坛
来源:oschina
链接:https://my.oschina.net/u/1789896/blog/2990312