Как завершить / остановить редактирование элемента в Flex DataGrid - PullRequest
2 голосов
/ 05 января 2011

Обычно вы обновляете данные, привязанные к элементу сетки данных, следующим образом:

    protected function onGridEditEnd(event:DataGridEvent):void
    {
        if (grid.dataProvider != null && event != null)
        {
            var editor:Object = event.currentTarget.itemEditorInstance;

            if (event.columnIndex == getColumnIndex(columnA) {
                    collection[event.rowIndex].name = TextInput(editor).text;
            }
        }
    }

Событие itemEditEnd отправляется сразу после того, как пользователь заканчивает редактирование.Итак, что если я хочу

  1. Завершить редактирование (из другого метода или обработчика, отличного от обработчика itemEditEnd)
  2. Одновременно обновить значение связанного элемента данных.

"while" элемент редактируется пользователем.

Например;как мне вызвать это из keyDown обработчика событий?

Примечание: Вы можете вызвать onGridEditEnd(null), который завершит редактирование, но не обновит данные.onGridEditEnd(new DataGridEvent(DataGridEvent.ITEM_EDIT_END, ...)) будет работать, но вам также нужно хранить и передавать значения, такие как columnIndex, rowIndex, dataField и т. Д., Что не кажется лучшим и простым способом.

спасибо ...

1 Ответ

1 голос
/ 22 ноября 2012

попробуйте установить для свойства editable значение false (затем вы можете снова включить его).Или вы можете попробовать установить фокусировку (FocusManager.focus = null) в другом месте.Таким образом, он все еще будет редактируемым, но пользователю придется щелкнуть его снова.

...