Что касается использования ag-grid api.refreshCells()
, я не думаю, что это приведет к тому, что сетка будет обновлять значения строк, поскольку предполагаемое поведение этого метода будет влиять только на ячейки, которые в данный момент отображаются, как уже упоминалось.в документации .
Вы можете использовать следующие способы, которые позволят вам обновить узлы строк , и в этом есть несколько подходов.
1) При односторонней привязке данных к привязке свойства ввода [rowData]
.Это будет работать для таких структур, как Angular и React.Вы можете сделать это, привязав свой флажок к событию change
.Затем мы создаем поверхностную копию ваших данных, а затем фильтруем / присваиваем значения ваших строк в соответствии с выбором флажка.Я сделал короткую демонстрацию здесь .
<input type="checkbox" (change)="toggleCheckbox($event)"/>
.
.
ngOnInit() {
this.dataCopy = [...this.rowData];
}
toggleCheckbox(event){
if (event.target.checked) {
this.rowData = this.dataCopy;
} else {
this.rowData = this.dataCopy.filter(obj => obj.result === 'yes');
}
}
2) Использование api.setRowData(newData)
.
3) Использование api.updateRowData(transaction)
.Использование этого метода предпочтительнее, если вы хотите сохранить предыдущее состояние сетки.