ПРОСТОЕ РЕШЕНИЕ: Используйте ВВОД для перемещения по сетке.
КОМПЛЕКСНОЕ РЕШЕНИЕ: Используйте комбинацию списков событий, а также блокировку / разблокировку других столбцов.
В файле MXML вы можете отредактировать DataGridColumn (или сделать это с кодом), чтобы выполнить настройку.
<mx:DataGridColumn ... id='col1' editable='false' ... />
Хотя я знаю, что вы сказали, что это не работает, вы можете, когда пользователь выбирает столбец, блокирует ВСЕ ДРУГИЕ КОЛОННЫ и делает их недоступными для редактирования (через code + DataGridColumn с id).В результате все события вкладок переходят на «один шаг вниз».Однако убедитесь, что вы перехватили выходящее событие редактирования, когда все изменения отменены.«Разблокировать» все остальные столбцы.В качестве подтверждения концепции попробуйте создать таблицу только с 1 редактируемыми столбцами
Использовать список событий, чтобы перехватить начало и конец изменений (следовательно, игнорирует его / и т.д.)
//...
datagrid.addEventListner( DataGridEvent.ITEM_EDIT_END, editEvent );
function editEvent( e.DataGridEvent ):void {
if(e.reason == DataGridEventReason.CANCELLED) {
e.preventDefault();
}
if(e.dataField == 'collumn name i dun want to edit') {
e.preventDefault();
}
//...
//CODE TO LOCK / UNLOCK EDIT IN OTHER COLLUMNS
//...
//you may want to add an ignore, if both before / after values are the same
//If you really need that code : i can dig it up (just let me know)
}
Таким образомВы можете просто перейти вниз по сетке, введя клавишу ВВОД.(и игнорировать изменения, когда они не нужны).И поймать событие, необходимое для блокировки других сеток.