jQuery datatables跨页的行数

2021/01/30 18:11 · jquery ·  · 0评论

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

有没有一种方法可以获取我的表中跨页的行数的行数。

例如,如果70我的表中,那么假设50它们显示在第一页和20第二页上。有没有办法得到计数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)。

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

$(document).ready(function() {

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

    // Get the length
    alert(oTable.fnGetData().length);
} );

对于数据表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);
    }
});

演示

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

笔记

只要您page.info()在检索到数据(例如在initComplete回调函数中)后使用,该解决方案就可以在客户端和服务器端处理模式下工作。

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

dt.fnSettings()._iRecordsTotal;

如果您正在使用服务器端分页,则可以在绘制表时将其挂接到fnDrawCallback并更新html ...

$('#Table').dataTable({
    "fnDrawCallback": function (oSettings) {
        alert(oSettings._iRecordsTotal);
     }
});

如果您使用的是Scroller扩展名,并使用搜索将行过滤为一个子集,则可以像这样获得该子集的长度

$('#foo').dataTable().fnSettings().aiDisplay.length;

在数据表ajax调用的JSON响应中,我们将“ iTotalDisplayRecords”作为该响应JSON对象的属性之一。您可以直接将“ iTotalDisplayRecords”的值用作数据表中的记录数。

本文地址:http://jquery.askforanswer.com/jquery-datatableskuayedexingshu.html
文章标签: ,  
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!