在 Slickgrid 中,聚合函数结果未按照 slickgrid 数据内联编辑进行修改/更新

问题描述 投票:0回答:1

我正在使用 Angular slick grid 版本 4.3.1 来显示我的数据列表。根据配置,聚合函数计算针对列进行,而数据根据字段进行分组。之后,如果我编辑用于聚合函数的列的数据,数据结果不会根据 modifield 字段值更新。

重现步骤

配置特定字段(性别列)时,配置字段聚合函数(成本字段值之和、持续时间字段值平均值)。 启用“分组依据”并拖动指定字段(性别字段)。 将显示成本和持续时间列的聚合函数结果。 之后,如果我们内联编辑成本字段值,成本列结果的总和不会被修改。

Demo gif用于聚合函数计算

预期行为:在内联编辑成本字段值期间,需要更新聚合函数结果。

请在光滑的网格中提供此问题的解决方案。

软件版本

角度:15.2.9

Angular-Slickgrid:4.3.1

打字稿:5.3.3

操作系统:Windows 11 Pro

节点:18.19.0

NPM:10.2.3

内联编辑成本字段值时,需要更新聚合函数结果。

angular editor aggregation slickgrid inline-editing
1个回答
0
投票

正如我之前留下的评论中所指出的,经过测试,答案是在编辑完成后调用

dataView.refresh()
,以便 DataView 分组具有更新的值并可以更新(刷新)其聚合器总计

您只需要监听

onCellChange
事件并调用 DataView 刷新

<angular-slickgrid gridId="grid19"
                     [dataset]="dataset"
                     [columnDefinitions]="columnDefinitions"
                     [gridOptions]="gridOptions"
                     (onCellChange)="onCellChanged()"
                     (onAngularGridCreated)="angularGridReady($event.detail)">
</angular-slickgrid>

然后是听者

angularGridReady(angularGrid: AngularGridInstance) {
  this.angularGrid = angularGrid;
}

onCellChanged() {
  // when user changes a cell, we need to inform the DataView that the data changed 
  // for the Aggregator to have new value(s) and update its totals
  this.angularGrid.dataView?.refresh();
}

你可以在这个PR中看到这些变化来演示Angular-Slickgrid中的变化,下面是它的现场演示

© www.soinside.com 2019 - 2024. All rights reserved.