可能有人说现在第是使用前端三大框架来做项目,利用数据绑定来实现表格的操作极其方便快捷。但是没有接触过这三大框架的人多多少少有用过jq dataTable这个插件。我在进入前端这个方向的时候我直接接触了Angularjs了,利用双向数据绑定来做表格特别的方便快捷,后来换了公司,因为需要维护项目所以才接触这个jq插件。总得来说阅读过插件的API还是觉得挺方便的,毕竟别人都封装好了方法。但是中文网上的实例实在是少了,不够详细,想我等菜鸟只能是google了。如今对这个表格还算是挺熟悉的,所以记录下来,以便各位网友遇到问题是能够作为参考,也有不对之处敬请指出更正。
dataTable
jQuery 的插件 dataTables 是一个优秀的表格插件,提供了针对表格的排序、浏览器分页、服务器分页、筛选、格式化等功能。dataTables 的网站上也提供了大量的演示和详细的文档进行说明,为了方便学习使用,这里一步一步进行说明。
首先,需要到 dataTables(中文网点这里) 的网站 下载脚本库。
使用方法
直接上代码:
引入css和js文件
|
|
js文件(dataTatbalCtrl.js):
配置参数可看api文档,讲的也很详细。
以上的是实现的是前端实现分页操作,服务器会把全部数据给你。一次性查找所需的所有数据(但对于若查找的数据有上万条效率太低)
所以用服务器端动态分页:一次访问几条,多次访问后台数据;
服务器分页配置
如果需要进行服务器分页的需要把serverSide设置为true,在上列的没有写该参数,默认情况时false,所以需要写入该参数;
这里建议阅读http://www.datatables.club/manual/server-side.html
开启服务器处理模式,这时我们对表格的每次操作,datatable都会帮我们向服务器发起请求获取数据,默认是用GET方式传递参数,所以我们下面加上了”fnServerData”,这样可以修改参数传递的方式为POST,那么到底给服务端发送的”aoData”是个什么鬼呢,别急,我们直接从Servlet取出来看看就知道了
我们在浏览器打开页面并打印aoData
|
|
刚刚开始看到这些数据我真的有点乱,一个分页查询看到有这么多参数
sEcho:客户端发送请求同时发送过来的一个标识,虽然有什么卵用不知道,不过我们服务端返回的数据中必须带有这个标识,哦,官网的文档里说,服务端取出标识最好转一下转成int,防止XXS攻击(懵逼,暂且不管,我们只知道需要这个就行)
iColumns:列数
iDisplayStart:起始索引
iDisplayLength:显示的行数
{“name”:”mDataProp_0”,”value”:”id”},
{“name”:”sSearch_0”,”value”:”“},
{“name”:”bRegex_0”,”value”:false},
{“name”:”bSearchable_0”,”value”:true},
{“name”:”bSortable_0”,”value”:true}
每一列的参数设置,_0即是第一列,这个我们不管,到下面也是提取列名而已
sSearch:全局搜索字段
iSortCol_0:被排序的列
sSortDir_0:排序方式;
服务端必须返回的数据格式如下:
至此服务端分页完成。以上是根据中文网提供的api文档以及网友提供的方法总结出来的,总体是还是很乱,因为中文网api所提供的参数与网友所提供的api参数并不一致,但是在我这里却都可以。也有可能是文件版本的问题。如果有其它疑问可以给我留言。