首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >向网格添加新行

向网格添加新行
EN

Stack Overflow用户
提问于 2016-01-27 15:58:24
回答 4查看 8.9K关注 0票数 4

我初始化ag-grid,如下所示:

<ag-grid-ng2 [rowData]="records"></ag-grid-ng2>

将新项添加到记录数组后,ag-grid中的行将保持不更新。我必须打电话给setRowData(记录)。但是这是非常慢的,并且ag-grid会失去它的状态(就像聚焦单元一样)。

rowData中更改数据时,有没有其他方法可以刷新ag-grid中的行。

EN

回答 4

Stack Overflow用户

发布于 2016-01-29 07:48:42

不,别无他法。网格要求rowData是不可变的,这意味着您必须替换数组才能获得rowData属性。与您一样,解决方法是调用api.setRowData()方法,该方法强制网格将rowData视为一组新数据。

票数 4
EN

Stack Overflow用户

发布于 2017-06-27 12:41:08

最近我注意到了一个新的函数this.gridOptions.api.updateRowData(Tranactions)。传递一个包含三个数组的对象:

代码语言:javascript
运行
复制
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。)

票数 1
EN

Stack Overflow用户

发布于 2016-01-29 17:11:07

找到了解决方案。也许我会失去一些功能,也会有一些but,但对我来说,它现在可以工作了。

代码语言:javascript
运行
复制
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();
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35031661

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档