Как запустить метод после редактирования значения ячейки в ag-сетке?

У меня есть этот простой столбец:
 введите описание изображения здесь

Вот его определение:

{
      headerName: "Activité",
      field: "activite",
      editable: true,
       , cellClass: "cell-wrap-text"
      }  

Вот метод, который я хочу запускать каждый раз, когда пользователь вводит новый ввод в этот столбец.

  public UpdateActValue() {
      this.data.sendActToBia(this.params.data.activite);
      }  

Вот мои вопросы:
1 / Есть ли какой-либо "собственный" способ ag-grid для запуска определенного метода после редактирования значения ячейки из столбца?
2 / Должен ли я просто определить настраиваемое средство визуализации ячеек и проделать там всю необходимую работу?
Спасибо!


person Ahmed Ghrib    schedule 08.05.2019    source источник


Ответы (2)


Вы можете использовать привязку события cellValueChanged для обнаружения изменений в значении ячейки.

В своем component.html вы можете просто привязать метод onCellValueChanged() к событию cellValueChanged.

<ag-grid-angular 
.
.
(gridReady)="onGridReady($event)"
(cellValueChanged)="onCellValueChanged($event)"
>

А в вашем component.ts вы определите метод onCellValueChanged(), который будет запускаться каждый раз, когда изменяется какое-либо значение ячейки.

onCellValueChanged(event) {
  // handle the rest here
}

Дополнительную информацию о редактировании ячеек сетки и обнаружении изменений можно найти здесь .

person wentjun    schedule 08.05.2019
comment
Спасибо, я только что опубликовал полный ответ. Точно так же, как ваш, но с небольшой деталью определения того, какой столбец был затронут изменением. Спасибо! - person Ahmed Ghrib; 08.05.2019
comment
Кстати, у вас есть идеи, как я могу определить, в какой строке произошло изменение? Так же, как я обнаружил, в каком столбце? - person Ahmed Ghrib; 08.05.2019
comment
@AhmedGhrib Да, вы также можете использовать cellValueChanged для этой цели. По тому же методу вы можете определить индекс измененной строки, выполнив event.rowIndex. - person wentjun; 08.05.2019
comment
Я нашел простой способ: params.node.id с тем же прослушивателем событий. Еще раз спасибо - person Ahmed Ghrib; 08.05.2019

Я только что нашел простой способ сделать это. Я надеюсь, что это помогает.

В grid.component.html:

Добавьте это в определение сетки:

  (cellValueChanged)="onCellValueChanged($event)"

В grid.component.ts: Определите метод:

onCellValueChanged(params) {
    const colId = params.column.getId();
    if (colId === "activite") {
      this.data.sendActToBia(params.data.activite);
}
  }
person Ahmed Ghrib    schedule 08.05.2019