q406157290 发表于 2016-6-15 14:24:53

C1FlexGrid 如何获取所有的Filter列

C1FlexGrid 如何获取当前grid上所有filter的列

Alice 发表于 2016-6-15 17:50:14

谢谢您的反馈。
不太理解“获取filter的列”?grid的过滤是针对行进行过滤的。

q406157290 发表于 2016-6-16 08:50:29

Alice 发表于 2016-6-15 17:50
谢谢您的反馈。
不太理解“获取filter的列”?grid的过滤是针对行进行过滤的。


Alice 发表于 2016-6-16 10:10:21

q406157290 发表于 2016-6-16 08:50

根据你的描述,我理解您的操作和需求如下:
运行时执行过滤操作,然后希望通过代码获取是哪列执行了过滤。

可以使用C1FlexGridFilterService.GetFlexGridFilter方法,然后通过Editor.Filter.Column.ColumnName直接获取列。
随机安装示例参考:
\Documents\ComponentOne Samples\WPF\C1.WPF.FlexGrid\CS\ColumnFilter
代码参考:

var f = C1FlexGridFilterService.GetFlexGridFilter(_flex);
            Console.WriteLine( f.Editor.Filter.Column.ColumnName);

q406157290 发表于 2016-6-16 14:15:32

Alice 发表于 2016-6-16 10:10
根据你的描述,我理解您的操作和需求如下:
运行时执行过滤操作,然后希望通过代码获取是哪列执行了过滤 ...

首先谢谢您,
如果Filter了多列,您提供的方法不能拿到多列的ColumnName,只能拿到最后一个筛选的列的列名,我想在想拿到所有筛选过的列的列名

q406157290 发表于 2016-6-16 14:15:35

Alice 发表于 2016-6-16 10:10
根据你的描述,我理解您的操作和需求如下:
运行时执行过滤操作,然后希望通过代码获取是哪列执行了过滤 ...

首先谢谢您,
如果Filter了多列,您提供的方法不能拿到多列的ColumnName,只能拿到最后一个筛选的列的列名,我想在想拿到所有筛选过的列的列名

Alice 发表于 2016-6-16 17:54:02

q406157290 发表于 2016-6-16 14:15
首先谢谢您,
如果Filter了多列,您提供的方法不能拿到多列的ColumnName,只能拿到最后一个筛选的列的列 ...

都是通过C1FlexGridFilterService.GetFlexGridFilter获取的。
FilterDefinition保存的,这个可以被C1FlexGridFilterService解析。
一种方法就是自己解析这个XML string,然后获取Filter的多列。
第二种就是调用FilterApplied事件监听,当有列发生过滤的时候,就把这个列记录下来,自己保存有哪些列被过滤。

q406157290 发表于 2016-6-17 08:47:41

Alice 发表于 2016-6-16 17:54
都是通过C1FlexGridFilterService.GetFlexGridFilter获取的。
FilterDefinition保存的,这个可以被C1Fle ...

:loap1:

q406157290 发表于 2016-6-17 08:47:44

Alice 发表于 2016-6-16 17:54
都是通过C1FlexGridFilterService.GetFlexGridFilter获取的。
FilterDefinition保存的,这个可以被C1Fle ...

:loap1:

Alice 发表于 2016-6-17 11:43:13

q406157290 发表于 2016-6-17 08:47


谢谢反馈
页: [1]
查看完整版本: C1FlexGrid 如何获取所有的Filter列