[英]When using a Datatables.net datatable, how can I tell which page number was clicked in the pagination control
[英]How to get all the data rows from DataTables.net when using pagination
我知道我可以使用函数fnGetData(),但只能获取我所在页面上的数据。 我想获取所有数据,甚至是当前未显示的页面。 我的目的是获取所有纬度和经度字段,以便我可以使用Google Maps v3在地图上显示它。
我有这个代码但是,它只获取当前页面的数据。
var table = $('#example1 table').dataTable();
var data = table.fnGetData();
console.log(data);
当启用服务器端处理( 'serverSide': true
)时,1.9.x函数fnGetData()和1.10.x函数data()实际上只返回当前页面的数据。
可以通过查看服务器端处理示例并在控制台$('#example').dataTable().fnGetData()
运行来确认此行为$('#example').dataTable().fnGetData()
或$('#example').DataTable().data()
。
为了检索所有数据,您需要制作一个模仿DataTables行为的单独AJAX请求。
由于您的问题被标记为datatables-1.10
我假设您使用的是DataTables 1.10.x. 您可以使用ajax.params() ,它将DataTables提交的数据提供给上一个Ajax请求中的服务器。
function processAllRecords(){
var req = $('#example1 table').DataTable().ajax.params();
// Reset request parameters to retrieve all records
req.start = 0;
req.length = -1;
req.search.value = "";
// Request data
$.ajax({
'url': 'script.php',
'data': req,
'dataType': 'json'
})
.done(function(json){
// json.data is array of data source objects (array/object),
// one for each row
console.log(json);
});
}
use the fnSettings().fnRecordsTotal() of the datatable.
example : http://www.datatables.net/forums/discussion/2401/record-count-with-server-side-processing
我以前用过它,我想我可以给你一个片段:
var table = $('#table ').DataTable(
{
"dom" : 'rtp', // Initiate drag column
"fnDraw" : false,
"serverSide": true,
"ajax" : ... ...
}
}),
"fnDrawCallback" : drawCallBack,
});
unction drawCallBack() {
console.log(this.fnSettings().fnRecordsTotal());
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.