什么是dataTable

dataTable是一个分页插件,可以使用客户端分页(一次性拉去所有数据,在客户端进行分页操作,适用于数据较少的情况,或者偷懒的时候用?)也可以使用服务端分页(每显示一页就拉取一页的数据,适用于大量数据的情况);
这里介绍一下客户端分页的使用~233

开始使用dataTable

使用插件当然就需要先导入插件的源码了,我这里使用的插件目录结构如下

因为原生jQuery的样式不太好看,所以使用了bootstrap整合好的样式
1、第一步导入资源

<link rel="stylesheet" href="bootstrap-3.3.7-dist/css/bootstrap.min.css" /><!--导入bootstrap样式,如果不用bootstrap的风格可不导-->
<link href="bootstrap-3.3.7-dist/datatables_plugins/integration/bootstrap/3/dataTables.bootstrap.css" rel="stylesheet" /><!-- 导入dataTable的bootstrap的样式 -->
<script src="js/jquery-3.1.1.min.js"></script><!--导入jQuery-->
<script src="bootstrap-3.3.7-dist/datatables_plugins/jquery.dataTables.min.js"></script><!--导入dataTable-->
<!--导入dataTable结合bootstrap的js-->
<script src="bootstrap-3.3.7-dist/datatables_plugins/integration/bootstrap/3/dataTables.bootstrap.min.js"></script>

注意路径别写了错了,还有就是记得导入jQuery
2、在页面创建一个table标签,这就看自己想把表格放哪里去了

    <!-- 省略其它布局代码 --><table class="table table-bordered table-hover" id="infoTable"></table>

3、在JS中初始化dataTable表格

     var oTable;//定义变量名,用于存放dataTable对象,一般定义为全局的比较好var root = $("#root").val();//获取系统上下文路径,若为在页面配置请忽略$(function () {//jQuery方法,在document全部加载完毕时执行initialDataTable();//调用自定义函数});//定义一个函数:用于初始化datatable  function initialDataTable() {//使用客户端分页,一次性拉去所有数据$.ajax({//使用ajax的方式获取url:root+"/admin/station/datatable",//异步请求的接口地址method:"post",//请求方式dataType:"json",//期待的数据返回类型async:true,//是否异步data:{},//请求参数,如果有可添加,键值对的形式或者JSON字符串都可以,根据后台来success:function (data) {//服务器响应成功后执行的回调//初始化datatableif (typeof oTable != "undefined"){//如果已经被实例化,则销毁再实例化oTable.fnDestroy();}oTable = $("#infoTable").dataTable({//注意#infoTable是需创建为dataTable的表格,使用jQuery选择器"bPaginate":true,//是否翻页功能"sServerMethod":"POST",//若使用服务端分页,则设置请求方式为“POST”,可改"bServerSide":false,//是否开启服务端分页(不开就是客户端分页)"bProcessing":true,//是否显示加载ing"bFilter":false,//是否开启过滤"bSort":true,//是否开启排序"searching":true,//是否开启搜索功能"data":data.stations,//若使用客户端分页,则将表格的数据填写到data属性中,需要数组,数组里面要求是对象"aoColumns":[//渲染每一列,其实就是配置表头和数据对应显示到哪一列中{"mData":"id",//读取数组的对象中的id属性"sTitle":"序号",//表头"width":"50px",//设置宽度,不设置的话就是自动分配"mRender":function (d,type,full,meta) {//如果需要显示的内容需根据数据封装加工的就写这个属性,0//回调中有4个参数,d:对应mData中的属性的值;type:对应值的类型;full:对应当前这一行的数据,meta对应dataTable的配置//如果不清楚可以使用console.log();打印出来看看return meta.row+1+meta.settings._iDisplayStart;}},{"mData":"name","sTitle":"站点名称"},{"mData":"id","sTitle":"操作","width":"180px","mRender":function (d,type,full,meta) {var str = "";str = '<button class="btn btn-primary" onclick=\'modifyObj('+JSON.stringify(full)+')\'><i class=\'fa fa-pencil\' aria-hidden=\'true\'></i>编辑</button>'str += '<button class="btn btn-primary" style="margin-left: 10px;" onclick=\'deleteObj('+JSON.stringify(full)+')\'><i class=\'fa fa-trash\' aria-hidden=\'true\'></i>删除</button>';return str;}}]});}});}var oLanguageLeoCN = {'sProcessing' : ' 处理中... ','sLengthMenu' : ' 显示  _MENU_ 项结果 ','sZeroRecords' : ' 没有匹配结果 ','sInfo' : ' 显示第_START_至_END_项结果,共_TOTAL_项 ','sInfoEmpty' : ' 显示第0至0项结果,共0项 ','sInfoFiltered' : ' (由_MAX_项结果过滤) ','sInfoPostFix' : '  ','sSearch' : ' 搜索: ','sUrl' : ' ','sEmptyTable' : ' 表中数据为空 ','sLoadingRecords' : ' 载入中... ','sInfoThousands' : ' , ','oPaginate' : {'sFirst' : ' 首页 ','sPrevious' : ' 上页 ','sNext' : ' 下页 ','sLast' : ' 末页 '},'oAria' : {'sSortAscending' : ' :以升序排列此列','sSortDescending' : ' :以降序排列此列 '}};$.fn.DataTable.defaults.oLanguage = oLanguageLeoCN;//设置提示为中文

