关于使用DataTables使用后台分页的记录

第一次记录大笑


Jquery的DataTable插件是一款非常方便的插件,

由于自带的分页功能是一次性查出所有数据在实际中不是很好,所以需要后台分页减轻渲染压力。


这里只记录如何在后台分页,所以基本怎么引用DataTable不做说明。怎么使用请百度一下哦!


先看前台JS:1.最简单的DataTabel渲染Jq代码,这种是前台插件自带分页的写法,就是一次性查出所以内容

 $('#f_table').DataTable({
		"data":getData(),//这里就是你后台查询返回数据的值,注意这里使用ajax需要async:false,非异步,
                "columns": [
                        { data: 'cal_year' },//后台返回的字段
                        { data: 'cal_month' }
                                               
                    ]   
       
	      });
再来就是后台分页:

$('#f_table').DataTable({
			  "paging": true, //分页
			  "bServerSide": true,
                    "sAjaxSource": url,// 后台请求地址 
                    "sAjaxDataProp": "data",
                    "fnServerData": loadData, // 获取数据的处理函数(下面的loadData方法)			
                "columns": [
                        { data: 'cal_year' },
                        { data: 'cal_month' }
                                               
                    ]   
        
	      
	      });
function loadData(sSource, aoData, fnCallback) {		
          var map = getMap(aoData);//就是解析页面的一下参数
          var pageInfo = {};
          pageInfo.pageSize = map.iDisplayLength;//每页显示多少条数据大小
          pageInfo.pageNum = map.iDisplayStart % map.iDisplayLength == 0 ? map.iDisplayStart / map.iDisplayLength + 1 : map.iDisplayStart / map.iDisplayLength;  //页码        
          $.ajax({
              url: sSource,//这个就是请求地址对应sAjaxSource
              data: {
            	  "pageNO": pageInfo.pageNum, //这个就是传给后台的分页参数值 ,至于后台使用什么参数名随之变就可以
            	  "records":pageInfo.pageSize //分页大小
              },//这个是把datatable的一些基本数据传给后台,比如起始位置,每页显示的行数
              type: 'post',
              dataType: 'json',
              async: false,
              success: function (result) {                
                  var obj = {};
                  obj['data'] = result.data.queryList.data; //后台返回的数据               
                  obj.iTotalRecords = result.data.queryList.recordsTotal;
                  obj.iTotalDisplayRecords = result.data.queryList.recordsTotal;

                  fnCallback(obj);//把返回的数据传给这个方法就可以了,datatable会自动绑定数据的
              },
              error: function (msg) {
                  alert(msg);
              }
          });
      }


      function getMap(aData) {
          var map = {};
          for (var i = 0; i < aData.length; i++) {
              var item = aData[i];
              if (!map[item.name]) {
                  map[item.name] = item.value;
              }
          }
          return map;
      }
 




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值