2010-05-04 21 views

Répondre

0

Vous devrez peut-être actualiser Ext.grid.GridView pour afficher le changement de colonne.

grid.getView().refresh(true) // true to refresh HeadersToo 
0

3.x ExtJs ce morceau de code peut aider:

Note: Je l'ai utilisé case à cocher, comme la première colonne. Veuillez supprimer cette ligne si vous n'en avez pas besoin.

var newColModel = new Ext.grid.ColumnModel({ 
    columns: [ 
     grid.getSelectionModel(), 
     { 
      header: 'New column 1' 
     }, { 
      header: 'New column 2' 
     } 
    ], 
    defaults: { 
     sortable: false 
    } 
}); 

grid.store.reader = new Ext.data.JsonReader({ 
    root: 'items', 
    totalProperty: 'count', 
    fields: [ 
     // Please provide new array of fields here 
    ] 
}); 

grid.reconfigure(grid.store, newColModel); 
0

La fonction reconfigure pourrait ne pas fonctionner correctement avec des plugins. Surtout si vous avez quelque chose comme FilterBar.

Si vous ne devez effectuer cette opération qu'une seule fois, en fonction de certains paramètres globaux, vous pouvez utiliser initComponent et modifier votre configuration initiale. Assurez-vous de faire toutes les modifications apportées à la configuration avant appeler this.callParent();

testé avec ExtJS 6.2 (mais devrait également fonctionner pour ExtJS 4 et 5)

initComponent: function() { 
    // less columns for this setting 
    if (!app.Settings.dontUseFruits()) { 
     var newColumns = []; 
     for(var i=0; i<this.columns.items.length; i++) { 
      var column = this.columns.items[i]; 
      // remove (don't add) columns for which `dataIndex` starts with "fruit" 
      if (column.dataIndex.search(/^fruit/) < 0) { 
       newColumns.push(column); 
      } 
     } 
     this.columns.items = newColumns; 
    } 

    this.callParent(); 
0

peut-être essayer

store.add (nouvel enregistrement); store.commitChanges();

ou store.remove() et store.commitChanges()