2010-03-31 2 views
0

Когда мои пользователи редактирует сетку с помощью записей комбо RowEditor и флажков раздражаетExtJS RowEditor на сетке

1 Apple 2 Оранжевый 3 Груша

Например, с комбо выше пользователь будет выбрать Orange затем обновить - Теперь сетка вместо того, чтобы говорить оранжевым, отобразит номер 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' 
    } 

Я думаю, что я читал, что вы могли бы послать полную строку назад, чтобы вставить или я должен слушать обновление сетки, а затем изменить поле, но мне нужно некоторое руководство по что лучшие

Приветствие

ответ

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']]}, 
    ... 
]; 
0

Я надеюсь, что это помогает ...

Вы можете добавить определение рендерера в столбец команды:

Ниже приведен пример того, как просто истина/ложь значения представлены как Да/Нет в GridPanel:

renderer:function(val){ 
       if(val=="true" || val == true) { 
        return "Yes"; 
       } 
       else{ 
        return "No"; 
       } 
      } 
Смежные вопросы