更新数据提供者的数据后保持我的排序

keep my sort after updating the dataprovider's data

我有一个数据网格,其中数据提供程序中的数据每 30 秒自动更改一次。每次出现时,如果我选择通过单击 header 对列进行排序,它将恢复为默认排序(在我单击 header 之前)。我想知道如何控制排序,以便如果我之前点击过它,它会在接下来的 30 秒内保持排序。

<mx:DataGrid id="id" width="100%" height="100%">
                        <mx:columns>
                            <mx:DataGridColumn dataField="@col1" headerText="Type1" itemRenderer="itemRenderer" />
                            <mx:DataGridColumn dataField="@col2" headerText="Type2" itemRenderer="itemRenderer" />
                        </mx:columns>
                        <mx:dataProvider>
                            {xmllist_extractedfromAnotherSourceEvery30Seconds}
                        </mx:dataProvider>
</mx:DataGrid>

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

您可以:

  • 使用 ArrayCollection 更新函数更新 dataProvider, 而不是重新分配它

  • 如果不可能,get the ISort 从 dataProvider 改变它之前;然后将此 ISort 应用到新的 dataProvider 之后 加载(并记住刷新()dataProvider)