我正在使用 Angular slick grid 版本 4.3.1 来显示我的数据列表。根据配置,聚合函数计算针对列进行,而数据根据字段进行分组。之后,如果我编辑用于聚合函数的列的数据,数据结果不会根据 modifield 字段值更新。
重现步骤
配置特定字段(性别列)时,配置字段聚合函数(成本字段值之和、持续时间字段值平均值)。 启用“分组依据”并拖动指定字段(性别字段)。 将显示成本和持续时间列的聚合函数结果。 之后,如果我们内联编辑成本字段值,成本列结果的总和不会被修改。
预期行为:在内联编辑成本字段值期间,需要更新聚合函数结果。
请在光滑的网格中提供此问题的解决方案。
软件版本
角度:15.2.9
Angular-Slickgrid:4.3.1
打字稿:5.3.3
操作系统:Windows 11 Pro
节点:18.19.0
NPM:10.2.3
内联编辑成本字段值时,需要更新聚合函数结果。
正如我之前留下的评论中所指出的,经过测试,答案是在编辑完成后调用
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中的变化,下面是它的现场演示