DataTables 行分组小计

DataTables Row Grouping Subtotals

当我的领域有 space 例如。名字姓氏,我不会求和。 另外,我如何 number_format 列 [0] 上的总计? 我在这里找到的这个例子:

https://jsfiddle.net/annoyingmouse/6c3wzwcd/

我要

http://jsfiddle.net/alord84/ehup45xh/

 "drawCallback": function (settings) {
    var api = this.api();
    var rows = api.rows({
        page: 'current'
    }).nodes();
    var last = null;
    api.column(0, {
        page: 'current'
    }).data().each(function (group, i) {
        if (last !== group) {
            $(rows).eq(i).before(
            $("<tr></tr>", {
                "class": "group",
                "data-id": group
            }).append($("<td></td>", {
                "colspan": 5,
                "class": "pocell",
                "text": "PO # " + group
            })).append($("<td></td>", {
                "id": "e" + group,
                "class": "noCount",
                "text": "0.00"
            })).append($("<td></td>", {
                "id": "p" + group,
                "class": "noCount",
                "text": "0.00"
            })).append($("<td></td>", {
                "id": "b" + group,
                "class": "noCount",
                "text": "0.00"
            })).prop('outerHTML'));
            last = group;
        }
        val = api.row(api.row($(rows).eq(i)).index()).data();
        $("#e" + val.PO_Nbr).text(parseFloat($("#e" + val.PO_Nbr).text()) + parseFloat(val.Encum_Amt));
        $("#p" + val.PO_Nbr).text(parseFloat($("#p" + val.PO_Nbr).text()) + parseFloat(val.Paid));
        $("#b" + val.PO_Nbr).text(parseFloat($("#b" + val.PO_Nbr).text()) + parseFloat(val.Balance));
    });
},

这是因为创建总计的代码部分使用了一个 ID,而您的 ID 有一个 space,因此会打嗝。

这应该适用于您的情况:

"drawCallback": function (settings) {
    var api = this.api();
    var rows = api.rows({
        page: 'current'
    }).nodes();
    var last = null;
    api.column(0, {
        page: 'current'
    }).data().each(function (group, i) {
        group = group.split(' ').join('_')
        if (last !== group) {
            $(rows).eq(i).before(
                $("<tr></tr>", {
                    "class": "group",
                    "data-id": group
                }).append($("<td></td>", {
                    "colspan": 5,
                    "class": "pocell",
                    "text": "PO # " + group.split('_').join(' ')
                })).append($("<td></td>", {
                    "id": "e" + group,
                    "class": "noCount",
                    "text": "0.00"
                })).append($("<td></td>", {
                    "id": "p" + group,
                    "class": "noCount",
                    "text": "0.00"
                })).append($("<td></td>", {
                    "id": "b" + group,
                    "class": "noCount",
                    "text": "0.00"
                })).prop('outerHTML'));
            last = group;
        }
        val = api.row(api.row($(rows).eq(i)).index()).data();
        console.log(val);
        $("#e" + val.PO_Nbr.split(' ').join('_')).text(parseFloat($("#e" + val.PO_Nbr.split(' ').join('_')).text()) + parseFloat(val.Encum_Amt));
        $("#p" + val.PO_Nbr.split(' ').join('_')).text(parseFloat($("#p" + val.PO_Nbr.split(' ').join('_')).text()) + parseFloat(val.Paid));
        $("#b" + val.PO_Nbr.split(' ').join('_')).text(parseFloat($("#b" + val.PO_Nbr.split(' ').join('_')).text()) + parseFloat(val.Balance));
    });
}

如果从 ID 中删除 space 并且在没有 space 的组上进行比较,那么它应该像 you expect 一样工作。