4、接下来就是获取数据的接口了,这个就看自己的后台来了,我使用的是spring MVC,贴一个示例代码

 /*** 使用datatable客户端分页获取站点集数据用* @return*/@RequestMapping(value="/station/datatable",method = RequestMethod.POST)@ResponseBodypublic Map<String,Object> getStationsByDatatable(){Map<String,Object> map = new HashMap<>();try {//省略其它属性定义代码//调用service方法获取所有站点信息List<Station> stations = this.wayService.getStations();map.put("code",1);map.put("msg","获取数据成功!");map.put("stations",stations);}catch (Exception e){e.printStackTrace();map.put("code",-1);map.put("msg","获取数据失败!");map.put("stations",null);}return map;}

5、当这写都配置好了之后,接下来就是见证奇迹的时候~233
结果图

需要注意的就是路径记得改成自己的。

资源地址

接下来附上博客使用的资源的地址,需要可自取
百度网盘地址:链接: https://pan.baidu.com/s/17y7Snxz4sx9XXLhWWuq18g 提取码: 2eiy 复制这段内容后打开百度网盘手机App,操作更方便哦
项目的GitHub地址:https://github.com/jamesluozhiwei/bus.git
CSDN下载地址:https://download.csdn.net/download/qq_38403662/10862576

有问题和不足欢迎留言讨论

使用dataTable完成客户端分页相关推荐

  1. SAP C4C OData服务的filter,客户端分页和排序的使用方式

    假设系统里已经有许多的Lead历史数据,而我们正在进行的微信小程序和C4C集成的项目里,又创建了许多新的Lead数据.如何将这些新的在微信小程序里调用OData服务创建的Lead数据同老的历史数据做区 ...

  2. java miniui datagrid_miniui datagrid 的客户端分页解决方案

    官方的解决方案 官方在"在线示例"中给了一个简单的 client pagination 解决方案,代码就不贴了,这里说说它的基本思想和处理过程. 首先,是绑定一个 preload ...

  3. datatable java实现分页_jQuery Datatable - 使用Php的服务器端处理数据分页

    我有jquery datatable分页的问题(服务器端处理) . 例如,我在数据库中有 24 条记录 . 计数正确显示,总分页也正确显示 . 当我点击 Next or 2nd page 时,它会根据 ...

  4. Jquery DataTable服务端分页的最佳实现

    2019独角兽企业重金招聘Python工程师标准>>> index.html <!DOCTYPE html> <html> <head><t ...

  5. jquery datatable 获取当前分页的数据

    使用jquery datatable 遇到分页分别求和时,找了半天才找到获取当前分页数据的方法,以此总结 var table=$('#example').DataTable( {"pagin ...

  6. Spring boot入门(三):集成AdminLTE(Freemarker),结合generate代码生成器,利用DataTable和PageHelper分页...

    Spring boot入门(三):SpringBoot集成结合AdminLTE(Freemarker),利用generate自动生成代码,利用DataTable和PageHelper进行分页显示 标题 ...

  7. datatable指定页码分页

    /** 获取DataTable的公共配置* basePath 接口路径* tableId 当前table的id* len 列长* idName id名* */var getDataTableConfi ...

  8. Silverlight客户端分页 DataPager控件的使用

    首先拖入一个数据表格DataGrid控件,再拖入一个分页控件DataPager. 后台进行数据绑定的代码如下: PagedCollectionView pcv = new PagedCollectio ...

  9. datatable分页增加首页和尾页

    datatable默认的分页样式只有上一页和下一页,如果需要添加首页和尾页,只需将datatable的pagingType属性设置为full_numbers即可: $(document).ready( ...

最新文章

  1. Docker系列 四.Docker部署SpringBoot
  2. Python Study:GUI-Tkinter
  3. C#数据本地存储方案之SQLite
  4. 更新node最新版本方法和 npm install -g n 运行错误
  5. ArcGIS中的WKID(转)
  6. Spark On MaxCompute如何访问Phonix数据
  7. 前端基础:学习 ES6 新特性
  8. 奶块显示正常登录服务器但进不去,奶块服务器流畅怎么进不进去quest; | 手游网游页游攻略大全...
  9. Nginx端口映射(外网访问)
  10. MFC如何正常关闭一个程序
  11. Vue Echarts飞机航线图
  12. 在ros中使用glog
  13. 【AIOT】语音学习
  14. linux进程调度算法,关于嵌入式Linux系统实时进程调度算法系统详解
  15. 罗老师的Android底层开发问答链接
  16. Model 3 FBCM
  17. Android 音视频开发(三) -- Camera2 实现预览、拍照功能
  18. 使用ScanCode扫描开源项目的license
  19. 运营半年多视频号涨粉13万,如何真正挖掘视频号的潜力
  20. 云计算的一些常见安全风险

热门文章

  1. 微信域名检测接口API实现思路以及代码的分享
  2. 开关电源之升降压-如何得到输出电压的精确幅度
  3. 智能微电网研究(PythonMatlab代码实现)
  4. NRF52832实现Mifare K1门禁卡模拟的探索
  5. [JAVAEE]实验06:基于XML和基于注解的声明式事务管理方式模拟银行转账程序
  6. NYOJ 55 懒省事的小明(优先队列)
  7. 315Mhz、433Mhz无线遥控信号的解码分析和模拟 超再生遥控器
  8. MATLAB代码:基于多目标粒子群算法冷热电联供综合能源系统运行优化
  9. matlab求数学表达式分子分母,怎样提取表达式的分子和分母
  10. 在windows下解压压缩文件时出现文件名重名的问题