自定义getCellEditor

时间:2011-02-23 13:04:26

标签: extjs

我在网格中使用自定义CellEditor:

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 ( type == 4 ) {
        return this.editors['checkbox'];
    }
    }
return Ext.grid.ColumnModel.prototype.getCellEditor.call(this, colIndex, rowIndex);
}
},this);

type - 这是来自grid.store的record.get('type')。如何知道这个getCellEditor的类型? (我不想使用全局变量:))

2 个答案:

答案 0 :(得分:1)

您可以使用rowIndex参数,以便访问网格中当前行的“类型”:

grid.store.getAt(rowIndex).data.type

答案 1 :(得分:0)

您需要在字段定义中定义类型,从那里,您可以使用行索引来获取记录。

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);
    }
 }

这是未经测试的,但展示了如何测试记录中给定字段的类型