限制 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.
如果本机不支持限制选定的行,是否有我可以触发的事件处理程序来限制额外的选择?有 onRowSelected
和 onSelectionChange
事件,但我不知道要在其中放入什么以拒绝进一步选择。
您可以使用 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.
当 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.
如果本机不支持限制选定的行,是否有我可以触发的事件处理程序来限制额外的选择?有 onRowSelected
和 onSelectionChange
事件,但我不知道要在其中放入什么以拒绝进一步选择。
您可以使用 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.