2010-05-04 12 views

risposta

0

Potrebbe essere necessario aggiornare Ext.grid.GridView affinché la modifica della colonna venga visualizzata.

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

In ExtJs 3.x questo pezzo di codice può aiutare:

Nota: Ho usato casella di controllo, come la prima colonna. Si prega di rimuovere quella linea se non ne hai bisogno.

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 funzione reconfigure potrebbe non funzionare bene con i plugin. Soprattutto se hai qualcosa come FilterBar.

Se è necessario farlo una sola volta, in base ad alcune impostazioni globali che utilizzano è possibile utilizzare initComponent e modificare la configurazione iniziale. Accertarsi di effettuare tutte le modifiche al config prima chiamare this.callParent();

testato con ExtJS 6.2 (ma dovrebbe funzionare anche per ExtJS 4 e 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

magari provare

store.add (nuovo record); store.commitChanges();

o store.remove() e store.commitChanges()

Problemi correlati