DataTables的fnFooterCallback解释

时间:2013-10-11 20:07:47

标签: jquery datatables

我正在使用通过调用Neo4j数据库加载的aaData数组来创建表。我想创建一个页脚行,总结其他行中的数据,我找到了fnFooterCallback,但我不明白他们是如何使用它的。这是我在DataTables网站上找到的例子

$(document).ready( function() { 
    $('#example').dataTable( {
        "fnFooterCallback": function( nFoot, aData, iStart, iEnd, aiDisplay ) {
            nFoot.getElementsByTagName('th')[0].innerHTML = "Starting index is "+iStart;
        }
    } );
} )

我知道我把aaData数组放在aData所在的位置,但我不知道其他四个参数来自哪里。我是数据表的新手,在文档中找不到任何东西来解释它,除了代表数组,n代表节点,i代表整数。

我的桌子并不新颖。第一列是文本,解释行中的内容,其余列包含整数。我只想要一个在第一列中显示总数的页脚,然后显示所有其他列的总和

1 个答案:

答案 0 :(得分:0)

它的工作原理如下:

当它绘制表格时,在绘制页脚时,它将执行您定义的功能。 在您的示例中,它只是用提供的文本替换页脚的第一个单元格。

这是我做的另一个例子:

function( nRow, aaData, iStart, iEnd, aiDisplay ) {
        /* Calculate sums of page shown */
        var iPageMargem = 0;
        var iPageClient = 0;
        var iPageMaximo = aaData[ aiDisplay[iStart] ][5]*1;
        var i;
        for ( i=iStart ; i<iEnd ; i++ ) {
            iPageMargem += aaData[ aiDisplay[i] ][2]*1;
            iPageClient += aaData[ aiDisplay[i] ][3]*1;
            if (aaData[ aiDisplay[i] ][5]*1 > iPageMaximo) {
                iPageMaximo = aaData[ aiDisplay[i] ][5]*1;
            };
        }                       
        var nCells = nRow.getElementsByTagName('td');
        nCells[2].innerHTML = $.jqplot.sprintf("%'.2f",iPageMargem);
        nCells[3].innerHTML = $.jqplot.sprintf("%'.0f",iPageClient);
        nCells[4].innerHTML = $.jqplot.sprintf("%'.2f",iPageMargem/iPageClient);
        nCells[5].innerHTML = $.jqplot.sprintf("%'.2f",iPageMaximo);
        iPageMargem=null;
        iPageClient=null;
        iPageMaximo=null;
        i=null;
        nCells=null;
    };

数据是这样的:

["Tipo","Segmento","Margem","Clientes","Média","Máximo"],
["PF","Exclusivo",137066708.81,263220,520.73,119718.04],
["RR","Representante Governos",5776837.90,30257,190.93,35185.36],
["PJ","Investidores Institucionais Privados",280488.03,40,7012.20,236619.62],
["","Total","","","",""]

它将计算第三列和第四列的总和以及第五列的最大值,但仅显示当前页面的总和。然后它将用这些值替换页脚。