Apache flex 具有动态数据更新的Flex组件

Apache flex 具有动态数据更新的Flex组件,apache-flex,dynamic,datagrid,Apache Flex,Dynamic,Datagrid,我需要将实时数据推送到GUI(数据网格),但每次将新数据推送到网格时,它都会失去以前的状态 例如: 如果我向右滚动,在下一次更新后,滚动会回到默认位置,即向左 如果我选择了任何一行,它将在更新后立即取消选择 有办法维持这个国家吗 我正在使用。如果有帮助,我可以转到。如何设置数据?是否使用新的对象集合更改DataGrid数据提供程序?因为,从你描述的行为来看,情况可能就是这样 解决方案是改变DG的数据提供者。每次,您应该只更新指定为数据提供程序的集合中的值 比如说, [Bindable] var

我需要将实时数据推送到GUI(数据网格),但每次将新数据推送到网格时,它都会失去以前的状态

例如:

  • 如果我向右滚动,在下一次更新后,滚动会回到默认位置,即向左
  • 如果我选择了任何一行,它将在更新后立即取消选择
  • 有办法维持这个国家吗


    我正在使用。如果有帮助,我可以转到。

    如何设置数据?是否使用新的对象集合更改DataGrid数据提供程序?因为,从你描述的行为来看,情况可能就是这样

    解决方案是改变DG的数据提供者。每次,您应该只更新指定为数据提供程序的集合中的值

    比如说,

    [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();
    }
    
    请忽略/更正任何打字错误。。因为我没有测试这个:))


    祝你好运

    谢谢…它在简单的数据网格中工作。但在高级数据网格的情况下,它不起作用。我认为这是因为分组收集。