J'ai une application de réaction et tout semble fonctionner correctement. Je veux ajouter une fonctionnalité supplémentaire avec le filtrage bien que je sois actuellement bloqué.ag-grid: pré-réglage d'un filtre (par défaut) pour la grille
Quelqu'un peut-il fournir des conseils sur la façon de prérégler le filtre
en utilisant l'exemple méthode de filtrage que j'ai vu in this article J'ai essayé de mettre en œuvre un exemple de base bien qu'il ne fonctionne pas
this.state = {
gridOptions: {
.
.
.
onGridReady: this.initialFilter
},
initialFilter(){
tmp = {Currency: {type: 'contains', filter: 'usd'}};
this.state.gridOptions.api.setFilterModel(tmp);
this.state.gridOptions.api.onFilterChanged();
}
ce que je pensais de l'exécution de c'est la colonne de devises serait filtré pour connaître l'état contenant le texte de filtre usd
========================== ====================== modifier: après avoir essayé
initialFilter(){
let hi=this.state.gridOptions.api.getFilterInstance('Currency');
hi.setType('contains');
hi.setFilter('usd');
hi.onFilterChanged();
}
Rien ne se passe + pas d'erreur
mais quand j'ajouter le code dans une méthode existante pour changer les filtres (quand j'ajouter manuellement un filtre):
onAfterFilterChanged() {
let hi=this.state.gridOptions.api.getFilterInstance('Currency');
hi.setType('contains');
hi.setFilter('usd');
hi.onFilterChanged();
this.setState({
rowsToDisplay: this.state.gridOptions.api.filterManager.rowModel.rowsToDisplay.length,
filtering: this.props.report.views.filters
});
this.props.filterme(this.state.filtering);
}
puis i obtenir l'erreur ci-dessous
Full error: Uncaught RangeError: Maximum call stack size exceeded
at RowRenderer.workOutFirstAndLastRowsToRender (dme-ui-buidle.js:13181)
at RowRenderer.drawVirtualRows (dme-ui-buidle.js:13178)
at RowRenderer.refreshAllVirtualRows (dme-ui-buidle.js:13138)
at RowRenderer.refreshView (dme-ui-buidle.js:13034)
at RowRenderer.onModelUpdated (dme-ui-buidle.js:12979)
at RowRenderer.onPageLoaded (dme-ui-buidle.js:12931)
at dme-ui-buidle.js:2684
at Array.forEach (<anonymous>)
at EventService.dispatchEvent (dme-ui-buidle.js:2683)
at PaginationProxy.onModelUpdated (dme-ui-buidle.js:27264)
J'ai essayé de faire cela (seule différence est que j'ai utilisé « cette .state.gridOptions ....... "pour mon composant de filtre mais je continue à recevoir une erreur: Uncaught RangeError: Taille maximum de la pile d'appels Je ne sais pas quelle est la cause Si je mets le code dans sa propre méthode comme je l'ai fait dans le post original, rien ne se passe (et aucune erreur). Si je mets le code dans une méthode existante onAfterFilterChanged() alors je vois le filtre appliquer mais je reçois cette erreur et il m'empêche d'appliquer manuellement d'autres filtres :( – user3120554
Serait-ce que je dois utiliser le code que vous avez spécifié, mais dans une certaine méthode? – user3120554
mis à jour le message original avec mes résultats après avoir essayé cela – user3120554