ag-grid:在清除范围选择时是否有触发事件的方法

时间:2020-10-06 03:09:25

标签: ag-grid ag-grid-react

发生范围选择时,我可以收听rangeSelectionChanged事件。清除所有选定范围后,有什么事件可以听吗?

2 个答案:

答案 0 :(得分:1)

如果我通过选择的范围被正确理解了,我假设用户随机单击网格中的任何单元格,因此只有一个单元格被高亮并清除了范围。为此,没有单独的事件,因此在这种情况下,您必须检查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 
}

答案 1 :(得分:0)

您可以使用:

  • 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();
    }
  }}
  {...}
/>

实时演示

Edit 64218810/ag-grid-is-there-a-way-to-trigger-event-when-clear-range-selection