apache-flex 更新数据提供程序的数据后保留排序

mfuanj7w  于 2022-10-31  发布在  Apache
关注(0)|答案(1)|浏览(191)

我有一个datagrid,其中dataprovider中的数据每隔30秒自动更改一次。每次更改时,如果我选择通过单击标题对列进行排序,它将恢复到默认排序(在我单击标题之前)。我想知道如何控制排序,以便如果我之前单击了它,它将在接下来的30秒内保持原样。

  1. <mx:DataGrid id="id" width="100%" height="100%">
  2. <mx:columns>
  3. <mx:DataGridColumn dataField="@col1" headerText="Type1" itemRenderer="itemRenderer" />
  4. <mx:DataGridColumn dataField="@col2" headerText="Type2" itemRenderer="itemRenderer" />
  5. </mx:columns>
  6. <mx:dataProvider>
  7. {xmllist_extractedfromAnotherSourceEvery30Seconds}
  8. </mx:dataProvider>
  9. </mx:DataGrid>
q5iwbnjs

q5iwbnjs1#

猜测...排序顺序存储在dataProvider(ArrayCollection)中,当您重新分配新的dataProvider时,它会丢失。
您可以:

  • 使用ArrayCollection更新函数更新dataProvider,而不是重新分配它
  • 如果不可能,则在更改之前从dataProvider获取ISort;然后在加载后将此ISort应用于新的dataProvider(并记住refresh()dataProvider)

相关问题