我正在使用通过调用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代表整数。
我的桌子并不新颖。第一列是文本,解释行中的内容,其余列包含整数。我只想要一个在第一列中显示总数的页脚,然后显示所有其他列的总和
答案 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","","","",""]
它将计算第三列和第四列的总和以及第五列的最大值,但仅显示当前页面的总和。然后它将用这些值替换页脚。