Компоненты Flex с динамическим обновлением данных - PullRequest
0 голосов
/ 01 июня 2011

Мне нужно отправить данные в реальном времени в Flex GUI (сетка данных), но каждый раз, когда новые данные передаются в сетку, он теряет свое предыдущее состояние.

Пример:

  1. если я прокручиваю вправо, после следующего обновления свитки возвращаются в положение по умолчанию, то есть влево
  2. , если я выбираюлюбая строка становится невыбранной сразу после обновления.

Есть ли способ сохранить состояние?

Я использую Flex 3 .Я могу перейти на Flex 4 , если это поможет.

1 Ответ

0 голосов
/ 01 июня 2011

Как вы устанавливаете данные? Вы меняете DataGrid dataProvider с новой коллекцией объектов? Потому что из описанного вами поведения это может быть так.

Решением было бы вместо этого изменить dataProvider 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();
}

Пожалуйста, игнорируйте / исправьте любую опечатку .., так как я не проверял это:))

Удачи!

...