dataTables -- ajax 分页基本使用

匿名 (未验证) 提交于 2019-12-03 00:22:01

dataTables是一款很强大很好用的前端table 分页插件,地址:dataTables

如何使用大家可以去官网看看教程,此处总结下dataTables结合ajax需要注意的点

$(document).ready(function() {     $('#example').DataTable( {         "ajax": "数据url",         "columns": [             { "data": "name" },             { "data": "position" },             { "data": "office" },             { "data": "extn" },             { "data": "start_date" },             { "data": "salary" }         ]     } ); } );
{   "data": [        {       "id": "1",       "name": "Tiger Nixon",       "position": "System Architect",       "salary": "$320,800",       "start_date": "2011/04/25",       "office": "Edinburgh",       "extn": "5421"     },     {       "id": "2",       "name": "Garrett Winters",       "position": "Accountant",       "salary": "$170,750",       "start_date": "2011/07/25",       "office": "Tokyo",       "extn": "8422"     },   ] }

数据格式必须一致,data作为key,值为数组对象,获取对象属性值能够直接使用data.属性名来调用获取。

如果不能使用data.属性名来直接调用获取值则需要使用dataSrc来动态指向数据源。

$(document).ready(function() {     $('#example').DataTable( {         "ajax": "数据url",         "dataSrc": "data.records",         "columns": [             { "data": "name" },             { "data": "position" },             { "data": "office" },             { "data": "extn" },             { "data": "start_date" },             { "data": "salary" }         ]     } ); } );
 "data": {       "records": [            {                  "id": "1",                   "name": "Tiger Nixon",                   "position": "System Architect",                   "salary": "$320,800",                   "start_date": "2011/04/25",                   "office": "Edinburgh",                   "extn": "5421"              },              {                   "id": "2",                   "name": "Garrett Winters",                   "position": "Accountant",                   "salary": "$170,750",                   "start_date": "2011/07/25",                   "office": "Tokyo",                   "extn": "8422"               },          ]     }
        "processing": true,             "serverSide": true,             ajax(data, callback, settings) {                 console.log(data);                 //封装请求参数                 var param = {};                 param.pageSize = data.length;       //页面显示记录条数,在页面显示每页显示多少项的时候                 param.pageIndex = data.start + 1;   //开始的记录序号                 console.log(param);                 $.ajax({                     type: 'get',                     url: 'http://192.168:8766/User/list',                     cache: false,  //禁用缓存                     data: param,                     dataType: 'json',                     success: function(res) {                         setTimeout( function () {                             var out = {};                             out.draw = data.draw;                             out.recordsTotal = res.data.count;                             out.recordsFiltered = res.data.count;                             out.data =  res.data.records;                             callback( out );                         }, 50 );                     },                     error() {                         alert('error');                     }                 })             },             "bLengthChange": false,     //关闭选择显示条数             "bSort": false,             //不能排序             "iDisplayLength": 10,             "pagingType": "full_numbers",             "language": {                 "bProcessing": "正在加载中......",                 "sZeroRecords": "没有检索到数据",                  "info": "显示 _START_ 至 _END_ 条记录,共 _TOTAL_ 条记录",                 "sInfoFiltered": "数据表中共为 _MAX_ 条记录",                 "oPaginate" : {                       "sFirst" : "首页",                       "sPrevious" : "上一页",                       "sNext" : "下一页",                       "sLast" : "末页"                   },             },             "columns": [                 {                     data: 'UserId',                     render(data, type, full, meta) {                         return `                             <input type="checkbox" class="checkchild" value="${data}" />                             <img class="check-img" src="../assets/img/backstage_icon_cheakbox_default.png" alt="">                         `                     }                 },                 {data : "Account"},                 {data : "RealName"},                 {data : "Email"},                 {data : "DepartmentId"},                 {data : "UserId"},                 {data : "WorkGroupId"},                 {data : "IsManager"},                 {data : "Mobile"},                 {                     data : "CreateDate",                 },                 {                     render(data, type, full, meta) {                         return `                         <div class="am-btn-toolbar">                             <div class="am-btn-group am-btn-group-xs">                                 <button class="am-btn am-btn-bg-white am-btn-xs am-text-secondary edit"><span class="am-icon-pencil-square-o"></span>编辑</button>                                 <button class="am-btn am-btn-bg-white am-btn-xs am-text-danger am-hide-sm-only del"><span class="am-icon-copy"></span> 删除</button>                                 <button class="am-btn am-btn-bg-white am-btn-xs am-text-warning am-hide-sm-only authorize"><span class="am-icon-trash-o"></span> 授权</button>                             </div>                         </div>`                     }                 }             ]
param.pageSize = data.length;       //页面显示记录条数,在页面显示每页显示多少项的时候 param.pageIndex = data.start + 1;   //开始的记录序号
  • pageSize:为后台数据,每页有多少条数据
  • pageIndex:页面索引

因为data.start默认值为0,所以加一表示第一页开始

记录自己踩过的坑

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!