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