web-dev-qa-db-fra.com

Comment puis-je obtenir toutes les lignes de l'ag-grid?

ag-grid fournit un moyen d'obtenir les lignes sélectionnées à l'aide de la fonction api.getSelectedRows(). Et fournit un moyen de définir toutes les lignes à l'aide de la fonction api.setRowData([]). Je cherche quelque chose getAllRows() pour retourner toutes les lignes de la grille. Je sais qu'il existe un moyen de parcourir toutes les lignes en utilisant api.forEachNode() etc. Existe-t-il un moyen d'obtenir le tableau entier de lignes?

6
Sandeep Kumar

Je ne pense pas qu'il existe une telle méthode mais vous pouvez créer la vôtre:

getAllRows() {
  let rowData = [];
  this.gridApi.forEachNode(node => rowData.Push(node.data));
  return rowData;
}
6
Michael Karén

Ag-grid ne fournit aucune méthode pour le faire. Vous pouvez le vérifier ici Accès aux données Ag-grid et ici Grid Api .

J'invite la raison en est que vous pouvez le faire en boucle, comme vous l'avez mentionné précédemment.

let items: Array<rows> = [];
this.gridApi.forEachNode(function(node) { 
    items.Push(node.data);
});

Ou si la source de votre ag-grid est liée via angular il n'est pas nécessaire de faire une boucle sur la grille (en supposant que la grille de données n'a pas de modifications en attente))

0
Quethzel

Je me demandais la même chose et j'ai trouvé ennuyeux que vous ne puissiez pas simplement obtenir toutes les lignes. Dans mon cas, je devais retourner un drapeau sur toutes les lignes, où l'indicateur est placé en dehors du composant contenant la grille, j'ai donc fait ce qui suit. Il s'agit de TypeScript pour une application React.

  gridApi!.selectAll();
  const rows = gridApi!.getSelectedRows();

  rows.forEach(row => {
    row.coverageAction = this.props.isIndicatorChecked;
  });

  gridApi!.setRowData(rows);
0
David Spenard