我正在为我的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”的值用作数据表中的记录数。
文章标签:datatables , jquery
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!
评论已关闭!