I use custom CellEditor in my grid:
getCellEditor: function(colIndex, rowIndex) {
var field = this.getDataIndex(colIndex);
if (field == 'value') {
if ( type == 3 ) {
return this.editors['number'];
} else if ( type == 1 ) {
return this.editors['select'];
} else if ( t开发者_运维问答ype == 4 ) {
return this.editors['checkbox'];
}
}
return Ext.grid.ColumnModel.prototype.getCellEditor.call(this, colIndex, rowIndex);
}
},this);
type - this is record.get('type') from grid.store. How to know type in this getCellEditor ? (I don't want to use global variable :) )
You can use the rowIndex
parameter, so to access the 'type' for the current row in your grid:
grid.store.getAt(rowIndex).data.type
You will have need to have defined the type in the field definition, From there, you can use the row index to get the Record.
var record = store.getAt(rowIndex);
for(var i = 0; i<record.fields.length; i++) {
if(record.fields[i].name == 'Your Field') {
alert(record.fields[i].type);
}
}
This is untested but shows how you can test for the type of a given field in the record
精彩评论