我初始化ag-grid,如下所示:
<ag-grid-ng2 [rowData]="records"></ag-grid-ng2>
将新项添加到记录数组后,ag-grid中的行将保持不更新。我必须打电话给setRowData(记录)。但是这是非常慢的,并且ag-grid会失去它的状态(就像聚焦单元一样)。
在rowData中更改数据时,有没有其他方法可以刷新ag-grid中的行。
发布于 2016-01-29 07:48:42
不,别无他法。网格要求rowData是不可变的,这意味着您必须替换数组才能获得rowData属性。与您一样,解决方法是调用api.setRowData()方法,该方法强制网格将rowData视为一组新数据。
发布于 2017-06-27 12:41:08
最近我注意到了一个新的函数this.gridOptions.api.updateRowData(Tranactions)。传递一个包含三个数组的对象:
var transactions = {
add: [/*array of records you want to add.*/]
remove: [/*array of records you want to remove.*/]
update: [/*array of records you want to update.*/]
}
this.gridOptions.api.updateRowData(tranactions);参考:https://www.ag-grid.com/javascript-grid-data-update/?framework=javascript。(由于某些原因,在该页面上,他们将函数称为updateData,但这样的函数并不存在。相反,它被称为updateRowData。)
发布于 2016-01-29 17:11:07
找到了解决方案。也许我会失去一些功能,也会有一些but,但对我来说,它现在可以工作了。
AddRecord(data) {
this.records.push(data);
var id = this.records.length-1;
var node = {childIndex:id, data: this.records[id], firstChild: false, id:id, lastChild: false};
this.gridOptions.api.grid.inMemoryRowController.rowsAfterMap.push(node);
this.gridOptions.api.rowRenderer.refreshView(id);
this.gridOptions.api.hideOverlay();
}https://stackoverflow.com/questions/35031661
复制相似问题