在 ui- 网格中格式化页脚值

Format footer values in ui-grid

如何格式化 ui-grid 中列的聚合值?

根据我的数字,我得到了一些可怕的东西,比如

total: 6370.046074130321

我想

total: 70.05

我都试过了:

footerCellTemplate: '<div class="ui-grid-cell-contents" >{{COL_FIELD | currency}}</div>',

footerCellTemplate: '<div class="ui-grid-cell-contents" >{{grid.getCellValue(row, col) | currency}}</div>',

但其中 none 有效。

您可以使用 number 过滤器来选择您需要的小数位数。

{{'$' + valueToFormat | number:2}}

否则,您可以使用 custom filter 函数自行过滤 text/value。

在您的模块中添加:

.filter('customFilterFunction', function() {
return function(input) {
    var out = "";
    out = '$' + parseFloat(input).toFixed(2);
    return out;
  };
})

在您的 HTML 中添加:

{{valueToFormat | customFilterFunction}}

您尝试过的模板适用于正常的单元格值,但您正在尝试让模板适用于聚合值。

要获取模板内列的聚合值,您可以使用 {{col.getAggregationValue()}} 并添加您的格式选项。

因为你想要两位小数,所以这更像是 {{col.getAggregationValue() | number:2 }}

另请记住,如果您在网格上启用了列过滤器,模板将有所不同。

$templateCache.put('ui-grid/uiGridFooterCell',
"<div class=\"ui-grid-cell-contents\" col-index=\"renderIndex\"><div>{{ col.getAggregationText() + ( col.getAggregationValue() CUSTOM_FILTERS ) }}</div></div>"  );

CUSTOM_FILTERS = footerCellFilter 属性 grid.colDef[0].footerCellFilter = 'number:2'

如果您需要小数点后显示两个值,则在网格选项中使用自定义模板功能

       {
            field: 'ORGINAL_FUNC_AMOUNT',
            displayName: 'CR A/C',
            aggregationType: uiGridConstants.aggregationTypes.sum,
            footerCellTemplate: '<div class="ui-grid-cell-contents" >Total: {{col.getAggregationValue() | number:2 }}</div>'
        }

我使用 ui-grid - v4.9.1 (2020-10-26),我有同样的格式问题... col.getAggregationValue() return正确聚合值,但 col.getAggregationText() 没有 return 标签...

经过一些调试会话后,我在 col.treeAggregation.label 中检索了标签,我的模板也是:

colDef.footerCellTemplate = '<div class="ui-grid-cell-contents cellAlignRight" >{{col.treeAggregation.label}} {{  ( col.getAggregationValue()  | number: 2) }}</div>'