日期:2014-05-16  浏览次数:21032 次

datatables分页参数无效
如题:在使用datatables的时候,发现iDisplayLength这个参数无效,设置了每页4个,但是还是把所有记录都显示出来了
代码如下:
 getDataSet()是jquery后台获取数据,返回的是jsonarroy数据
$(document).ready(function() {  
  oTable = $('#example').dataTable( {  
  "aaData" : getDataSet(), // 从服务端获取数据添加到表格内容
  "bJQueryUI" : true, //使用DataTables提供的Themes,界面比较美观
  //"aLengthMenu": [[4, 25, 50, -1], [4, 25, 50, "显示所有"]], //这个是允许用户自定义每页数量的时候,下拉菜单的选项
  "bPaginate":true,
  "sPaginationType" : "full_numbers", // 分页
  "iDisplayLength": 5, //每页显示数据量
  "bLengthChange": false, // 用户不可改变每页显示数量
  "bProcessing": true, // 是否启用进度显示,进度条等等,对处理大量数据很有用处。
// 默认值:false
  "bStateSave": true, // 保存状态到cookie
// *************** 很重要 ,
// 当搜索的时候页面一刷新会导致搜索的消失。使用这个属性就可避免了
  "bInfo": true, // 是否显示表格相关信息:例如翻页信息等。默认值:True
  "aaSorting" : [ [0, 'asc' ] ],/* 默认排序 */
  "aoColumnDefs":[{
  "sClass": "center",
  "fnRender":function(obj,val)
  {
  str="<input type='checkbox' name='sh' value='"+obj.aData[3]+"'/>";
  return str;
  },
  "aTargets":[3]
  },
  {
  "fnRender":function(obj,val)
  {
  var value;
  if(obj.aData[1].length>70)
  value="<a href='"+obj.aData[1]+"'>"+obj.aData[1].substring(0,70)+"......</a>";
  else
  value="<a href='"+obj.aData[1]+"'>"+obj.aData[1]+"</a>";
  return value;
  },
  "aTargets":[1]
  }],
  "aoColumns": [ // 设定各列宽度
  {"sWidth": "40px"},
  {"sWidth": "400px"},
  {"sWidth": "220px"},
  {"sWidth": "20px"}
  ],
  "oLanguage":{"sUrl" : "js/datatables.cn.txt"} // 汉化
  });
});
...................

------解决方案--------------------
还是我自己来回答吧,原因是我设置了
"bStateSave" : true, // 保存状态到cookie
每次读取的都是cookie里面的值,只要删除浏览记录或者"bStateSave" :false,就OK 了