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