2010-03-31 3 views
0

Quand mes utilisateurs édite la grille via les entrées combo RowEditor et cases à cocher sont ennuyeuxExtJS RowEditor sur la grille

1 Pomme 2 Orange 3 poires

Par exemple, avec le combo ci-dessus l'utilisateur sélectionnera d'Orange puis mettre à jour - La Grille maintenant au lieu de dire orange affichera le numéro 2 - Je voudrais qu'il apparaisse orange quand une édition réussie a été faite.

Code

pour mon combo

 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' 
    } 

Je crois avoir lu que vous pouvez envoyer la ligne complète afin d 'insérer ou je devrais écouter la mise à jour de la grille, puis changer le terrain, mais j'ai besoin des conseils sur la quel est le meilleur

Vive

Répondre

1

Essayez le code ci-dessous. Utilisez cette colonne comme vous le feriez pour n'importe quelle autre colonne de la grille 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

J'espère que cette aide ...

Vous pouvez ajouter la définition de votre colonne générateur de l'équipe:

Ci-dessous est par exemple de la façon dont les valeurs simples vrai/faux sont représentés comme Oui/Non dans la GridPanel:

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