如何解决具有动态数据更新功能的Flex组件
| 我需要将实时数据推送到Flex GUI(数据网格),但是每次将新数据推送到网格时,它都会丢失其先前的状态。 例: 如果我向右滚动,则在下一次更新后滚动回到默认位置,即向左 如果我选择任何行,则在更新后将其变为未选中状态。 有没有办法维持状态? 我正在使用Flex3。如果有帮助,可以移至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();
}
请忽略/更正任何错字..,因为我没有测试过:))
祝好运!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。