Datatables基本初始化——jQuery表格插件

本文介绍Datatables插件的基础使用方法,包括安装配置、初始化、功能开关等,并详细讲解了如何定制化Datatables的布局、分页样式、排序及隐藏列等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



一、概念

1.Datatables是一款jquery表格插件。它是一个高度灵活的工具,可以将任何HTML表格添加高级的交互功能
datatables默认情况已启用一些功能,搜索、 排序、 分页等功能已经开启

2.怎样简单地使用DataTables?使用下方简单的几行代码,一个方法初始化table。 
   

$(document).ready(function(){
        $('#myTable').DataTable();
    });


3.开始使用DataTables很简单,只需要引入两个文件, 一个css样式文件和DataTables本身的脚本文件。
4.安装:在你的项目中使用 DataTables,只需要引入三个文件即可,jQuery库,一个DT的核心js文件和一个DT的css文件

<!--第一步:引入Javascript / CSS (CDN)-->
<!-- DataTables CSS -->
	<link rel="stylesheet" type="text/css" href="http://cdn.datatables.net/1.10.12/css/jquery.dataTables.css">

	<!-- jQuery -->
	<script type="text/javascript" charset="utf8" src="http://code.jquery.com/jquery-1.10.2.min.js"></script>

	<!-- DataTables -->
	<script type="text/javascript" charset="utf8" src="http://cdn.datatables.net/1.10.12/js/jquery.dataTables.js"></script>
	<script type="text/javascript">
		$(document).ready(function() {
			$('#table_id_example').DataTable();
		});
	</script>
<!--第二步:添加如下 HTML 代码-->
<table id="table_id_example" class="display">
		<thead>
			<tr>
				<th>Column 1</th>
				<th>Column 2</th>
			</tr>
		</thead>
		<tbody>
			<tr>
				<td>Row 1 Data 1</td>
				<td>Row 1 Data 2</td>
			</tr>
			<tr>
				<td>Row 2 Data 1</td>
				<td>Row 2 Data 2</td>
			</tr>
		</tbody>
	</table>


注意:创建table表格的时候必须写<thead>和<tbody>标签,否则datatable样式显示不出来

<!--第三步:初始化Datatables-->
<script type="text/javascript">
		$(document).ready(function() {
			$('#table_id_example').DataTable();
		});
	</script>


5.DataTables布局(dom定位)
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元素

6.垂直滚动条

如果在一个固定高度的容器里放table,这个时候可能需要用到垂直滚动条,才能展示所有数据。
 开启垂直滚动条很简单,只要设置scrollY和scrollCollapse选项即可

jQuery-UI风格的垂直滚动条

加以下代码,可以滚动查看信息并且显示UI风格:
先引入jQueryUI的样式:

	<!-- 引入jQueryui样式 -->
	<script type="text/javascript" charset="utf8" src="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css"></script>
	<script type="text/javascript" charset="utf8" src="http://cdn.datatables.net/plug-ins/be7019ee387/integration/jqueryui/dataTables.jqueryui.css"></script>


$(document).ready(function() {
     $('#example').dataTable( {
         "scrollY": 200,//scrollY=100显示三行数据,=200显示六行数据,此处可随意设置
         "scrollCollapse": true,
         "jQueryUI": true
     } );
 } );


一般设置滚动后就不用加pagination分页按钮了
7.水平滚动条

开启水平滚动条,设置scrollX选项
在这个例子中还加入css样式 th, td { white-space: nowrap; } ,使文字内容在一行里

"scrollX": true,//开启水平滚动条
结合style样式,更明显

<style type="text/css">
	th, td { white-space: nowrap; }
        div.dataTables_wrapper {
            width: 800px;
            margin: 0 auto;
        }
</style>


8.不同的分页样式
默认情况下Datatables的分页就是上一页、下一页和6个页数按钮,这适合大部分情况。
Datatables提供了四个模式供选择,通过设置 pagingType选项来配置
•simple - 只有上一页、下一页两个按钮"pagingType":   "simple"
•simple_numbers - 除了上一页、下一页两个按钮还有页数按钮,Datatables默认是这个"pagingType":   "simple_numbers"
•full - 有四个按钮首页、上一页、下一页、末页"pagingType":   "full"
•full_numbers - 除首页、上一页、下一页、末页四个按钮还有页数按钮"pagingType":   "full_numbers"

下面例子full_number的例子

$(document).ready(function() {
  $('#example').dataTable( {
    "pagingType":   "full_numbers"
  } );
} );


9.保存状态
Datatables设置 stateSave选项后,可以保存最后一次分页信息、排序信息,当页面刷新,或者重新进入这个页面,恢复上次的状态。
 这个状态的保存用了html5的本地储存和session储存,这样更加有效率。如果你的数据是异步获取的,你可以使用 stateSaveCallback和 stateLoadCallback选项.
