我需要将实时数据推送到Flex GUI(数据网格),但每次将新数据推送到网格时,它都会失去以前的状态。
示例:
答案 0 :(得分:0)
您如何设置数据?您是否使用新的对象集合更改DataGrid dataProvider?因为,根据你所描述的行为,可能就是这种情况。
解决方案是改变DG的dataProvider。每次,您应该只更新分配为数据提供者的集合中的值。
例如,
[Bindable]
var myDataCollection:ArrayCollection = new ArrayCollection([0,1,2,3,4]);
// Handle creation complete.
private function onCreationComplete():void
{
initDG();
}
// Init DG data provider just once.
private function initDG(data:ArraCollection):void
{
myDG.dataProvider = data;
}
private function updateDG_Method_1(row:int, value:int):void
{
var data:ArrayCollection = myDG.dataProvider as ArrayCollection;
if(data && data.length > row)
{
data[row] = value;
}
// We can force refresh if not not done automatically.
myDG.invalidateList();
myDG.validateNow();
}
private function updateDG_Method_2(row:int, value:int):void
{
if(myDataCollection && myDataCollection.length > row)
{
myDataCollection[row] = value;
}
// We can force refresh if not not done automatically.
myDG.invalidateList();
myDG.validateNow();
}
请忽略/更正任何拼写错误..因为我没有测试过这个:))
祝你好运!