如何将组合框集中在网格面板中?

时间:2011-07-15 14:07:18

标签: combobox extjs4 gridpanel

我搜索了高低,找不到这个,我的所有方法都不起作用。

基本上,这就是我所拥有的。我有一个包含许多行的网格面板(使用ExtJS 4)。每行都有一个包含组合框的列。

现在,我有一个“添加”按钮,单击该按钮时,会添加一个新模型并将其插入到商店中。效果很好。但是,用户必须使用鼠标并单击新插入行内的组合框才能开始输入。我们的应用程序主要关注键盘,不鼓励使用鼠标(作为数据输入应用程序)。

我可以用:

选择第一行
grid.view.getSelectionModel().select(newRow);

但是,里面的组合框没有聚焦。

我该如何解决这个问题?

感谢。

修改

我试图在这里发布我的源代码,但它会保持超时,所以这里是我的代码的gist

https://gist.github.com/1089782

由于

2 个答案:

答案 0 :(得分:1)

  1. 您必须在某处保存对该组合框的引用。例如,在记录中,您可能有字段'组合'它将引用组合框。
  2. 选择之后你必须这样做: record.combo.fosus(); 就是这样。

答案 1 :(得分:1)

我没有检查它是否用于组合框,但它适用于文本字段:

  1. 首先将id分配给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});