С помощью AG Grid предотвратить событие щелчка по строке при щелчке по ячейке?

Я хотел бы остановить распространение событий при всех щелчках по ячейкам, поскольку я использую onRowClicked для выполнения некоторых действий. Когда пользователь нажимает что-то внутри ячейки (например, поле ввода), я не хочу, чтобы запускался щелчок по строке.

Есть предположения?

Для этого я использую Angular 2/4.


person Charlie    schedule 14.12.2017    source источник


Ответы (2)


Ни одно из предыдущих предложений не помогло мне. AG Grid мог изменить поведение API. Даже event.stopPropagation() на onCellClicked не остановил onRowClicked от стрельбы.

В конечном итоге я удалил onRowClicked и обработал все в onCellClicked. onRowClicked не имеет атрибута, в каком столбце сгенерировано событие клика, onCellClicked имеет!

function cellClickedHandler(e) {
  if (e.column.colId === 'col1') {
    // Handle specific cell
  } else {
    // Handle all other cells, similar to rowClicked
  }
}
person Albi    schedule 02.06.2020
comment
e сверху - это тип CellClickedEvent, где colId недоступен из-за того, что он частный. Вместо этого используйте getColId(). - person hastrb; 12.01.2021

  <ag-grid-angular style="width: 100%;   height: 168px;" class="ag-theme-fresh" 
    [rowData]="rowData" [columnDefs]="columnDefs"
    [enableFilter]="true" [enableSorting]="true" 
    [getRowNodeId]="getRowNodeId" [rowSelection]="rowSelection" 
    (selectionChanged)="onSelectionChanged($event)"
    (gridReady)="onGridReady($event)" 
    [suppressRowClickSelection]="true"
    (cellClicked)='onCellClicked($event)'>
  </ag-grid-angular>

Используйте [suppressRowClickSelection]="true", чтобы предотвратить щелчок по строке

person Farida Anjum    schedule 23.02.2018
comment
На самом деле это обходной путь. Что, если мы хотим включить выбор при щелчке по строке, а также иметь событие (rowClicked)? - person Paritosh; 17.10.2018
comment
если это так, тогда добавьте (rowSelected) = onRowClicked ($ event) (rowClicked) = onRowClicked ($ event) в методе if ((event.type == 'rowSelected')) {}, как это, поставьте условие и делать. - person Farida Anjum; 06.12.2018
comment
Это хорошо работает. Вам просто нужно зафиксировать событие onclick, а затем вы можете использовать event.colDef.colId для проверки столбца. Если он соответствует тому, что вы хотите, вы можете выполнить свою логику, включая настройку строки, которую нужно выбрать или щелкнуть. - person n4nite; 11.02.2020