Datatables是一款jquery表格插件。它是一个高度灵活的工具,可以将任何HTML表格添加高级的交互功能。
- 分页,即时搜索和排序
- 几乎支持任何数据源:DOM, javascript, Ajax 和 服务器处理
- 支持不同主题 DataTables, jQuery UI, Bootstrap, Foundation
- 各式各样的扩展: Editor, TableTools, FixedColumns ……
- 丰富多样的option和强大的API
- 支持国际化
- 超过2900+个单元测试
- 免费开源 (MIT license)! 商业支持
- 更多特性请到官网查看
为什么要使用Datatables
运营大爷不喜欢服务器端的分页显示,可以接受3-5秒的查询时间,喜欢无条件式的模糊搜索日志等
样式选择Bootstrap
//code.jquery.com/jquery-1.12.4.js
https://cdn.datatables.net/1.10.15/js/jquery.dataTables.min.js
https://cdn.datatables.net/1.10.15/js/dataTables.bootstrap.min.js
//maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css
https://cdn.datatables.net/1.10.15/css/dataTables.bootstrap.min.css
国际化显示
Datatables支持国际化,你可以把语言定义在文件中,使用language.url选项来初始化
$(document).ready(function() {
$('#example').dataTable({
"language": {
"url": "../resources/zh_CN.json"
}
});
});
zh_CN.json
{
"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": ": 以降序排列此列"
}
}
保存状态
Datatables设置 stateSave选项后,可以保存最后一次分页信息、排序信息,当页面刷新,或者重新进入这个页面,恢复上次的状态。
这个状态的保存用了html5的本地储存和session储存,这样更加有效率。如果你的数据是异步获取的,你可以使用 stateSaveCallback和 stateLoadCallback选项.
需要注意的是,这个特性不支持ie6、ie7
默认情况下,这个状态会保存2小时,如果你希望设置的时间更长,通过设置参数 stateDuration来初始化表格
这个参数值也可以控制是本地储存(0~更大)还是session储存(-1)
下面的例子展示了Datatables设置 stateSave选项初始化后,实现的状态保存
$(document).ready(function() {
$('#example').dataTable( {
stateSave: true
});
});
DOM定位
datatables默认会打开部分特性,比如搜索框,分页显示等等,或许你不喜欢datatables这样去布局,可能你想把分页按钮放在底部的中间,搜索框放在顶部的左上角,不用担心datatables考虑到这个问题,使用dom选项就可以灵活配置各个特性的位置
datatables定义了10个字符表示不同的组件
- l - Length changing 每页显示多少条数据选项
- f - Filtering input 搜索框
- t - The Table 表格
- i - Information 表格信息
- p - Pagination 分页按钮
- r - pRocessing 加载等待显示信息
- < and > - div elements 一个div元素
- <“#id” and > - div with an id 指定id的div元素
- <“class” and > - div with a class 指定样式名的div元素
- <“#id.class” and > - div with an id and class 指定id和样式的div元素
$(document).ready(function() {
$('#example').dataTable( {
"dom": '<"top"i>rt<"bottom"flp><"clear">'
});
});
按钮+导出Excel
按钮可以通过 buttonsOption ,使用 domOption 指定按钮:
$('#myTable').DataTable({
dom: 'Bfrtip',
buttons: ['copy', 'excel', 'print']
});
导出功能可由H5或Flash实现,我所使用的为H5,需要添加JS
//code.jquery.com/jquery-1.12.4.js(必选)
https://cdn.datatables.net/1.10.15/js/jquery.dataTables.min.js(必选)
https://cdn.datatables.net/buttons/1.3.1/js/dataTables.buttons.min.js(必选)
//cdn.datatables.net/buttons/1.3.1/js/buttons.html5.min.js(必选)
//cdnjs.cloudflare.com/ajax/libs/jszip/3.1.3/jszip.min.js(Excel)
//cdn.datatables.net/buttons/1.3.1/js/buttons.print.min.js(打印)
这里没有选择CSV和PDF功能 是因为他对中文支持不友好,有乱码
转载请注明原地址:
http://blog.noark.xyz/article/2017/6/15/datatables配置汇总/