datatables服务端分页配置最新教程2018
2017-12-28 18:08
459 查看
datatables服务端分页配置
datatables可以说是个好东西吧,几行js代码就能够让你初始化一个表格,很方便,但是要用好还是很困难的,因为配置太多太多了,网上的大多数是一些陈旧的配置,如果datatables更换了这么多版本,网上很多配置都有一些问题,我这里也不是datatables的基础教程,我这里就谈一下服务端分页怎么配置,因为我项目中用到了,笔以记之。后之览者,亦将有感于斯文~一、必备
引入<!--引入css--> <link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/1.10.15/css/jquery.dataTables.min.css"> <!--引入JavaScript--> <script type="text/javascript" language="javascript" src="//code.jquery.com/jquery-1.12.4.js"></script> <script type="text/javascript" language="javascript" src="https://cdn.datatables.net/1.10.15/js/jquery.dataTables.min.js"></script>
主体
<table id="example" class="display" cellspacing="0" width="100%"> <thead> <tr> <th>Name</th> <th>Position</th> <th>Office</th> <th>Age</th> <th>Start date</th> <th>Salary</th> </tr> </thead> <tfoot> <tr> <th>Name</th> <th>Position</th> <th>Office</th> <th>Age</th> <th>Start date</th> <th>Salary</th> </tr> </tfoot> <tbody> <tr> <td>Tiger Nixon</td> <td>System Architect</td> <td>Edinburgh</td> <td>61</td> <td>2011/04/25</td> <td>$320,800</td> </tr> </tbody> </table>
js代码
$(document).ready(function() { $('#example').DataTable(); } );
有这三个部分文件放到一个html中,你就可以实例化一个表格了,很容易对吧
二、分页
代码<script type="text/javascript"> var myTable; $(document).ready(function() { myTable = $('#projectTable').DataTable( { "processing": true,//刷新的那个对话框 "serverSide": true,//服务器端获取数据 "paging": true,//开启分页 lengthMenu: [ //自定义分页长度 [ 20, 50, 100 ], [ '20 页', '50 页', '100页' ] ], ordering:false, "ajax": { "url": "/api/get_project_list", "type": "POST", "data": function (d) { //删除多余请求参数 for(var key in d){ if(key.indexOf("columns")==0||key.indexOf("order")==0||key.indexOf("search")==0){ //以columns开头的参数删除 delete d[key]; } } var searchParams= { "retryType":$("#retryType").val(), "departmentCode":$("#departmentCode").val()!=""?$("#departmentCode").val():null, "projectCode":$("#projectCode").val()!=""?$("#projectCode").val():null, "serviceName":$("#serviceName").val()!=""?$("#serviceName").val():null, "csrfmiddlewaretoken":csrftoken }; //附加查询参数 if(searchParams){ $.extend(d,searchParams); //给d扩展参数 } }, "dataType" : "json", "dataFilter": function (json) {//json是服务器端返回的数据 json = JSON.parse(json); var returnData = {}; returnData.draw = json.data.draw; returnData.recordsTotal = json.data.total;//返回数据全部记录 returnData.recordsFiltered = json.data.total;//后台不实现过滤功能,每次查询均视作全部结果 returnData.data = json.data.retryProjectList;//返回的数据列表 return JSON.stringify(returnData);//这几个参数都是datatable需要的,必须要 } }, "searching" : false, "columns": [ { "data": "id" }, { "data": "departmentCode" }, { "data": "projectCode" }, { "data": "serviceName" }, { "data": "alertMail" }, { "data": "callbackUrl" }, { "data": "descInfo" }, { "data": "companyId" }, { "data": "retryType" }, { "data": "retryCircle" }, { "data": "createTime" }, { "data": "updateTime" }, { "data": "createUser" }, { "data": "updateUser","defaultContent": ''}, { "data": "validVal" }, { "data": "retryTimes" } ], "oLanguage" : { // 国际化配置 "sProcessing" : "正在获取数据,请稍后...", "sLengthMenu" : "显示 _MENU_ 条", "sZeroRecords" : "没有找到数据", "sInfo" : "从 _START_ 到 _END_ 条记录 总记录数为 _TOTAL_ 条", "sInfoEmpty" : "记录数为0", "sInfoFiltered" : "(全部记录数 _MAX_ 条)", "sInfoPostFix" : "", "sSearch" : "查询", "sUrl" : "", "oPaginate" : { "sFirst" : "第一页", "sPrevious" : "上一页", "sNext" : "下一页", "sLast" : "最后一页" } } }); }); </script>
给表格加上自定义列:
{ data: function (data, type, full) { return "<button class=\'btn btn-warning btn-xs\' onclick='updateMyForm("+JSON.stringify(data)+")'>修改</button> <button class=\'btn-xs btn btn-warning\'>详情</button>"; }, className: "center", defaultContent: '<button class=\'btn btn-warning btn-xs\' onclick="updateMyForm()">修改</button> <button class=\'btn-xs btn btn-warning\'>详情</button>' }
讲解
大家按照我这个配置去配置基本可以完成datatables服务端分页配置,重点需要讲解的是dataFilter这个配置必须要,必须要,必须要,服务端分页要求我们传递draw,recordsTotal,recordsFiltered,data 这几个字段,请不要写错字母,不然分页就拜拜了,dataFilter 能够帮你解决这个问题,因为你不能总要求服务端有这几个字段吧
注意部分
datatables手动刷新方法
myTable.ajax.reload(); //myTable是上面我实例化的对象
Over,也是给自己做个笔记吧~
相关文章推荐
- 2018最新hadoop服务器环境配置教程(附详细步骤)
- Genymotion配置及使用教程(最新最完整版附各部分下载地址)
- Android Studio最新配置教程2016
- Genymotion配置及使用教程(最新最完整版附各部分下载地址)
- Jenkins+Git+Xcode+fir MacOSx下最新最详细配置教程
- Win7、windows 2008 IIS7.5下载安装方法以及教程 IIS7配置PHP环境图文教程(fastcgi快速最新版)
- 人工智能教程_2018最新最全--人工智能+大数据高端培训教程
- Genymotion配置及使用教程(最新最完整版附各部分下载地址)
- ubuntu下安装和配置最新版JDK8傻瓜教程
- 最新版Ubuntu 17.10与Windows双系统安装、配置与美化教程(转载)
- Cocos Code IDE 开发Lua和Cocos2d-x3.2配置篇(可能是最新的教程)
- 【技术贴】myeclipse6.5配置svn 1.8最新版详细教程带图片
- datatables服务端分页之带参数查询以及跳页
- Genymotion配置及使用教程(最新最完整版附各部分下载地址)
- DirectX5.0最新游戏编程指南 DirectDraw教程篇 一、配置DirectX SDK
- 【最新图文教程】WinCE5.0中文模拟器SDK(VS2008)的配置
- datatables 带查询条件java服务端分页处理
- Apache 服务器最新版下载、安装及配置教程图解(Windows版)
- 【备忘】2018年薪50万2017年最新北风网Spark2.0从入门到精通教程
- IIS7配置PHP环境图文教程(fastcgi快速最新版)