AG-grid Decimal Precision 基于数据的值

AG-grid Decimal Precision based on the values of the data

我在网格中有一些十进制值列,我希望在其中具有基于小数值的可变精度。具体来说,如果值 > 9.5,小数点精度应为 0,如果数字在 0.5 和 9.5 之间,则精度应为 1,否则为 2。 目前,我在这样的列定义中定义精度:

"columns": [
    {
        "name": "exposure",
        "type": "DECIMAL",
        "title": "Exposure",
        "precision": 2,
        "width": 77
    },
    {
        "name": "total_risk",
        "type": "DECIMAL",
        "title": "Total Risk",
        "agg_name": "Total Risk",
        "precision": 0,
        "width": 78
    }]

ag grid 是否提供这样的功能。我在官方文档中没有看到任何内容

您可以通过 valueFormattercolumnDef

中处理显示值
columnDefs = [
  {
    headerName: "Sample data",
    field: "sampleNumber",
    valueFormatter: numberFormatter,
    width: 200
  }
];
...
numberFormatter(params){
    // params.data - full row data
    // params.value - cell value
    // here you can handle how certain cell data would be displayed on the grid
    return Number(params.value.toFixed(params.data.samplePrecision))
}

这是一个有效的 plnkr sample

Official docs 对于 Value Setters & Value Parsers

这是另一个应该使用 Angular 8:

的例子
columnDefs = [
    {
        field: 'charge',
        headerName: 'Charge',
        valueFormatter: this.currencyFormatter,
        precision: 3
    }
]

currencyFormatter(params: any) {
  return params.value.toFixed(params.colDef.precision);
}