0

我正在使用通过调用 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 的位置,但我不知道其他四个参数来自哪里。我是数据表的新手,除了 a 代表数组、n 代表节点和 i 代表整数之外,在文档中找不到任何解释它的内容。

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

4

1 回答 1

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","","","",""]

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

于 2013-10-11T20:53:54.633 回答