如何使用数据表实现服务器端分页?目前,在加载页面时,我正在初始化数据表&通过Java Spring控制器从数据库填充Data(JSON)表。我通过在查询字符串中传递搜索条件来进行Ajax调用。由于我们有数十万条记录,因此我们计划对服务器端分页以提高性能。
为此,后端服务开发人员向我提供了一项服务,该服务为我提供了每页记录,但输入的内容如 PAGE NUMBER,NO OF PAGE RECORDS,SORT ORDER,SORT COLUMN 。
我必须覆盖数据表实现,以通过Ajax请求查询字符串将这些实现传递给服务。我不知道是否有办法实现这一目标。
答案 0 :(得分:5)
如何使用数据表实现服务器端分页?
有关详细信息,请查看documentation
$(document).ready(function() {
$('#example').dataTable( {
"processing": true,
"serverSide": true,
"ajax": "../server_side/scripts/server_processing.php"
} );
} );
我建议你再看看docs。
使用服务器端处理向服务器发出请求时, DataTables将发送以下数据以便让服务器通过 知道需要什么数据 我不会复制所有参数,但这里只有少数参数:
start, length, order[i][column]
这些是我想的那些。
保持谨慎:
一旦DataTables使用上述参数发出数据请求 发送到服务器,它希望将JSON数据返回给它 设置以下参数:
并且您想亲自查看这些属性,以免过长这篇文章。
答案 1 :(得分:0)
准备使用代码:只需按要求使用
$("#myTable1").DataTable({
"oLanguage": {
"sSearch": "Search Address:"
},
"iDisplayLength": 50,
"processing": true, // for show progress bar
"serverSide": true, // for process server side
"filter": true, // this is for disable filter (search box)
"orderMulti": false, // for disable multiple column at once
"ajax": {
"url": url,
"type": "POST",
"datatype": "json"
},
"columns": [
{ "data": "ProviderName", "name": "ProviderName", "autoWidth": true },
{ "data": "ProviderName", "name": "ProviderName", "autoWidth": true },
{ "data": "cpTitle", "name": "cpTitle", "autoWidth": true },
{ "data": "cpAddress", "name": "cpAddress", "autoWidth": true },
{ "data": "cpPriceHourly", "name": "cpPriceHourly", "autoWidth": true },
{ "data": "cpCreatedDate", "name": "cpCreatedDate", "autoWidth": true },
{ "data": "cpId", "name": "cpId", "autoWidth": true }
],
"columnDefs": [{
"targets": 0,
"data": null,
"render": function (data, type, full, meta) {
cnt++;
if (cnt != 0) {
$("#divExcel").show();
}
return meta.settings._iDisplayStart + meta.row + 1;
}
}]
});