当数据多需要分页的时候,除编号,名称,单数,金额外,点击其他表头排序,
第一页或者显示所有数据的时候正常,第二页直接无数据或有缺少数据,这一般什么引起的?
我只是在翻页的控制器末尾追加一个页面跳转功能,其他都是用参数来设置的。
求大佬帮忙看看
参数配置:
"sDom": "<'row-fluid'<'span6'l><'span6'r>>t<'row-fluid'<'span4'i><'span6'p><'span2 toolbar'i>>", //"sDom": "<'row-fluid'r>t<'row-fluid'<'span6'i><'span6 center'p>>", "sPaginationType": "bootstrap", "bDestroy": true, "bFilter": false, //开关,是否启用客户端过滤器 "bLengthChange": true, //开关,是否显示每页大小的下拉框 "bPaginate": true, //是否显示翻页 "lengthMenu": [[10, 20, 30, 40, 50], [10, 20, 30, 40, 50]], // 定义每页显示数据数量 "sAjaxSource": url + "?&ran=" + Math.random(), "bProcessing": true, "bServerSide": true, //打开服务器模式 "order": [[1, "asc"]], // asc升序排列 "bSort": true, "sServerMethod": "POST", "fnServerData": retrieveData, //与后台交互获取数据的处理函数 "bAutoWidth": false, // 自动宽度 "bPaginage": true, // 翻页功能 "bSortClasses": false, // 在排序上而外添加class "displayLength": 10, // 显示数据数量,默认10 "bInfo": true, //是否显示页脚信息,DataTables插件左下角显示记录数 "searching": false,
跳转:
'fnDrawCallback': function () { // 重绘表格函数 var html_str = '<div class="pagination" style="margin:0;"><ul style="display:block;">'; html_str = html_str + '<li><a href="javascript:void(0)" id="searchpage" style="float:right;height:1.4em;">GO!</a></li>'; html_str = html_str + '<li><input type="text" id="searchNumber" class="m-wrap" style="float:right;width:25%;height:1em;line-height:1em;" /></li></ul>'; $("div.toolbar").html(html_str); //点击GO $('#searchpage').click(function () { var page = $("#searchNumber").val(); page = parseInt(page) || 1; page = page - 1; //跳转到指定页面索引 ,注意大小写 var oTable = $('#ConsumeList').dataTable(); oTable.fnPageChange(page); }); //回车 $('#searchNumber').change(function () { var page = $("#searchNumber").val(); page = parseInt(page) || 1; page = page - 1; //跳转到指定页面索引 ,注意大小写 var oTable = $('#ConsumeList').dataTable(); oTable.fnPageChange(page); }); }
先确定一下是不是跳转页面时 : 是不是获取的数据就不对
直接从数据库获取数据的,数据没错
在第二页时,是不是数据里有些特殊的字符没有转义导致传给datatable.js的数据出错了。
没有特殊字符,全是数字和文本,在第一页显示所有数据就正常,个别列排序后第二页才少数据
带解决。。。