Extjs 如何设置焦点?
我有2个网格,每个网格中有一个选定的行。在第二个网格中编辑单元格后,我想将焦点设置为第一个网格 grid2.on('afteredit') { grid1.focus() }) grid2.on('afteredit'){ grid1.focus() }) 不起作用。怎么做?有几件事: 1。事件侦听器语法 如果这能起作用,你会想做这样的事情:Extjs 如何设置焦点?,extjs,Extjs,我有2个网格,每个网格中有一个选定的行。在第二个网格中编辑单元格后,我想将焦点设置为第一个网格 grid2.on('afteredit') { grid1.focus() }) grid2.on('afteredit'){ grid1.focus() }) 不起作用。怎么做?有几件事: 1。事件侦听器语法 如果这能起作用,你会想做这样的事情: grid2.on('afteredit', function(event) { grid1.focus(); }, this);
grid2.on('afteredit', function(event) {
grid1.focus();
}, this);
2。焦点的使用
尽管ExtJS API文档指出.focus()是一个可以在网格组件上调用的有效方法,但值得注意的是,该方法的描述实际上表明:
试着关注这个组件
尽管GridPanels等继承自Component类,但focus()通常用于基于表单的组件,这些组件也继承自Component类。因此,调用focus()并不意味着它将以您期望的方式为每个组件工作
你到底想关注网格的哪一部分?如果您试图关注的网格中有可编辑字段,则可以使用“afteredit”事件触发传递的对象中的某些属性来关注这些字段,默认情况下,该属性包含对网格、记录、字段、值、原始值、行和列索引的引用。RowSelectionModel有一个名为selectRow()的方法将突出显示附加到记录的指定行。假设这就是你所说的专注 也就是说,您的代码看起来像这样 ` ` 差不多吧
grid2.on('afteredit', function(edit_event) {
var id = edit_event.record.get('id');
var grid1_record = grid1.store.getById(id);
grid1.getSelectionModel().selectRow(grid1_record);
}, this);