Flex数据网格排序不会跨数据提供者更改保留

时间:2009-08-26 20:44:42

标签: flex data-binding datagrid sorting dataprovider

我有一个flex数据网格。它绑定到数组集合。如果用户在X列上排序,它可以正常工作。然后,如果用户导致数组集合发生更改,则datagrid会忘记它是在X列上排序的。

我需要做些什么才能保留此排序首选项,以便新的数组数据按X列排序?

4 个答案:

答案 0 :(得分:3)

我在另一个论坛上发布了这个问题并得到了一个很好的答案。这是:

如果您的数据在ArrayCollections中,您可以将ListCollectionView分配给子AdvancedDataGrid的dataProvider属性,并将ArrayCollection数据分配给ListCollectionView的'list'属性。如果要更改子网格中的数据,请重新分配ListCollectionView的list属性。这样就可以避免直接重新分配子网格的dataProvider,这是导致网格重置的原因。

这是帖子的链接: http://forums.adobe.com/message/2206736#2206736

答案 1 :(得分:1)

真的有帮助,谢谢。但是,重置排序后,请不要忘记Refresh() dataProvider

dataGrid.dataProvider.refresh();

答案 2 :(得分:0)

我有同样的问题,但没有知道为什么会这样,所以做了一些调整

selectedItems=dataGrid.selectedItems;

postionGrid=dataGrid.verticalScrollPosition;

sortPostionGrid=dataGrid.dataProvider.sort;

将它们存储在一个变量中,当数据被更改时,只需将其重新放在网格上,这不是一个好方法,但它对我有用

答案 3 :(得分:0)

这篇文章“Keeping the sort on a datagrid when you change the dataProvider”给出了

更具相关性和效率的解决方案

希望有所帮助