2009-09-10 78 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找到你要找的東西