【发布时间】:2017-02-25 19:23:10
【问题描述】:
我有一个 Angular 2 项目 (2.0.0-RC.4) 并正在运行 ag-grid (5.0.1)。
我正在尝试使用 refreshCells() 方法来刷新网格中的特定单元格,而不需要重置行。
我在 Ag-Grid 文档中看到了一个示例,它展示了如何使用 refreshCells()
https://www.ag-grid.com/javascript-grid-refresh/
我试图创建一个符合我需要的副本,但它不起作用。
网格拒绝刷新单元格。
ChangeValue() {
var updatedNodes = [];
this.gridOptions.api.forEachNode((rowNode: RowNode) => {
let data = rowNode;
if(data.data.timestamp == "t") {
data.data.asset *= 2;
updatedNodes.push(rowNode);
}
});
console.log(updatedNodes);
this.gridOptions.api.refreshRows(updatedNodes);
this.gridOptions.api.refreshView();
}
我上面展示的方法链接到一个按钮,所以一旦我点击按钮它应该增加 rowNode 内与时间戳“t”匹配的资产。
更多细节,下面的钩子和构造函数用于将数据样本添加到网格并创建columnDefs。
ngAfterViewChecked() {
let dataSample: any[] = [
{
timestamp: "t",
asset: 100
}
]
this.gridOptions.api.setRowData(dataSample);
// Hide ag-grid overlay
this.gridOptions.api.hideOverlay();
}
constructor() {
this.columnDefs = [
{
headerName: 'Timestamp',
field: 'timestamp'
}, {
headerName: 'Asset',
field: 'asset'
}
]
}
问题是,一旦我单击按钮,ChangeValue() 方法就会运行,但由于某种原因没有更新单元格值。
【问题讨论】:
标签: angular typescript ag-grid