jQuery dataTables使用的时候,返回json数据填充,不能进行分页,而是显示全部数据

今天遇到这样的问题,就是利用jQuery dataTables表格插件,将我后台返回来的JSON数据填充,但是不能分页,而是显示全部的数据,很奇怪,这是运行的截图和jQuery dataTables参数的设置,大牛们帮忙看看,小弟也是刚接触jQuery dataTables。
[code="java"]
function loadCustomerInfo(){
var datatable;
if(datatable == undefined || datatable == "undefined" || datatable == null){
$("#exportTable").show();

datatable=$("#exportTable").dataTable({
"sPaginationType": "full_numbers",
"bFilter":false,
"bSort":false,
"iDisplayLength": 5,
"bRetrieve":true,
"bPaginate":true,
"bLengthChange": false,
"bStateSave" :false,
"bServerSide": true,
"aoColumns": [ {"mDataProp":"customerID"},
{"mDataProp":"customerName"},
{"mDataProp":"customerTel"},
{"mDataProp":"salesDate"},
{"mDataProp":"operate",
"mRender": function(data, type, full) {
return '订单详情';}
}],
"oLanguage":{
"sLengthMenu": "每页显示 MENU 条记录",

"sZeroRecords": "没有检索到数据",

"sInfo": "显示 START-_END_ 条数据;共有 TOTAL 条记录",

"sInfoEmtpy": "没有数据",

"sProcessing": "正在加载数据...",

"oPaginate":
{

"sFirst": "首页",

"sPrevious": "上一页",

"sNext": "下一页",

"sLast": "尾页"

}

        },
    "sAjaxSource" : "../CustomerServlet?rand="+Math.random(),
        "fnServerData" : function(sSource, aoData, fnCallback){
            $.getJSON(
                    sSource,
                    {contractID:$("#contractID").val(),
                    customerName:encodeURI(encodeURI($("#customerName").val())),
                    customerTel:$("#customerTel").val(),
                    aoData:JSON.stringify(aoData)} ,
                        function callback(data){
                            fnCallback(data);
            });
        }
});
}
else{
    datatable.fnDestroy();
}
datatable.fnDraw();

}
[/code]

[img]

[/img]

3个回答

datatables如果你想实现后台分页的话,那么每次ajax请求他会自动附加几个参数包括iDisplayStart,iDisplayLength, iSort,你需要在后台自己接收这几个参数,然后在获取数据的程序中,自己进行分页操作。

diaozhanming
diaozhanming 这个是个js控件没法自己和数据库交互,所以提供的是几个参数方便你和数据库交互。你提到的那种方式其实是datatables的前端分页就是你把数据全取出来,然后它给你分页,这样如果数据非常多它处理很慢。按照你的写法不需要特别的设置,还是获取的一页的数据然后按照你现在的方式返回就好。
接近 7 年之前 回复
weixin_42504899
Mr.Lo 接收完这几个参数之后,自己进行分页操作?能否讲的详细一点?难道不是datatables接收到JSON数据之后自己进行自动分页的?还有这几个参数我在后台获取到之后,需要做什么处理之后再传给datatables吗?小弟新手,还望指点迷津
接近 7 年之前 回复

后台第一次查询的时候页码和每页的记录数传到后台了么?打印下sql就知道了

weixin_42504899
Mr.Lo 页码和记录数??具体是哪两个参数,我回传给前台的只有Secho,itotleRecord,还有就是查询数据库组装成JSON格式的数据,传给jQuery dataTables不是自动进行分页吗??新手。。。
接近 7 年之前 回复

你看下jquery easyui API,有个pagesize和pagelis,需要设置一下!

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问