发生范围选择时,我可以收听rangeSelectionChanged
事件。清除所有选定范围后,有什么事件可以听吗?
答案 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();
}
}}
{...}
/>