gpt4 book ai didi

行内每行的 Angularjs UI 网格总计

转载 作者:行者123 更新时间:2023-12-02 01:38:46 25 4
gpt4 key购买 nike

{{ HelloWorld }}

我正在尝试访问 angular-ui-grid 中同一行中其他列的值。我有两个相关的问题。

  1. 如何将同一行中多个列的值相加以获得总计?
  2. 如何使用行索引将其作为参数传递并删除当前行?

enter image description here

如您在上图中所见,我要查找的总计仅与整数值相关,与初始字符串无关。
此外,带有 X 的按钮在单击时应删除该行。这些行动态地包含在网格中。

我已经完成了 UI Grid Tutorial但是这些例子没有说明如何完成我的任何一个问题。

我的页脚工作正常。它被配置为在整个行集中按列给出总数:

enter image description here

这是我目前发现的一些代码:

var removeTemplate = '<button type="button" class="grid-remove btn btn-default btn-sm"><span class="glyphicon glyphicon-remove" aria-hidden="true" ng-click="removeRow($event, row.entity)"></span></button>';

$scope.gridAccountableHours = {
enableCellEditOnFocus: true,
showColumnFooter: true
};

$scope.gridAccountableHours.columnDefs = [
{ name: "contractCode", displayName: ""},
{ name: "hours1", displayName: "1", type: "number" },
{ name: "hours2", displayName: "2", type: "number", aggregationType: uiGridConstants.aggregationTypes.sum },
{ name: "hours3", displayName: "3", type: "number", aggregationType: uiGridConstants.aggregationTypes.sum },
{ name: "hours4", displayName: "4", type: "number", aggregationType: uiGridConstants.aggregationTypes.sum },
{ name: "hours5", displayName: "5", type: "number", aggregationType: uiGridConstants.aggregationTypes.sum },
{ name: "hours6", displayName: "6", type: "number", aggregationType: uiGridConstants.aggregationTypes.sum },
{ name: "hours7", displayName: "7", type: "number", aggregationType: uiGridConstants.aggregationTypes.sum },
{ name: "hours8", displayName: "8", type: "number", aggregationType: uiGridConstants.aggregationTypes.sum },
{ name: "hours9", displayName: "9", type: "number", aggregationType: uiGridConstants.aggregationTypes.sum },
{ name: "hours10", displayName: "10", type: "number", aggregationType: uiGridConstants.aggregationTypes.sum },
{ name: "hours11", displayName: "11", type: "number", aggregationType: uiGridConstants.aggregationTypes.sum },
{ name: "hours12", displayName: "12", type: "number", aggregationType: uiGridConstants.aggregationTypes.sum },
{ name: "hours13", displayName: "13", type: "number", aggregationType: uiGridConstants.aggregationTypes.sum },
{ name: "hours14", displayName: "14", type: "number", aggregationType: uiGridConstants.aggregationTypes.sum },
{ name: "hours15", displayName: "15", type: "number", aggregationType: uiGridConstants.aggregationTypes.sum },
{ name: "total", displayName: "Total" },
{ name: "remove", displayName: "", cellTemplate: removeTemplate }
];

$scope.removeRow = function ($event, entity) {
$event.stopPropagation();
$scope.gridAccountableHours.data.splice($scope.gridAccountableHours.data.indexOf(entity), 1);
};

非常感谢您的宝贵时间。

最佳答案

您可以使用 gridRow 上的函数对整个网格进行总计。

$scope.gridAccountableHours.forEach(function(rowEntity) {
rowEntity.total = function() {
var total = 0;
for( var 1 = 1; i++; i<=15 ){
total += this['hours'+i];
}
};
});

您的 total 列 def 应该自动绑定(bind)到这个 total 函数。引用http://ui-grid.info/docs/#/tutorial/106_binding

对于删除按钮,您缺少 appScope,请参阅 http://ui-grid.info/docs/#/tutorial/305_appScope

您的模板 ng-click 应该是:

ng-click="grid.appScope.removeRow($event, row.entity)"

关于行内每行的 Angularjs UI 网格总计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29595586/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com