2009-09-10 77 views
0

我在Flex中收集和我有一个日期字段排序,所以最新的元素第一次出现在我的视野。搜索集合中的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我不能这样做。

发生在我的另一种选择是搜索之前诉诸集合,但是这将导致我的观点重新呈现在集合刷新事件(因为它绑定到集合)。另外,为了搜索,必须采取措施似乎很愚蠢。

无论如何,在这个任何意见将是巨大的。

感谢

罗布

+0

有一些有趣的东西在这里可以提供解决问题的Tink做,但是这并不理想:http://www.tink.ws/blog/collectionclone/ – robmcm 2009-09-11 09:31:48

回答

0

你可以求助于你的收藏,而无需刷新视图如果你调用disableAutoUpdate的集合()方法,做你的东西,再打回来,然后用enableAutoUpdate设置回() 。或者你不能使用光标,只是做一个阵列与每个步行,并比较你的ID找到你要找的东西