#angular8 #ag-grid #ag-grid-angular
#angular8 #ag-grid #ag-grid-angular
Вопрос:
Я использую ag-grid вместе с angular 8.
с помощью приведенного ниже кода я могу отображать данные в сетке, где первые три столбца доступны для редактирования, а в четвертом столбце у меня есть кнопка обновления.
теперь нажмите кнопку обновления. Я должен отправить старое значение всех трех редактируемых значений столбца, а также новое значение, чтобы я мог обновить то же самое в серверной части.
но я не уверен, как получить старое значение, а также новое значение из отредактированной сетки.
this.service.getData().subscribe((data) => {
this.columnheaders = (Object.keys(data[0]));
this.rows = data;
for (var x in this.columnheaders)
this.columns[x] = { headerName: this.columnheaders[x], field: this.columnheaders[x], editable: true };
this.columns[3] = {
headerName: 'Update', cellRenderer: function (params) {
var eCell = document.createElement('span');
eCell.innerHTML = '<button>Update</button>';
return eCell;
}
};
});
Ответ №1:
вы можете прослушать приведенные ниже события и сохранить старые значения в некоторой переменной / объекте, которые вы можете использовать при нажатии кнопки.
onCellEditingStarted: function(event) {
var oldCellValue = event.value; // save this value by attaching it to button or some variable
console.log('cellEditingStarted');
},
onCellEditingStopped: function(event) {
var editedCellValue = event.value;
console.log('cellEditingStopped');
},