我通过收听文本字段的id
来更改网格中change
列的值:
oTextfieldName.on( 'change', function( oField, strValue ) {
oStore.getAt( 0 ).setId( strValue );
}
但是,如果调用setId()
,则会删除该行0
的选择。我的应用依赖于选定的行来保持选中状态。
如何在保持编辑/更改该ID列的同时保持选定的行?
编辑:
使用store.sync()
时,它会被选中。
但是,我的商店搞砸了:
Uncaught TypeError: Object function () {
this.destroy = Ext.emptyFn;
} has no method 'indexOf' ext-dev.js:1253
答案 0 :(得分:2)
你能重新选择一行吗?
oTextfieldName.on( 'change', function( oField, strValue ) {
oStore.getAt( 0 ).setId( strValue );
yourGrid.getSelectionModel().select(0);
}
你也可以这样做来抑制选择事件的触发。
var suppressEvent = true;
yourGrid.getSelectionModel().select(rowIndex, null, suppressEvent);
查看SelectionModel select method
的文档这是一个你可以玩的简单fiddle。如果单击"测试"按钮它将选择索引1处的行。
答案 1 :(得分:1)
由于sync()
导致了这个错误,我现在使用那种糟糕的方式:
oSelectionModel.deselect( nIndex, true );
oSelectionModel.select( nIndex, true );
更改后,我取消选择(幸运地看不见),然后选择。至少它有效。