如何获取ag-Grid中过滤的行数?
How to get the number of filtered rows in ag-Grid?
我有一个带过滤选项的ag-Grid。
如何在不使用 forEachNodeAfterFilter
回调的情况下获取过滤的行数?
我只想在有筛选行的情况下启用按钮,我不想每次都在后台执行foreach循环。
gridOptions.api.getModel().rootNode.childrenAfterFilter.length
你应该看看 rootNode
下还有什么可用的,有一些数组可能对你有用
您可能正在寻找的是:
gridOptions.api.getDisplayedRowCount()
过滤后的实际行数就是显示的行数
使用onFilterChanged()
访问过滤后的行,或过滤+选择的行。传递给 onFilterChanged()
的事件可以像这样使用(Typescript React 中的示例)
(如果您需要筛选的数量,只需使用 ev.api.rowModel.rowsToDisplay.length
)
onFilterChanged = ev => {
if (ev?.api?.rowModel?.rowsToDisplay) {
this.setState({ selectedRows: ev?.api?.rowModel?.rowsToDisplay.filter(node => node.isSelected()) });
}
};
onFilterChanged(event) {
console.log(gridOptions.api.getDisplayedRowCount());
}
在控制台中,计数应该是过滤后的行数。
我们可以通过声明 AgGridReact 的一部分然后使用 gridRef 访问 api
gridRef.current.gridOptions.api.getDisplayedRowCount()
<AgGridReact
ref={gridRef}
columnDefs={columnDefs}
rowData={rowData}
headerHeight={35}
rowHeight={35}
defaultColDef={defaultColDef}
onGridReady={onGridReady}
onFilterChanged={()=> setRow(gridRef.current.gridOptions.api.getDisplayedRowCount())}
></AgGridReact>
我有一个带过滤选项的ag-Grid。
如何在不使用 forEachNodeAfterFilter
回调的情况下获取过滤的行数?
我只想在有筛选行的情况下启用按钮,我不想每次都在后台执行foreach循环。
gridOptions.api.getModel().rootNode.childrenAfterFilter.length
你应该看看 rootNode
下还有什么可用的,有一些数组可能对你有用
您可能正在寻找的是:
gridOptions.api.getDisplayedRowCount()
过滤后的实际行数就是显示的行数
使用onFilterChanged()
访问过滤后的行,或过滤+选择的行。传递给 onFilterChanged()
的事件可以像这样使用(Typescript React 中的示例)
(如果您需要筛选的数量,只需使用 ev.api.rowModel.rowsToDisplay.length
)
onFilterChanged = ev => {
if (ev?.api?.rowModel?.rowsToDisplay) {
this.setState({ selectedRows: ev?.api?.rowModel?.rowsToDisplay.filter(node => node.isSelected()) });
}
};
onFilterChanged(event) {
console.log(gridOptions.api.getDisplayedRowCount());
}
在控制台中,计数应该是过滤后的行数。
我们可以通过声明 AgGridReact 的一部分然后使用 gridRef 访问 api
gridRef.current.gridOptions.api.getDisplayedRowCount()
<AgGridReact
ref={gridRef}
columnDefs={columnDefs}
rowData={rowData}
headerHeight={35}
rowHeight={35}
defaultColDef={defaultColDef}
onGridReady={onGridReady}
onFilterChanged={()=> setRow(gridRef.current.gridOptions.api.getDisplayedRowCount())}
></AgGridReact>