使用 updateRowData 后 ag-Grid RowClassRule 未更新

Rad*_*ity 4 javascript ag-grid

我正在尝试按以下方式更新 ag-Grid 行数据:

this.table.api.updateRowData({
    update: [response.data]
})
Run Code Online (Sandbox Code Playgroud)

更新工作正常,单元格获得更新的值。但是,Ag Grid 不会重新评估行的类别。此外,我收到一条错误消息:

ag-Grid:无法找到数据项,因为未找到对象

这是我的 rowClassRule:

rowClassRules: {
    "row-disabled": function(params) {
        if (params.data.status != 1) {
            return true
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我在这里做错了什么以及如何让 ag Grid 也更新该类?我尝试过使用:rowNode.setData()它工作得很好(更新单元格值+类) - 但不幸的是,我无法使用它,因为它没有刷新过滤器。

Pra*_*hat 9

设置新行数据后,由于您正在使用rowClass功能,因此必须使用api.redrawRows()

rowNode.setData()作为一个 api 方法与 ag-grid 更改检测机制紧密相关,并且会自动为您触发 api.refreshCells() 。但如果您手动更新数据集,则需要调用api.redrawRows()样式来更改。

根据文档 -

如果您想从头开始重新创建行,请使用重绘行。当您更改了仅在第一次创建行时使用的属性时,这非常有用,例如:

  • 行是否为 fullWidth。
  • 用于任何单元格的 cellRenderer(因为在创建单元格时指定一次)。
  • 您希望通过回调 getRowStyle() 或 getRowClass() 为行指定不同的样式。

此处示例 -重绘节点