商财网-专业的商业信息聚合平台
adtop
您的位置:商财网 > 科技数码

实现表格控件的自定义过滤功能

时间:2017-02-23 14:24   来源: 互联网    作者:肖鸥    阅读量:16372   
实现表格控件的自定义过滤功能

本文介绍了,如何实现表格控件的自定义过滤功能。

实现C1FlexGrid的自定义过滤下拉框

第一步:

检查列头的过滤图标是否被点击。为了达到这个目的,需要在MouseClick事件里使用HitTest方法。

实现表格控件的自定义过滤功能

'CustomFilterMenu' 方法中包含完成的自定义过滤下拉框代码。

第二步:

当检查过过滤图标是否被点击,就该自定义下拉框,这是通过在菜单的ToolScrip里添加按钮实现。

过滤下拉菜单是C1FlexGrid的对象,可以直接获取。因此过滤下拉菜单可以作为窗体继承实现功能。

实现表格控件的自定义过滤功能

第三步:

在获取到FilterEditorForm后,可以通过需求改变它。

作为我们继承实现了排序,我们需要在窗体的Tools次日拍添加两个按钮,排序就可以在表格实现。

效果如图:

实现表格控件的自定义过滤功能

实现C1FlexGrid的自定义过滤下拉框的值

第一步:定义Converter

首先需要自定义Converter,将原本的True/False的值转成有效/无效。

实现表格控件的自定义过滤功能

第二步:自定义CheckBox下拉框模板

定义一个模板,将原本的值转成需求的值。

实现表格控件的自定义过滤功能

第三步:实现自己的FilterEditor

从ColumnFilterEditor接口继承,实现自己的FilterEditor,其中将原本的下拉框部分替换成设计好的Checkbox。

实现表格控件的自定义过滤功能

效果如图:

实现表格控件的自定义过滤功能

实现C1FlexGrid的自定义过滤按钮

ComponentOne FlexGrid使用C1FlexGridFilterSevice允许用户基于值过滤列。这就需要FlexGridFilter dll添加到工程中。FilterEditor有一些条件、值和按钮(应用,取消和清除)默认过滤弹出如下图:

实现表格控件的自定义过滤功能

如上所示,我们需要隐藏或是移除默认过滤的按钮和条件。

通过VisualTreeHelper类很容易的就能实现需求。使用VisualTreeHelper的GetChildrenOfType()方法,可以获取到FilterEditor的按钮,ComboBoxes以及Radiobuttons,TextBloks等等。在这里,我们可以移除“Clear”按钮。

实现表格控件的自定义过滤功能

效果如图:

实现表格控件的自定义过滤功能

快人一步,免费试用

试用ComponentOne,或了解金鸡献瑞ComponentOne 7折迎春活动,请通过以下方式联系我们:

郑重声明:此文内容为本网站转载企业宣传资讯,目的在于传播更多信息,与本站立场无关。仅供读者参考,并请自行核实相关内容。

本站搜索

adr1
adr2

相关文章