Получите отредактированные столбцы (с данными) при выполнении полного обновления строки с помощью ag-Grid с Angular 6

Я уже реализовал полное обновление строк, но перед обновлением строк мне нужно узнать, какие столбцы были отредактированы и соответствующие данные присутствуют в столбцах. Чтобы выполнить некоторые проверки данных для отображения сообщения об ошибке перед обновлением строки, я использую метод (rowValueChanged)="onRowValueChanged($event)".


person Yatharth Mishra    schedule 28.02.2019    source источник


Ответы (1)


Я считаю, что для этого вам нужно будет прослушивать события rowValueChanged и cellValueChanged и добавить флаг с отредактированным значением

  onRowValueChanged(event) {
    console.log(`Changed Values = ${event.node.changedValues.join(',')}`);
    // do validations
  }

  onCellValueChanged(event) {
    if (event.newValue !== event.oldValue) {

      if (!event.node.changedValues)
      event.node.changedValues = [];

      event.node.changedValues.push(event['column']['colId']);
    }
  }
person Ghanima    schedule 28.02.2019
comment
с использованием ag grid версии 18.0 - person Yatharth Mishra; 01.03.2019
comment
Если вы используете оба события, onCellValueChanged установит его при редактировании поля, а затем вы сможете использовать его в onRowValueChanged. - person Ghanima; 01.03.2019
comment
Большое спасибо за ответ и объяснение логики. Это именно то, что я искал. - person Yatharth Mishra; 01.03.2019
comment
На самом деле я использую раскрывающийся список с фиксированными значениями для столбца, поэтому при нажатии на строку для редактирования строки, имеющей этот столбец (изначально значение равно null), значение раскрывающегося списка также инициализируется первым параметром в раскрывающемся списке для строки, поэтому измененные столбцы также содержат это имя столбца. Но я ничего не редактирую - person Yatharth Mishra; 06.03.2019