需要注意的是,这个特性不支持ie6、ie7
默认情况下,这个状态会保存2小时,如果你希望设置的时间更长,通过设置参数 stateDuration来初始化表格
 这个参数值也可以控制是本地储存(0~更大)还是session储存(-1)
下面的例子展示了Datatables设置 stateSave选项初始化后,实现的状态保存

$(document).ready(function() {
  $('#example').dataTable( {
    "stateSave":true//当页面刷新的时候,会恢复上次的状态
  } );
} );


10.开启/关闭datatables的某些功能
如果不想要datatables的某些功能,可以禁用它

$(document).ready(function() {
  $('#example').dataTable( {
    "paging":   false,//取消分页功能
    "ordering": false,//取消升序降序排列功能
    "info":     false//取消显示行数信息的功能Showing 1 to 10 of 57 entries
  } );
} );


11.复杂表头(rowspan和colspan)
制定复杂的表头(合并列/合并行)

在使用表格的时候总会遇到要分组列的情况,datatables完全支持合并列/合并行


12.一个页面初始化多个表格
datatables可以初始化多个表格,只需要使用jquery的选择器即可
这些表都是独立(即用户控制一个表上分页不会影响其他表格),但它们共享给定的初始化参数 (例如如果你指定的国际化文件,所有的表将显示你指定的语言)。
此外,API 可以一起操作或者独立操作。

某几个独立的表,将table的class设置为相同

<table id="" class="display" cellspacing="0" width="100%">


然后写JS脚本

$(document).ready(function() {
  $('table.display').dataTable();
} );


13.多列排序

datatables允许同时指定多个列排序,有很多不同的方法来实现:
•用户按住shift,鼠标分别点击第一列,第二列等等,可以实现多列同时排序
•给每列加上columns.orderData选项,即如果指定列排序时,第一列有相同数据,则按照第二列排序
•使用columns.orderData选项给多列排序,比如[ [0,'asc'], [1,'asc'] ]
•使用order()方法实现多列排序

注意,可以使用orderMulti 选项来禁用用户按住shift点击多列排序

$(document).ready(function() {
  $('#example').dataTable( {
 
    columnDefs: [ {
      targets: [ 0 ],
      orderData: [ 0, 1 ]  //如果第一列进行排序,有相同数据则按照第二列顺序排列
    }, {
      targets: [ 1 ],
      orderData: [ 1, 0 ]  //如果第二列进行排序,有相同数据则按照第一列顺序排列
    }, {
      targets: [ 4 ],
      orderData: [ 4, 0 ]  //如果第五列进行排序,有相同数据则按照第一列顺序排列
    } ]
  } );
} );


14.表格宽度自适应
让表格跟着页面大小的变化而变化,表格随着页面的大小变化自动适应

用法:<table>属性中,必须设置width=100%,<table id="example" class="display" cellspacing="0" width="100%">
然后JS代码:

$(document).ready(function() {
  $('#example').dataTable();
} );


15.数字格式化(国际化)==========================================================================好像是不管用,没什么效果
通过language.decimal选项可以配置数字的友好显示,比如1200450,显示为12.004,50

$(document).ready(function() {
  $('#example').dataTable( {
     "language": {
        "decimal":",",
        "thousands":"."
    }
  } );
} );


16.语言国际化
可以使用language选项来国际化Datatables的相关信息

$(document).ready(function() {
         $('#example').dataTable( {
             "language": {
                 "lengthMenu": "每页 _MENU_ 条记录",
                 "zeroRecords": "没有找到记录",
                 "info": "第 _PAGE_ 页 ( 总共 _PAGES_ 页 )",
                 "infoEmpty": "无记录",
                 "infoFiltered": "(从 _MAX_ 条记录过滤)"
             }
         } );
 } );



17.设置隐藏列
不希望显示在屏幕上,或者需要什么条件才会显示,使用columns.visible选项来实现
被隐藏的列依然是表格的一部分,通过column().visible()方法来显示
被隐藏的列既然是表格的一部分,那么也可以搜索和访问被隐藏的列的相关内容

$(document).ready(function() {
  $('#example').DataTable( {
    "columnDefs": [
      {
        "targets": [ 2 ],//目标定位到第三列
        "visible": false,//设置不可见
        "searchable": false//不能被搜索到
      },
      {
        "targets": [ 3 ],//目标定位到第四列
        "visible": false//设置不可见
      }
    ]
  } );
} );


18.默认排序
在datatables初始化时可以使用order选项指定列怎么排序,order可以接受多个二维数组数据,
数组第一个位置为第几列,第二个位置为标示asc升序或desc降序

$(document).ready(function() {
              $('#example').dataTable( {
              //跟数组下标一样,第一列从0开始,这里表格初始化时,第四列默认降序
                "order": [[ 3, "desc" ]]
              } );
            } );



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值