网格上的ExtJS RowEditor

时间:2010-03-31 09:29:39

标签: extjs grid

当我的用户通过RowEditor组合条目编辑网格时,复选框很烦人

1 p Apple 2橙色 3梨

例如,使用上面的组合,用户将选择橙色然后更新 - 网格现在而不是说橙色将显示数字2 - 我希望它在成功编辑时显示橙色。

我的组合代码

     editor : {
       allowBlank     : false,
       displayField   : 'team',
       editable       : false,
       emptyText      : 'Select Team',
       forceSelection : true,
       lazyRender     : true,
       mode           : 'remote',
       name           : 'team',
       store          : storeTeam,
       triggerAction  : 'all',
       valueField     : 'id',
       xtype          : 'combo'
     }

我想我读过你可以将完整的行发送回插入,或者我应该听取网格的更新然后更改字段但是我需要一些指导什么是最好的

干杯

2 个答案:

答案 0 :(得分:1)

尝试以下代码。像使用任何其他ExtJS网格列一样使用此列。

Ext.grid.FixedListColumn = Ext.extend(Ext.grid.Column, {
  constructor: function(cfg){
    cfg.editor = new Ext.form.ComboBox(cfg.editor);
    Ext.grid.ComboBoxColumn.superclass.constructor.call(this, cfg);
    this.renderer = Ext.util.Format.comboRenderer(cfg.editor);
  }
});

Ext.grid.Column.types.fixedlistcolumn = Ext.grid.FixedListColumn;

// Takes in a combobox and returns a renderer that looks up the displayField in
// the store attached to the combo
Ext.util.Format.comboRenderer = function(combo){
    return function(value){
        var record = combo.findRecord(combo.valueField, value);
        return record ? record.get(combo.displayField) : combo.valueNotFoundText;
    }
}

// Use this as the 'columns' parameter when creating your Grid
var grid_columns = [
  {xtype:'fixedlistcolumn',
   store: [[1,'Apple'],[2,'Orange']]},
   ...
];

答案 1 :(得分:0)

我希望这会有所帮助......

您可以将渲染器定义添加到团队列:

以下是GridPanel中简单的true / false值如何表示为Yes / No的示例:

renderer:function(val){
                if(val=="true" || val == true) {
                    return "Yes";
                }
                else{
                    return "No";
                }
            }