How can I get all the rows of ag-grid?

前端 未结 4 1414
名媛妹妹
名媛妹妹 2021-02-19 09:57

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.

相关标签:
4条回答
  • 2021-02-19 10:37

    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)

    0 讨论(0)
  • 2021-02-19 10:45

    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().

    0 讨论(0)
  • 2021-02-19 10:47

    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);
    
    0 讨论(0)
  • 2021-02-19 10:58

    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;
    }
    
    0 讨论(0)
提交回复
热议问题