ag-grid provides a way to get selected rows using api.getSelectedRows()
function. And provides a way to set all rows using api.setRowData([])
function.
Ag-grid doesn't provide any method to do that. You can check it here Accessing Data Ag-grid and here Grid Api.
I guest the reason is because you can do it through a loop, as you mentioned before.
let items: Array<rows> = [];
this.gridApi.forEachNode(function(node) {
items.push(node.data);
});
Or if the source of your ag-grid is linked through angular there is no need to loop over the grid (assuming that the data grid has not pending changes)
This is how I get the rowData from the grid API:
api.getModel().gridOptionsWrapper.gridOptions.rowData
Lots of methods include gridOptionsWrapper
in their return object, so you don't necessarily have to use getModel()
.
I was wondering the same thing and found it annoying that you cannot simply get all rows. In my case I needed to flip a flag on all rows, where the indicator is set outside the component containing the grid, so I did the following. This is in TypeScript for a React app.
gridApi!.selectAll();
const rows = gridApi!.getSelectedRows();
rows.forEach(row => {
row.coverageAction = this.props.isIndicatorChecked;
});
gridApi!.setRowData(rows);
I don't think there is such a method but you can make your own:
getAllRows() {
let rowData = [];
this.gridApi.forEachNode(node => rowData.push(node.data));
return rowData;
}