ag-grid:有没有办法在清除范围选择时触发事件

ag-grid: is there a way to trigger event when clear range selection

当发生范围选择时,我可以收听 rangeSelectionChanged 事件。当所有选定的范围都被清除时,我可以听到任何事件吗?

如果我理解正确 所选范围被清除 我假设用户随机点击网格中的任何单元格因此只有一个单元格被高亮并且范围被清除。为此,没有单独的事件,因此在这种情况下您必须检查 CellRange 对象。 下面的逻辑你可以在 rangeSelectionChanged 事件

中使用
onRangeSelectionChanged(event) {
...
...

//lets check here if selection is cleared by user or not
var cellRanges = this.gridApi.getCellRanges(); // this gives the cellrange object.
var startRowIndex = cellRanges[0].startRow.rowIndex;
var endRowIndex = cellRanges[0].endRow.rowIndex;
var NumberOfColumns = cellRanges[0].columns.length;

//cellRange.length shows how many different ranges user has selected in Grid

if(startRowIndex === endRowIndex && NumberOfColumns ===1 && cellRanges.length<2)
{
//do your processing here 
}

您可以使用:

  • onSelectionChanged检测用户是否通过点击单元格清除范围选择(单选单元格)
  • onRangeSelectionChanged 通过检查回调中是否有 GridApi.getCellRanges().length === 0 来检测用户是否完全清除范围选择
<AgGridReact
  enableRangeSelection
  onSelectionChanged={(e) => {
    onSingleSelection();
  }}
  onRangeSelectionChanged={(e) => {
    const cellRanges = e.api.getCellRanges();
    const rangeSelectionCount = cellRanges.length;

    if (rangeSelectionCount === 0) {
      onClearSelection();
    }
  }}
  {...}
/>

现场演示