jquery数据表跨页面的行数

Pri*_*ish 21 jquery datatables

我正在为我的HTML表使用jQuery DataTables插件.

有没有办法在页面中获取表格中行数的行数.

例如,如果70我的表中有行,并且让我们说50它们会显示在第1页和20第2页上.有没有办法计算70

我已经尝试了这篇文章中包含的所有建议: jQuery:计算表中的行数

这包括:

var rowCount = $('#myTable tr').length;
var rowCount = $('#myTable tr').size();
var rowCount = $('#myTable >tbody >tr').length;
var rowCount = $("#myTable").attr('rows').length;

但是所有上述建议似乎都返回现有页面上的行数(在这种情况下,50而不是70).

Mat*_*son 26

看起来DataTables正在从DOM中删除不在当前页面上的行,因此您无法使用jQuery选择器对它们进行计数.您必须使用DataTables API,特别是fnGetData函数:

$(document).ready(function() {

    // Initialize your table
    var oTable = $('#myTable').dataTable();

    // Get the length
    alert(oTable.fnGetData().length);
} );
Run Code Online (Sandbox Code Playgroud)


Gyr*_*com 12

对于DataTables 1.10

使用page.info()检索关于表的信息,如下图所示.

属性recordsTotal将保存表中的记录总数.

var table = $('#example').DataTable({
    "initComplete": function(settings, json){ 
        var info = this.api().page.info();
        console.log('Total records', info.recordsTotal);
        console.log('Displayed records', info.recordsDisplay);
    }
});
Run Code Online (Sandbox Code Playgroud)

DEMO

有关代码和演示,请参阅此jsFiddle.

笔记

只要您page.info()在检索数据后使用,例如在initComplete回调函数中,此解决方案将适用于客户端和服务器端处理模式.


dot*_*joe 8

使用服务器端分页时,您可以访问总记录数,如此...

dt.fnSettings()._iRecordsTotal;
Run Code Online (Sandbox Code Playgroud)

如果你正在使用服务器端分页,你可以挂钩到fnDrawCallback并在每次绘制表时更新你的html ...

$('#Table').dataTable({
    "fnDrawCallback": function (oSettings) {
        alert(oSettings._iRecordsTotal);
     }
});
Run Code Online (Sandbox Code Playgroud)