dataTables 插件学习整理
在项目中使用了dataTables 插件,学习整理一下。
dataTables 的官方中文网站 http://www.datatables.club
引入文件:
所有的都要引入 jq文件
1. dataTables 的样式
<link rel="stylesheet" href="jquery.dataTables.css">
<script src="jquery.dataTable.js">
2. bootstrap 风格的dataTables
<link rel="stylesheet" href="bootstrap.css">
<link rel="stylesheet" href="dataTables.bootstrap.css">
<script src="bootstrap.js">
<script src="jquery.dataTable.js">
<script src="dataTable.bootstrap.js">
HTML 代码
1 <table id="example" width="100%" class="table table-striped table-bordered">
2 <thead>
3 <tr>
4 <th>编码</th>
5 <th>职位</th>
6 <th>姓名</th>
7 <th>状态</th>
8 <th>项目</th>
9 <th>机构</th>
10 <th>操作</th>
11 </tr>
12 </thead>
13 </table>
JS 代码基本配置
1 var lang = {
2 "sProcessing": "处理中...",
3 "sLengthMenu": "每页 _MENU_ 项",
4 "sZeroRecords": "没有匹配结果",
5 "sInfo": "当前显示第 _START_ 至 _END_ 项,共 _TOTAL_ 项。",
6 "sInfoEmpty": "当前显示第 0 至 0 项,共 0 项",
7 "sInfoFiltered": "(由 _MAX_ 项结果过滤)",
8 "sInfoPostFix": "",
9 // "sSearch": "本地搜索:",
10 "sUrl": "",
11 "sEmptyTable": "暂无数据",
12 "sLoadingRecords": "载入中...",
13 "sInfoThousands": ",",
14 "oPaginate": {
15 "sFirst": "首页",
16 "sPrevious": "上页",
17 "sNext": "下页",
18 "sLast": "末页",
19 "sJump": "跳转"
20 },
21 "oAria": {
22 "sSortAscending": ": 以升序排列此列",
23 "sSortDescending": ": 以降序排列此列"
24 }
25 };
26
27 $('#example').DataTable({
28 "processing" : true, //DataTables载入数据时,是否显示进度条
29 "serverSide": true, // 开启服务端模式
30 "language": lang, //提示信息
31 "autoWidth": false, //自适应宽度,
32 "sScrollY" : 450, //DataTables的高
33 "sScrollX" : 820, //DataTables的宽
34 "columnDefs": [
35 {"targets": 0, "width": "10%"}, // 设置第一列的宽度
36 {"targets": 1, "width": "10%"},
37 {"targets": 2, "width": "10%"},
38 {"targets": 3, "width": "10%"},
39 {"targets": 4, "width": "20%"},
40 {"targets": 5, "width": "20%"},
41 {"targets": 6, "width": "20%"}
42 ],
43 "lengthMenu": [10, 20, 30], // 显示每页显示的条数
44 "stripeClasses": ["odd", "even"], // 为奇偶行添加样式
45 "searching": true, // 是否允许开启本地检索功能
46 "bFilter": false, // 去掉 搜索框
47 "paging": true, // 是否开启本地分页
48 "lengthChange": true, //是否允许产品改变表格每页显示的记录数
49 "info": true, // 控制是否显示表格左下角的信息
50 "bSort": false, // 禁止排序
51 "deferRender": true, // 延迟渲染
52 "pageLength": 10, // 每页显示的条数
53 //跟数组下标一样,第一列从0开始,这里表格初始化时,
54 "order": [2, 'asc'], //asc升序 desc降序 // 下标为2,第三列 生序排列
55 "aoColumnDefs": [{
56 "orderable": false,// 指定列不参与排序
57 "aTargets": [1,3,4,5,6] // 指定 下标为[1,3,4,5,6]的不排序
58 }],
59 "initComplete": function () { // 给每列添加下拉搜索
60 var api = this.api();
61 api.columns().indexes().flatten().each(function (i) {
62 if (i != 0 && i != 2 && i != 6) { // 第1,3,7不添加,其余的添加
63 var column = api.column(i);
64 var select = $('<select><option value=""></option></select>')
65 .appendTo($(column.header())) // 显示在table中最上面在thead里面
66 .on('change', function () {
67 var val = $.fn.dataTable.util.escapeRegex(
68 $(this).val()
69 );
70 column
71 .search(val ? val : '', true, false)
72 .draw();
73 });
74
75 column.data().unique().sort().each(function (d, j) {
76 var text = $(d).html(); // 获取 span 里面的 text
77 var val = $(d).attr("value"); // 获取span 里面的自定义属性 value
78 if(text != null && text.trim() != "" && val != null && text.trim() != ""){
79 select.append('<option value="' + val + '">' + text + '</option>')
80 }
81
82 });
83 }
84
85 });
86 },
87 "ajax": { // ajax 请求数据
88 "url": "请求路径",
89 "type": "get"
90 },
91 "columns":[
92 {data: name}(后台返回的字段名), // 有几列就解析几次
93 data: tell(后台返回的字段名),
94 ...
95 // 还可以写
96 //{
97 // "data": function (e) {
98 // return e.name;
99 // }
100 // },
101
102 ]
103
104
105 });
给每一列添加下拉搜索的方法 (2)官方
首先在html中添加
1 <tfoot>
2 <tr>
3 <th></th>
4 <th></th>
5 <th></th>
6 <th></th>
7 <th></th>
8 <th></th>
9 </tr>
10 </tfoot>
js代码
1 initComplete: function () {
2 var api = this.api();
3 api.columns().indexes().flatten().each( function ( i ) {
4 var column = api.column( i );
5 var select = $('<select><option value=""></option></select>')
6 .appendTo( $(column.footer()).empty() ) // 给tfoot里面添加select
7 .on( 'change', function () {
8 var val = $.fn.dataTable.util.escapeRegex(
9 $(this).val()
10 );
11 column
12 .search( val ? '^'+val+'$' : '', true, false )
13 .draw();
14 } );
15 column.data().unique().sort().each( function ( d, j ) {
16 select.append( '<option value="'+d+'">'+d+'</option>' )
17 } );
18 } );
19 }
给每列添加自定义属性
1 // 在 "columns" 下面添加
2 createdRow: function (row, data, index) {
3 // 给每列添加 自定义属性 name
4 $(row).attr('name',data.name);
5 }
给每列添加点击事件
$('#example tbody').on( 'click', 'tr', function () { }) ;
自定义的分页 ,只给后台传指定的参数
length // 页面显示的条数,每页显示多少条、
start // 开始的记录序号
draw // 当前页面
1 "ajax": function (data, callback, settings) {
2 //封装请求参数
3 var param = {};
4 param.length = data.length;//页面显示记录条数,在页面显示每页显示多少项的时候
5 param.start = data.start;//开始的记录序号
6 param.draw = data.draw;//当前页码
7
8 //ajax请求数据
9 $.ajax({
10 type: "get",
11 url: "请求路径",
12 cache: false, //禁用缓存
13 data: param,
14 dataType: "json",
15 success: function (result) {
16 //封装返回数据
17 var returnData = {};
18 returnData.draw = result.data.draw;//这里直接自行返回了draw计数器,应该由后台返回
19 returnData.recordsTotal = result.data.recordsTotal;//返回数据全部记录
20 returnData.recordsFiltered = result.data.recordsFiltered;//后台不实现过滤功能,每次查询均视作全部结果
21 returnData.data = result.data.data;//返回的数据列表
22 //调用DataTables提供的callback方法,代表数据已封装完成并传回DataTables进行渲染
23 //此时的数据需确保正确无误,异常判断应在执行此回调前自行处理完毕
24 callback(returnData);
25 }
26 });
27 },
dataTables 插件学习整理的更多相关文章
- TweenMax学习整理--特有属性
TweenMax学习整理--特有属性 构造函数:TweenMax(target:Object, duration:Number, vars:Object) target:Object -- 需要缓 ...
- js数组学习整理
原文地址:js数组学习整理 常用的js数组操作方法及原理 1.声明数组的方式 var colors = new Array();//空的数组 var colors = new Array(3); // ...
- [jQuery]jQuery DataTables插件自定义Ajax分页实现
前言 昨天在博客园的博问上帮一位园友解决了一个问题,我觉得有必要记录一下,万一有人也遇上了呢. 问题描述 园友是做前端的,产品经理要求他使用jQuery DataTables插件显示一个列表,要实现分 ...
- HttpClient学习整理
HttpClient简介HttpClient 功能介绍 1. 读取网页(HTTP/HTTPS)内容 2.使用POST方式提交数据(httpClient3) 3. 处理页面重定向 ...
- uexQQ插件学习心得
uexQQ插件学习心得 uexQQ插件的作用:通过qq可以分享图文,音乐,应用到相应的qq空间.支持手机客户端分享和手机webQQ分享.下面我们就来看一看他的一些方法. 我们先说一下分享的步骤,这个步 ...
- emmet插件学习,练习中遇到一些问题
emmet插件学习:帮助提高敲代码效率的插件 参考文献:Emmet(Zen coding)HTML代码使用技巧七则http://www.wzsky.net/html/Website/htmlcss/1 ...
- bootstrap插件学习
转自http://v3.bootcss.com/javascript/ bootstrap javascript插件学习 模态框 打开模态框 <button type="button& ...
- Jquery插件学习
前端开发也工作了一段时间,Jquery代码页写了很多,但是都是些的很零散的,不是很好用,网上看了很多人写的Jquery 很好用,而且到每个项目中都可以使用, 本人就感觉很好奇他们是怎么做到的呢,于是自 ...
- jquery.dataTables插件使用例子详解
DataTables是一个jQuery的表格插件.这是一个高度灵活的工具,依据的基础逐步增强,这将增加先进的互动控制,支持任何HTML表格 效果图 代码 <!doctype html> & ...
随机推荐
- Android 8.0系统的应用图标适配
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 概述 参考资料<一起来学习Android 8.0系统的应用图标适配吧>中已经讲得很清楚了,这里我只是简单总结下.详情的内容请阅 ...
- 『练手』003 Laura.SqlForever如何扩展 兼容更多数据库引擎
003 Laura.SqlForever如何扩展 兼容更多数据库引擎 数据库引擎插件 在 界面上的体现 导航窗体 的 工具栏 中的 引擎下拉列表 导航窗体 的 树形控件 中的 引擎主节 ...
- Spring入门(二):自动化装配bean
Spring从两个角度来实现自动化装配: 组件扫描(component scanning):Spring会自动发现应用上下文中需要创建的bean. 自动装配(autowiring):Spring会自动 ...
- Spring Boot 2.x基础教程:快速入门
简介 在您第1次接触和学习Spring框架的时候,是否因为其繁杂的配置而退却了?在你第n次使用Spring框架的时候,是否觉得一堆反复黏贴的配置有一些厌烦?那么您就不妨来试试使用Spring Boot ...
- 【带着canvas去流浪】 (3)绘制饼图
目录 一. 任务说明 二. 重点提示 三. 示例代码 四. hover高亮的实现思路 示例代码托管在:http://www.github.com/dashnowords/blogs 博客园地址:< ...
- js动态生成层方法 不懂得加QQ 2270312758
我们在WEB开发时,很多时候往往需要我们 JavaScript 来动态建立 html 元素,动态的设置相关的属性.比方说我们想要建立一个 div 层,则可以使用以下代码实现.一.直接建立 functi ...
- OPP的三大特征之封装总结
'''封装: 1.什么是封装? 封装是把什么东西装到容器中,再封闭起来 与隐藏有相似之处,但不是单纯的隐藏 官方解释:封装是指对外部隐藏实现细节,并提供简单的使用接口 封装的好处: 1.提高安全性 2 ...
- wordpress主题
1.创建wordpress主题:在themes文件下建立新主题black文件夹 2.在black文件夹中放入index.php和style.css文件,其中index对style.css文件的引用 & ...
- 【AO笔记】关于创建IFeatureClass中的参考系设置——不能为null也不能为IUnknownCoodinateSystem
创建一个要素类是很简单的,只需要获取一枚IFeatureWorkspace或者一个IFeatureDataset,然后调用其CreateFeatureClass()即可. 这个CreateFeatur ...
- ConchAPI | 更智能的API监控,提升团队效率
“昨天调好的API,怎么又挂了,竟然没有人发现?” “喂喂喂,你的API挂了,无法调用成功?哪里出问题了?” “这段时间的API数量越来越多了,有谁能好好理清下?” 现在服务端技术越来越讲究微服务化, ...