从搜索结果中删除所选项目

时间:2012-02-06 16:34:25

标签: flex search datagrid advanceddatagrid arraycollection

用例:

  1. 最终用户搜索某些内容,并使用Result对象返回ArrayCollection。它显示在数据网格中。
  2. 最终用户选择一些搜索结果并将其“移动”到另一个数据网格以供日后使用。
  3. 最终用户执行另一次搜索。
  4. 问题: 某些搜索结果可能包含用户之前已选择并移动到第二个数据网格的内容。我想从第二个搜索结果中删除它们。

    如何在Flex代码中快速有效地执行此操作?

2 个答案:

答案 0 :(得分:1)

两个数组集合上的disableAutoUpdate()

循环遍历第一个,如果它存在于第一个中,则将第二个项目中的每个项目移除(或根据您真正想要的内容调整算法 - 不确定)

最后的enableAutoUpdate()。

如果没有调度任何事件,则可以快速循环访问数组。

第二个选项,你也可以遍历由数组组成的廉价副本,即arraycollection.source.concat(),如果所有项目属于同一类型,甚至可以是向量。这将提供最大速度,但从长远来看,您可能会丢失,因为您需要在最后转换回数组集合。

所以我会坚持第一个选择。

答案 1 :(得分:0)

目前,我已经实现了一个哈希集合(extends ArrayCollection)。哈希只允许使用唯一值,因此最终,即使UI可能会让用户感到困惑,它仍然可以实现我的目的。可能会在以后实施上述方法。 :)

相关问题