微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

具有动态数据更新功能的Flex组件

如何解决具有动态数据更新功能的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 举报,一经查实,本站将立刻删除。