问题描述
今天遇到这样的问题,就是利用jQuery dataTables表格插件,将我后台返回来的JSON数据填充,但是不能分页,而是显示全部的数据,很奇怪,这是运行的截图和jQuery dataTables参数的设置,大牛们帮忙看看,小弟也是刚接触jQuery dataTables。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 '<A href="../OrderdetailsServlet?customerID='+data+'" target="_blank">订单详情</A>';} }],"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();}[img][/img]
解决方案
datatables如果你想实现后台分页的话,那么每次ajax请求他会自动附加几个参数包括iDisplayStart,iDisplayLength, iSort,你需要在后台自己接收这几个参数,然后在获取数据的程序中,自己进行分页操作。
解决方案二:
你看下jquery easyui API,有个pagesize和pagelis,需要设置一下!
解决方案三:
后台第一次查询的时候页码和每页的记录数传到后台了么?打印下sql就知道了