更新ArrayCollection的部分内容

时间:2010-06-23 10:35:59

标签: flex arraycollection

我有一个ArrayCollection,包含一组值对象。此ArrayCollection填充DataGrid。我通过对服务器的HTTPService调用将数据加载到ArrayCollection中。一旦第一次服务器调用,我就开始重复调用服务器,以确保我有数据网格中显示的最新数据(金融价格)。 当我得到一个新的更新时,网格中的所有数据都会重新加载,这会导致数据闪烁。

当我从服务器返回一组新数据时,如何只更新datagrid的某些列?

斯蒂芬

1 个答案:

答案 0 :(得分:0)

您必须更新单个元素,而不是替换DataGrid的dataProvider。基本上,循环遍历新数据和旧数据;检查类似的元素,如果数据更新,则替换该VO。

这应该触发ArrayCollection的collectionChanged事件,该事件应该刷新DataGrid中相应单元格的itemRenderer。

但是,我希望这比简单地替换dataProvider更低效。从理论上讲,这应该会减少闪烁,因为您没有更新所有内容,只需要更新需要更新的元素。