#apache-flex #flex3
#apache-flex #flex3
Вопрос:
Я пытаюсь создать редактируемую сетку данных для вставки новой строки, когда пользователь нажимает TAB в последнем столбце последней строки.
Моя сетка:
<mx:DataGrid id="myGrid"
dataProvider="{initDG}" editable="true"
itemFocusOut="onItemFocusOut(event)">
<mx:columns>
<mx:DataGridColumn dataField="Company" editable="false"/>
<mx:DataGridColumn dataField="Contact"/>
</mx:columns>
</mx:DataGrid>
Мое событие onItemFocusOut:
protected function onItemFocusOut(e: DataGridEvent):void{
if((e.rowIndex == (initDG.length - 1)) amp;amp;
(e.columnIndex == (myGrid.columnCount -1))){
initDG.addItem({Company: 'New one', Contact: ''});
}
}
Это работает нормально, то есть вставляет новую строку. Проблема в том, что flex фокусируется на следующем компоненте, а мне нужно, чтобы он фокусировался на недавно созданной строке.
Возможно ли это?
Спасибо
Комментарии:
1. У вас была возможность попробовать ответ, который я опубликовал? Если это поможет решить вашу проблему, вы можете повысить ее, нажав на стрелку ^ и пометить как принятый ответ, нажав на значок галочки рядом с моим ответом.
Ответ №1:
На вашем месте я бы этого не делал. Tab — это очень хорошо известное сочетание клавиш для перехода к следующей ячейке или следующей строке, если находится в последней ячейке. Удаление этой функциональности затруднит стандартную функциональность.
С учетом сказанного, если вы хотите это сделать, вы можете либо попытаться «перехватить» событие keyboard и выполнить «stopImmediatePropogation ()» для события, либо вы можете расширить DataGrid, чтобы добавить свою собственную функциональность для вкладки.