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

У меня есть редактируемая сетка, и я хочу обновить значения, основанные на отредактированной ячейке, и я делаю это в itemEditEndHandler так, что когда они заканчивают редактировать ячейку, я обновляю другие ячейки, которые зависят от нее. единственная проблема в itemEditEndHandler новое значение еще не зарегистрировано. Если я попытаюсь получить значение ячейки, я обнаружу, что она по-прежнему дает мне старое значение, а не новое значение, которое я ввел.

3 ответа

Прослушайте событие collectionChange на dataProvider DataGrid.

ListCollectionView объекты, т.е. объекты ArrayCollection и XMLListCollection, отправляют событие CollectionEvent.COLLECTION_CHANGE всякий раз, когда происходит изменение в коллекции. Проверьте свойство kind отправленного события - если оно CollectionEventKind.UPDATE, это означает, что один или несколько элементов были обновлены. Массив items события будет содержать обновленные элементы.

Если ваша сетка данных использует dataProvider, который является ArrayCollection, вы можете вызвать его метод refresh() в обработчике, вызванном событием change itemEditor, а затем вызвать метод invalidateList() dataGrid.

Используйте gridItemEditorSessionSave

<s:DataGrid gridItemEditorSessionSave="dataGrid_gridItemEditorSessionSaveHandler(event)" >
...
...
...
</s:DataGrid>

и в ActionScript

protected function dataGrid_gridItemEditorSessionSaveHandler(event:GridItemEditorEvent):void
            {
                Alert.show("Edited");
            }
Другие вопросы по тегам