Как сфокусировать поле со списком внутри панели сетки? - PullRequest
1 голос
/ 15 июля 2011

Я искал высоко и низко и не могу найти это, и все мои методы не работают.

По сути, вот что у меня есть. У меня есть Grid Panel (использующая ExtJS 4), которая содержит много строк. В каждой строке есть столбец, содержащий поле со списком.

Теперь у меня есть кнопка «Добавить», которая при нажатии добавляет новую модель и вставляет ее в магазин. Работает отлично. Однако пользователь должен использовать мышь и щелкнуть поле со списком во вновь вставленной строке, чтобы начать печатать. Наше приложение ориентировано на клавиатуру, а мышь не рекомендуется (это приложение для ввода данных).

Я могу выбрать первую строку с помощью:

grid.view.getSelectionModel().select(newRow);

Однако поле со списком внутри не сфокусировано.

Как я могу решить это?

Спасибо.

EDIT

Я пытался опубликовать свой исходный код здесь на SO, но время истекает, поэтому вот gist моего кода:

https://gist.github.com/1089782

Спасибо

Ответы [ 2 ]

1 голос
/ 22 июля 2011

Я не проверял его на наличие комбинированных списков, но он работал для текстовых полей:

  1. Сначала назначьте идентификатор для плагина celledit:

    plugins: [ Ext.create('Ext.grid.plugin.CellEditing', { clicksToEdit: 1, id: 'my_plugin' }) ]

  2. И затем, если newRow является новой вставленной моделью и столбец с выпадающими списками имеет индекс == 1, вы можете использовать grid.getPlugin('my_plugin').startEditByPosition({row: newRow.index, column: 1});

1 голос
/ 17 июля 2011
  1. Вы должны где-то сохранить ссылку на этот комбинированный список.Например, в записи у вас может быть поле 'combo', и оно будет ссылаться на поле со списком.
  2. После выбора вы должны сделать: record.combo.fosus (); и все.
...