我怎样才能得到所有的ag-grid行?

时间:2018-06-05 09:55:42

标签: angular5 ag-grid

ag-grid提供了一种使用api.getSelectedRows()函数获取所选行的方法。并提供了一种使用api.setRowData([])函数设置所有行的方法。 我正在寻找一些getAllRows()来返回网格中的所有行。我知道有一种方法可以使用api.forEachNode()等循环遍历所有行。 有什么方法可以获得整个行数吗?

5 个答案:

答案 0 :(得分:2)

我不认为有这样的方法,但你可以自己制作:

getAllRows() {
  let rowData = [];
  this.gridApi.forEachNode(node => rowData.push(node.data));
  return rowData;
}

答案 1 :(得分:0)

我想知道同样的事情,但很烦人,您不能简单地获取所有行。在我的情况下,我需要在所有行上翻转一个标志,其中将指示器设置在包含网格的组件之外,因此我执行了以下操作。这在React应用程序的TypeScript中。

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

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

  gridApi!.setRowData(rows);

答案 2 :(得分:0)

Ag-grid没有提供任何方法来做到这一点。您可以在Accessing Data Ag-gridGrid Api这里进行检查。

我来宾的原因是因为您可以通过循环来实现它,就像您之前提到的那样。

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

或者如果您的ag-grid的源通过角度链接,则不需要在网格上循环(假设数据网格没有待处理的更改)

答案 3 :(得分:0)

这是我从网格API获取rowData的方式:

api.getModel().gridOptionsWrapper.gridOptions.rowData

很多方法的返回对象中都包含gridOptionsWrapper,因此您不必使用getModel()

答案 4 :(得分:0)

我认为这是最简单的答案。

let {rowsToDisplay} = params.api.getModel();