Flex: программный выбор какой-либо строки - selectedItem имеет значение null - PullRequest
2 голосов
/ 23 декабря 2009

В моем приложении у меня есть сетка данных, связанная с RemoteObject. DataGrid имеет соответствующую форму, которая содержит детали. когда пользователь нажимает на строку в сетке данных, форма заполняется значения из выбранного элемента DataGrid.

Я хочу программно выбрать строку в моей DataGrid, когда приложение загружается.

Для этого мне нужно вызвать validateNow () и scrollToIndex ()

например.

dg.selectedIndex = i; dg.validateNow ();
dg.scrollToIndex (я);

Я поместил этот код в обработчик создания приложений.

Все это прекрасно работает - желаемая строка выделена и выделена, и выбранный индекс - это я. Проблема в том, что я не могу получить доступ к данным заполнить форму детали. Когда я пытаюсь получить Свойство dg.SelectedItem - имеет значение null.

Как программно выбрать какую-то строку в сетке при загрузке И получить доступ к данным строки?

спасибо

Ответы [ 2 ]

8 голосов
/ 15 января 2010

использование

dg.invalidateList();
dg.callLater(setRows, [1]);

function selRows(indices:Array):void {
  dg.selectedIndices = indices;
  dg.validateNow();
  dg.scrollToRow(indices[0]);
}

В основном, если вы изменяете данные DG и выбираете элемент в том же потоке, ваш выбор будет перезаписан методами ListBase, вы должны будете установить выбор после текущего обновления графического интерфейса, для которого вам нужно использовать метод callLater.

0 голосов
/ 23 декабря 2009

выбранный элемент таблицы данных просто указывает на элемент в dataProvider. Если вы знаете, какой элемент вы хотите выбрать в своей таблице данных, просто используйте этот элемент в ваших исходных данных, чтобы выполнить первоначальное заполнение вашей формы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...