grid.getcolumnModel(). SetHidden (0, true) sera effectué pour le menu de la colonne et non pour le panneau de grille. Dans le menu de la colonne, vous pouvez activer ou désactiver la colonne. Comment ajouter ou supprimer dynamiquement la colonne dans le panneau de grille?comment supprimer ou ajouter une colonne dans le panneau de grille
Répondre
Vous devrez peut-être actualiser Ext.grid.GridView pour afficher le changement de colonne.
grid.getView().refresh(true) // true to refresh HeadersToo
Je pense que c'est ce que vous cherchez http://www.extjs.com/forum/showthread.php?53009-Adding-removing-fields-and-columns
Assurez-vous que vous regardez poste n ° 37 dans le fil ainsi.
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);
Pour ceux qui arrivent à cette question à la recherche d'une solution pour Ext.js 4.2 et avobe.
J'utilise la méthode « reconfigure » pour modifier dynamiquement les colonnes de la grille: http://docs.sencha.com/extjs/4.2.2/#!/api/Ext.grid.Panel-method-reconfigure
Voici un bel exemple: http://marcusschiesser.de/2013/12/21/dynamically-changing-the-structure-of-a-grid-in-extjs-4-2/
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();
peut-être essayer
store.add (nouvel enregistrement); store.commitChanges();
ou store.remove() et store.commitChanges()
c'est la bonne réponse – Sam007
L'idée ici est d'avoir la solution à la question, puis une référence à regarder pour plus de détails ... juste un lien ... vue. – Roberto