0
我需要將實時數據推送到一個Flex GUI(數據網格),但每當新數據被推送到網格時,它就失去了先前的狀態。具有動態數據更新的Flex組件
例子:
- 如果我滾動到右側,下一次更新滾動回到初始位置,也就是離開
- 如果我選擇任何一行之後,它變得未選中剛過更新。
有沒有辦法維持國家?我正在使用Flex 3。如果有幫助,我可以移動到Flex 4。
我需要將實時數據推送到一個Flex GUI(數據網格),但每當新數據被推送到網格時,它就失去了先前的狀態。具有動態數據更新的Flex組件
例子:
有沒有辦法維持國家?我正在使用Flex 3。如果有幫助,我可以移動到Flex 4。
如何設置數據?你是否用新的對象集合來更改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();
}
請忽略/正確任何錯字..因爲我沒有測試此:))
祝你好運!
謝謝......它在簡單的數據網格中工作。 但它不適用於高級數據網格的情況。我認爲這是因爲分組收集。 – Akhil 2011-06-01 08:53:21
您可以發佈有關如何更新ADG的代碼嗎? – 2011-06-01 10:15:38