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 一样工作。
当我的领域有 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 一样工作。