数据表 - 使用行组时计算列总数

时间:2013-08-11 15:11:16

标签: javascript jquery jquery-datatables

我正在使用数据表。除了常规表设置,我使用数据表添加

行组 - 概述here

列总计 - 使用Footer Callbacled Outlined here

我在这里有一个工作演示 http://jsfiddle.net/c5UXe/

一切正常,除了我的总计被计算到右边一列(你可以从演示中轻松看到)我很确定原因是因为组的工作方式和显示方式。

我想在正确的列下显示总计。即将所有总计1列向左移动以正确排列。

使用的代码使用行中的第一个<td>作为组名,例如

<td>Joe Hammer</td>用作组名。

这是我用来计算总数的代码

"fnFooterCallback": function (nRow, aasData, iStart, iEnd, aiDisplay) {

        var columnas = [1, 2, 3, 4, 5, 6, 7]; //the columns you wish to add            
        for (var j in columnas) {
            var columnaActual = columnas[j];
            var total = 0;
            for (var i = iStart; i < iEnd; i++) {
                total = total + parseFloat(aasData[aiDisplay[i]][columnaActual]);
            }
            $($(nRow).children().get(columnaActual)).html(total);

        } // end 

2 个答案:

答案 0 :(得分:2)

我相信你可以通过调整JS来完全修复它。

更新要添加的列

var columnas = [2, 3, 4, 5, 6, 7, 8];

然后获取columnaActual-1而不是columnaActual

$($(nRow).children().get(columnaActual-1)).html(total);

答案 1 :(得分:1)

我自己很难回答这个问题,但是只要其他人在这里遇到同样的问题。

更新了JSFiddle http://jsfiddle.net/c5UXe/1/

我在列总数中添加了额外的<th>,并通过CSS删除了第二列<th>,并将样式设置为无。

然后我更新了要添加到此

的列

var columnas = [2, 3, 4, 5, 6, 7,8]; //the columns you wish to add

删除第一个1并添加号码8

这是一个非常简单的修复,主要涉及调整HTML而不是JS。