在Flex中搜索集合

时间:2009-09-10 17:29:05

标签: flex actionscript-3

我在Flex中有一个集合,我按日期字段对其进行了排序,因此最新的元素首先显示在我的视图中。

为了做到这一点,我应用了一个类似的排序字段:

var articleSort:Sort = new Sort();
articleSort.fields = [ new SortField('published', false, true), new SortField('id', true, true)];
articles.sort = articleSort;
articles.refresh();

现在我希望能够根据id在该集合中使用游标findFirst()。但是,为了做到这一点,我还必须在findFirst()方法中传递已发布的日期。这是一个真正的痛苦,因为我当时没有公布的日期,(或者它的成本很高)。

articleCoursor.findFirst({ published: modelLocator.articles.getArticleById(event.newArticleId).published, id: event.newArticleId });

正如您所看到的,我必须在我的应用程序中从modelLocator获取它,并且基本上查找该项目...

理想情况下,我想通过一个通配符来查找FindFirst()函数中的日期,因为id是我在搜索时唯一关心的事情。然而,似乎Flex我不能那样做。

我遇到的另一个选择是在搜索之前求助该集合,但这会导致我的视​​图在集合刷新事件上重新呈现(因为它绑定到集合)。此外,为了搜索而不得不采取行动似乎相当愚蠢。

无论如何,对此的任何建议都会很棒。

由于

罗布

1 个答案:

答案 0 :(得分:0)

如果你在集合上调用disableAutoUpdate()方法,你可以在不刷新视图的情况下使用你的集合,做你的东西,取回它然后用enableAutoUpdate()重新设置它。或者你不能使用光标,只是为每个光标做一个数组漫步,并比较你的id来找到你要找的东西