我想在 ag-grid 中动态更改行的样式。如果行已被用户编辑,我想要实现的是更改我的 ag-grid 行的背景颜色。
cellValueChanged(event) {
//Add it only if the old value has changed
if (event.oldValue != event.newValue) {
// This will replace with latest edited value if it has been edited already
this.edittedRows[event.rowIndex.toString()] = event.data;
}
}
Run Code Online (Sandbox Code Playgroud)
我通过监听cellValueChanged事件来跟踪编辑的行。我需要在这里更改行样式。
我查看了 ag-grid 文档,并找到了如何添加行样式、行类和行类规则,但是当用户对其进行了更改时,我找不到动态地向行添加样式的方法。
通过使用redrawRows我能够实现这一目标。
首先我rowClassRules为我的网格选项添加如下
private initGrid() {
this.gridOptions.rowClassRules = {
'modified' : this.isEditedRow()
};
}
private isEditedRow() {
return (params) => {
return params.data.edited;
}
}
Run Code Online (Sandbox Code Playgroud)
modified是我的 css 类,它具有编辑行的所有样式。
然后在我的行数据中,我添加了一个新属性edited。并更改cellValueChanged如下,
cellValueChanged(event) {
//Add it only if the old value has changed
if (event.oldValue != event.newValue) {
// This will replace with latest edited value if it has been edited already
// Setting edited flag to change the background
event.data.edited = true;
this.edittedRows[event.rowIndex.toString()] = event.data;
let row = this.gridApi.getDisplayedRowAtIndex(event.rowIndex);
this.gridApi.redrawRows({ rowNodes: [row] });
}
}
Run Code Online (Sandbox Code Playgroud)
在此处查找 redrawRows 的文档。
| 归档时间: |
|
| 查看次数: |
11085 次 |
| 最近记录: |