J'ai besoin d'un filtre de recherche rapide, où l'utilisateur peut sélectionner les colonnes recherchées. Je n'ai pas réussi à mettre en œuvre ce comportement. J'ai essayé ceci:
this.columns.forEach(column=>{ if (this.globalSearchSelectedColumns.indexOf(column.field)>-1) column.getQuickFilterText = (params)=> params.value.name; else column.getQuickFilterText = ()=> ''; }); this.grid.api.setColumnDefs(this.columns); this.grid.api.onFilterChanged(); this.grid.api.resetQuickFilter();
3 Réponses :
Afin d'appliquer sélectivement suppose, que dans votre composant de classe, vous avez une méthode QuickFilter CODE> formulaire AG-Grid, vous devez réécrire la propriété
gequickfiltertext code> du
colonne code>, en le définissant sur une fonction qui retourne une chaîne vide comme:
gridcolumnapi code> li>
Coldef CODE> LI>
gequickfiltertext code> propriété li>
ol>
désactiverfiltercol code> Il peut ressembler à ceci: p>
disableFilterCol = () => {
var col = this.gridColumnApi.getColumn("athlete");
var colDef = col.getColDef();
colDef.getQuickFilterText = () => "";
console.log("disable Athlete");
};
Je pense que le problème ici réside dans la définition de la colonne mise à jour defs.
Pouvez-vous essayer ceci -
let newColDef= []; this.columns.forEach(column=>{ if (this.globalSearchSelectedColumns.indexOf(column.field)>-1) column.getQuickFilterText = (params)=> params.value.name; else column.getQuickFilterText = ()=> ''; newColDef.push(column); }); this.grid.api.setColumnDefs(newColDef); this.grid.api.onFilterChanged(); this.grid.api.resetQuickFilter(); this.grid.api.refreshHeader();
Cette solution ne fonctionne pas, je ne voulais pas voter négatif, mais par erreur, j'ai voté comme utile, ce qui n'est pas correct. Le seul moyen de supprimer un vote positif était de voter négatif. Désolé pour ça.
Selon la solution de Nakhodkiin, je change mon code comme celui-ci: et ça marche; P> P>