ag Grid change cell color on Cell Value Change

大城市里の小女人 提交于 2021-02-05 11:31:27

问题


I am trying to change cell color when cell old value != cell new value in a grid.

I've tried:

if (e.oldValue === e.newValue)    {   
    e.colDef.cellStyle = function(e) {return { backgroundColor: 'green' };
}

But when save is hit or data is reloaded, it changes the column color to green.


回答1:


Ag-grid does not have a built in feature to highlight edited cells. you can solve this in 2 ways.

  1. Dynamically updating cell Style -

    onCellValueChanged(params) {
      if (params.oldValue !== params.newValue) {
          var column = params.column.colDef.field;
                params.column.colDef.cellStyle = { 'background-color': 'cyan' };
                params.api.refreshCells({
                    force: true,
                    columns: [column],
                    rowNodes: [params.node]
            });
      }}
    
  2. Using a combination of cellClassRules, an edit flag and onCellValueChanged -

    • Define a css class for edited cell.
      .green-bg {background-color: olivedrab;}

    • Define cellClassRules for the column which applies style based on flag you update on edit. cellClassRules: { 'green-bg': (params) => { return params.data.isEdited} }

    • Then you set the flag in your onCellValueChanged something like this -
onCellValueChanged(params) {
          if (params.oldValue !== params.newValue) {
             params.data.isEdited = true; // set the flag
          }
          params.api.refreshCells(); //causes styles to be reapplied based on cellClassRules
        }


来源:https://stackoverflow.com/questions/62222534/ag-grid-change-cell-color-on-cell-value-change

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!