Начать редактирование в определенной ячейке сетки ExtJs 3.4 - PullRequest
3 голосов
/ 25 февраля 2012

В моей сетке я добавил редактор строк как плагин (с new Ext.ux.grid.RowEditor()). Я хочу установить фокус на конкретный столбец в конкретной записи.

Вот что у меня сейчас: editor.startEditing(record);;

Он начинает редактирование и устанавливает фокус на первое поле, но я хочу определить другое поле. В поиске в Интернете я вижу людей, у которых что-то вроде: editor.startEditing(record, column) или editor.startEdit(record, column) первое не работает, а последнее не существует.

Решение может быть основано на плагине 'RowEditing', но так как ExtJs являются новыми для меня, я не понимаю как это сделать.

Любая помощь очень ценится.

Ответы [ 2 ]

4 голосов
/ 03 марта 2012

Прежде чем тратить время на программирование, советую прочитать источники.

От RowEditor: startEditing: function(rowIndex, doFocus). Таким образом, есть второй параметр, но это не показатель. Если вы прочитаете onRowDblClick, вы обнаружите, что они сначала вызывают startEditing, отключая фокусировку, а затем обрабатывают ячейку для фокусировки с doFocus.

Кстати, doFocus зависит от события DOM (когда пользователь щелкнул). Если у вас нет таких событий, вы можете просто получить вдохновение от этой функции: они просто вызывают focus() в редакторе столбцов, полученном из ColumnModel#Column#getEditor().

4 голосов
/ 25 февраля 2012

Я использую сетку с редактором строк в ExtJS 4.0.2, и я программно добавляю строку и начинаю редактировать ее с помощью этого кода:

var editor = grid.getPlugin('myRowEditor');
grid.getSelectionModel().select(lastRowCounter);   //0 based selector.
editor.startEdit(lastRowCounter,1);  //start editing on Second column.
...