我有一个处理程序:onCalendarEditFunc,用于编辑网格中的选定单元格。现在我有这个:
onCalendarEditFunc: function() {
var selection = this.getView().getSelectionModel().getSelection();
requires : [
'Ext.grid.plugin.CellEditing',
'Ext.grid.column.Column'
]
edit = this.editing;
console.log(this.getView().getSelectionModel().getSelection());
edit.cancelEdit();
// this.store.insert(0, rec);
edit.startEditByPosition({
row: this.store.indexOf(selection[0]),
column: 0
});
},
其中row: this.store.indexOf(selection[0]),
正常工作,我可以编辑所选行中的第一个单元格。但我的行有多列,所以我想给column:
一个值,该值是所选单元格的值。
谢谢
Leron
答案 0 :(得分:2)
为了检测用户选择的确切单元格(如果您想编辑按钮功能,使所选单元格像我的情况一样可编辑),您可以执行此操作。这是initComponent函数的开头
initComponent: function(){
this.editing = Ext.create('Ext.grid.plugin.CellEditing');
Ext.apply(this, {
title: 'Календар',
frame: false,
plugins : [this.editing],
store: 'CalendarEvents',
selModel: {
selType: 'cellmodel'
},
这里的重要部分是
selModel: {
selType: 'cellmodel'
},
然后允许您在编辑功能中使用以下语法:
editfunction: function() {
var selection = this.view.getSelectionModel().getCurrentPosition();
requires : [
'Ext.grid.plugin.CellEditing',
'Ext.grid.column.Column',
'Ext.selection.CellModel'
]
edit = this.editing;
//console.log(this.view.getSelectionModel().getCurrentPosition().column);
edit.cancelEdit();
// this.store.insert(0, rec);
edit.startEditByPosition({
row: selection.row,
column: selection.column
});
},
就是这样,现在你得到所选单元格的位置并传递它,这样你就可以从那里开始编辑或者在函数中开始编辑:
edit.startEditByPosition({
row: selection.row,
column: selection.column
});
答案 1 :(得分:1)
尝试这样的事情:
edit.cancelEdit();
edit.startEdit(selection[0] /* this basically your record */, column /* 3 for example */);