Javascript 为什么在datatables中使用drawcallback时,在显示所有条目时它不起作用?

Javascript 为什么在datatables中使用drawcallback时,在显示所有条目时它不起作用?,javascript,datatables,Javascript,Datatables,我使用drawcallback对数据表的页脚进行分组和显示小计。它正在工作,但不是我想要的。当我将“长度”菜单更改为“全部”时,它仍然会显示结果,就好像我选择显示100行一样。我不知道如何修复它,我想在同一页中显示900行和小计。我 "columnDefs": [{ "visible": false, "targets": 4 }], "order": [

我使用drawcallback对数据表的页脚进行分组和显示小计。它正在工作,但不是我想要的。当我将“长度”菜单更改为“全部”时,它仍然会显示结果,就好像我选择显示100行一样。我不知道如何修复它,我想在同一页中显示900行和小计。我



    "columnDefs": [{
        "visible": false,
        "targets": 4
    }],
    "order": [
      [2, 'asc']
    ],
    "displayLength": 25,
    "drawCallback": function (settings) {
        var api = this.api();
        var rows = api.rows({
            page: 'all'
        }).nodes();
        var last = null;

        // Remove the formatting to get integer data for summation
        var intVal = function (i) {
            return typeof i === 'string' ?
            //g global modifier aca cambia el signo peso las barras en cada numero que se suma
              i.replace(/[\$,]/g, '.') * 1 :
              typeof i === 'number' ?
                i : 0;
        };
        var groupTotal = {};
        api.column(0, {
            page: 'all'
        }).data().each(function (group, i) {
            group_assoc = group.replace(' ', "_");
            //console.log(group_assoc);
            if (typeof groupTotal[group_assoc] != 'undefined') {
                groupTotal[group_assoc] = groupTotal[group_assoc] + intVal(api.column(8).data()[i]);


            } else {
                groupTotal[group_assoc] = intVal(api.column(8).data()[i]);
            }
            if (last !== group) {
                $(rows).eq(i).before(
                  '<tr class="group"><td colspan="7">' + group + '</td><td class="' + group_assoc + '"></td></tr>'
                );

                last = group;
            }
        });

        var footerText = [];
        var footerTotal = [];
        for (var key in groupTotal) {
            $("." + key).html("$" + groupTotal[key].toFixed(1));
            footerText.push(key);  // Get array of group names
            footerTotal.push("$" + groupTotal[key].toFixed(1));  // Get array of group totals
        }
        // Update footer with group names, each on a newline
        $(api.column(7).footer()).html(
         footerText.join('<br>')
       );
        // Update footer with group totals, each on a newline
        $(api.column(8).footer()).html(
         footerTotal.join('<br>')
       ); ```

“columnDefs”:[{
“可见”:假,
“目标”:4
}],
“命令”:[
[2,‘asc’]
],
“显示长度”:25,
“drawCallback”:函数(设置){
var api=this.api();
var rows=api.rows({
页面:“全部”
}).nodes();
var last=null;
//删除格式以获取求和的整数数据
var intVal=函数(i){
返回类型i==='string'?
//g全局修改器aca cambia el signo peso las barras en cada numero que se suma
i、 替换(/[\$,]/g,'.')*1:
i的类型=='编号'?
i:0;
};
var groupTotal={};
api.列(0{
页面:“全部”
}).data().each(函数组,i){
组关联=组。替换(“”,”);
//控制台日志(组助理);
if(groupTotal[group_assoc]的类型!=“未定义”){
groupTotal[group_assoc]=groupTotal[group_assoc]+intVal(api.column(8.data)([i]);
}否则{
groupTotal[group_assoc]=intVal(api.column(8.data()[i]);
}
如果(最后!==组){
$(行).eq(i).之前(
''+组+''
);
last=组;
}
});
var footerText=[];
var footerTotal=[];
for(groupTotal中的var键){
$(“+”键).html(“$”+groupTotal[key].toFixed(1));
footerText.push(key);//获取组名数组
footeTotal.push(“$”+groupTotal[key].toFixed(1));//获取组总计数组
}
//使用组名更新页脚,每个组名位于换行符上
$(api.column(7.footer()).html(
footerText.join(“
”) ); //使用组总计更新页脚,每行换行 $(api.column(8.footer()).html( footerTotal.join(“
”) ); ```