首页 > 解决方案 > valueGetter 未反映在 rowdata ag-gird 中

问题描述

我正在使用 ag-grid 社区版本进行开发。我遇到了 valuegetter 来动态渲染单元格数据。

但它没有反映在行数据变量中。

下面是我的 columndef

columnDefs = [
    { headerName: 'Student Name', field: 'name' },
    { headerName: 'English', field: 'english' },
    { headerName: 'Maths', field: 'maths' },
    { headerName: 'Science', field: 'science' },
    {
      headerName: 'Total',
      field: 'total',
      valueGetter: params => {
        let totalValue = 0;
        totalValue =
          parseInt(params.data.english) +
          parseInt(params.data.maths) +
          parseInt(params.data.science);
        return totalValue;
      }
    }
  ];

下面是我的行数据

rowData: StudentData[] = [
    { name: 'Rajesh', english: '10', maths: '21', science: '0', total: null }
  ];

我在哪里做总数。

但是当我试图访问我的行数据中的总数时,它并没有反映

onSave(): void {
    console.log(this.rowData[0].total);
  }

控制台正在打印 null 而不是 31

下面是我的 StackBlitz URL。请帮我获取行数据模型中的值获取器值

https://stackblitz.com/edit/angular-ivy-vkppt6?file=src%2Fapp%2Fapp.component.ts

标签: angularag-grid

解决方案


您只是获取(呈现)处理后的数据。

您必须将数据分配给相应列的字段/属性。

所以,ValueGetter补充一下:

params.data.total = totalValue;

工作演示


推荐阅读