限制 ag-grid-react 中的可选行

Limit selectable rows in ag-grid-react

rowSelection:multiple 时,我可以限制 ag-grid 中可选择的行数吗?

选定的行被提交到后端 API,该后端超载超过特定大小。我的目标是在任何给定时间将所选行的数量限制为 25。

Row Selection docs don't mention a technique for limiting selected rows. The closest I can find is the ability to ignore filtered rows.

如果本机不支持限制选定的行,是否有我可以触发的事件处理程序来限制额外的选择?有 onRowSelectedonSelectionChange 事件,但我不知道要在其中放入什么以拒绝进一步选择。

您可以使用 onSelectionChanged 回调来查看是否选择了太多行,如果是,取消选择任何行。

onSelectionChanged: params => {
    const selectedRows = params.api.getSelectedNodes();
    let selectedRowsCount = selectedRows.length;

    if (selectedRowsCount > 3)
    {
        while (selectedRowsCount > 3)
        {
            params.api.deselectNode(selectedRows[selectedRowsCount - 1])
            selectedRowsCount--;
        }
    }
}

上述函数将在做出选择后继续取消选择行,直到您只选择了 3 行(对于您的情况,显然将其更改为 25)。

Demo.