Flex DataGrid可防止自动应用过滤器

时间:2011-01-04 00:10:48

标签: flex datagrid filter

使用包含3列数据网格的翻译实用程序来处理我正在处理的事情:翻译代码,参考文本和目标文本。

DataGrid的dataProvider属性绑定到ArrayCollection实例。用户可以编辑网格,并且在成功编辑时,使用setItemAt()方法更新基础集合。该集合还具有过滤功能,可以更轻松地查找某些文本。

当用户点击“应用过滤器”按钮时,过滤器功能会更新。这很好用。我遇到的问题是,一旦底层集合项以不符合过滤器的方式更改,就会隐藏行。该行立即隐藏,这不是非常用户友好。仅当按下“应用过滤器”按钮时,行才应隐藏(或显示)。

我正在寻找一种方法来实现这一目标。

2 个答案:

答案 0 :(得分:0)

我假设您的意思是DataGrid的 dataProvider 绑定到ArrayCollection实例?

无论如何,如果你想过滤DataGrid的dataProvider,那么将从DataGrid中删除行。您可以删除过滤器以将其重新添加。有些东西,在概念上是这样的:

collection.filterFunction = null;
collection.refresh();

如果您使用dataProvider作为多个组件的源,则可以通过为每个组件使用不同的ListCollectionView来保持过滤分离,但具有相同的源。像这样:

component1.dataProvider = ListCollectionView(mySource);
component1.dataProvider = ListCollectionView(mySource);

现在将过滤器应用于一个dataProvider不会影响另一个 如果这没有帮助,您需要扩展您遇到的问题并提供示例代码。

答案 1 :(得分:0)

在询问并环顾四周后,我确定没有真正的方法可以做到这一点。然而,我确实解决了我的问题,通过自己进行过滤并仅保留“主键”列表。然后我使用该列表来过滤集合。

结果是当记录被更改时,行不会突然消失,这就是我想要的。