JQuery插件datatables相关api
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JQuery插件datatables相关api相关的知识,希望对你有一定的参考价值。
学习可参考:http://www.guoxk.com/node/jquery-datatables
http://yuemeiqing2008-163-com.iteye.com/blog/2006942
1:导入包:
URL:http://www.datatables.net/
分别导入css和js文件
- <style type="text/css" title="currentStyle">
- @import "css/demo_page.css";
- @import "css/demo_table.css";
- @import "css/demo_table_jui.css";
- </style>
- <script type="text/javascript" language="javascript"
- src="js/jquery.js"></script>
- <script type="text/javascript" language="javascript"
- src="js/jquery.dataTables.js"></script>
加载
- <script type="text/javascript">
- $(document).ready(function() {
- $(‘#example‘).dataTable();
- });
- </script>
表单
- <div class="col_2_3_right">
- <div class="index_viewport">
- <table id="example" cellpadding="0" cellspacing="0" border="0" width="100%">
- <thead>
- <tr>
- <th width="20%">First name</th>
- <th width="20%">Last name</th>
- <th width="35%">City</th>
- <th width="25%">Date</th>
- </tr>
- </thead>
- </table>
- </div>
- </div>
问题:有时提示找不到datatable方法
原因
window.onload必须等到页面内包括图片的所有元素加载完毕后才能执行。
$(document).ready()是DOM结构绘制完毕后就执行,不必等到加载完毕。
$(document).ready()是DOM结构绘制完毕后就执行,不必等到加载完毕。
从后台ajax得数据重建datatables(表单的id要与json的key一致)
- $.ajax({
- type:‘get‘,//可选get
- url:‘${projectPath}/search‘,
- data:{"channelType":$(‘#channelType‘).val(),"channel":$(‘#channel‘).val(),"day":$(‘#day‘).val(),"startTime":$(‘#startTime‘).val(),"endTime":$(‘#endTime‘).val(),"database":$(‘#database‘).val()},
- dataType:‘text‘,//服务器返回的数据类型 可选XML ,Json jsonp script htmltext等
- success:function(msg){
- var msgObj=JSON.parse(msg);
- //重新构建table
- $(‘#example‘).dataTable().fnClearTable(); //将数据清除
- $(‘#example‘).dataTable().fnAddData(packagingdatatabledata(msgObj),true); //数据必须是json对象或json对象数组
- },
- error:function(){
- alert(‘error‘);
- }
- })})
传入的数据
- //把服务器返回的数据转成datatable须要的格式
- function packagingdatatabledata(msgObj){
- var editHtml="<a class=‘btn‘ data-toggle=‘modal‘ href=‘#modalbackdroptrue‘ >编辑</a>";
- //var editHtml="<a class=‘btn‘ href=‘#modalbackdroptrue‘ data-toggle=‘modal‘ >编辑</a>";
- var a=[];
- var tableName=[‘day‘,‘data‘,‘indata‘,‘edit‘];
- var banddata=storjson(msgObj[‘data‘]);
- var bandindata=storjson(msgObj[‘indata‘]);
- for(var key in banddata){
- var tempObj=new Object();
- tempObj.day=key;
- tempObj.data=banddata[key];
- tempObj.indata=bandindata[key];
- tempObj.edit=editHtml;
- a.push(JSON.parse(JSON.stringify(tempObj,tableName)));
- }
- return a;
- }
传入的是一个对象数组,每个对象代表一行,对象的属性即是列
单击时得到某行的值
须要引入 jquery.dataTables.nightly.js 在附件中有
- $(document).ready(function() {
- /* Init DataTables */
- $(‘#example‘).dataTable();
- $(‘#example tbody tr‘).live(‘click‘, function () {
- var sTitle;
- var nTds = $(‘td‘, this);
- var sday = $(nTds[0]).text(); //得到第1列的值
- var sout = $(nTds[1]).text();
- var sin = $(nTds[2]).text();
- } );
- } );
2:详细配置
- var docrTable = $(‘#docrevisontable‘).dataTable({
- "bProcessing" : true, //DataTables载入数据时,是否显示‘进度’提示
- "bServerSide" : true, //是否启动服务器端数据导入
- "bStateSave" : true, //是否打开客户端状态记录功能,此功能在ajax刷新纪录的时候不会将个性化设定回复为初始化状态
- "bJQueryUI" : true, //是否使用 jQury的UI theme
- "sScrollY" : 450, //DataTables的高
- "sScrollX" : 820, //DataTables的宽
- "aLengthMenu" : [20, 40, 60], //更改显示记录数选项
- "iDisplayLength" : 40, //默认显示的记录数
- "bAutoWidth" : false, //是否自适应宽度
- //"bScrollInfinite" : false, //是否启动初始化滚动条
- "bScrollCollapse" : true, //是否开启DataTables的高度自适应,当数据条数不够分页数据条数的时候,插件高度是否随数据条数而改变
- "bPaginate" : true, //是否显示(应用)分页器
- "bInfo" : true, //是否显示页脚信息,DataTables插件左下角显示记录数
- "sPaginationType" : "full_numbers", //详细分页组,可以支持直接跳转到某页
- "bSort" : true, //是否启动各个字段的排序功能
- "aaSorting" : [[1, "asc"]], //默认的排序方式,第2列,升序排列
- "bFilter" : true, //是否启动过滤、搜索功能
- "aoColumns" : [{
- "mDataProp" : "USERID",
- "sDefaultContent" : "", //此列默认值为"",以防数据中没有此值,DataTables加载数据的时候报错
- "bVisible" : false //此列不显示
- }, {
- "mDataProp" : "USERNAME",
- "sTitle" : "用户名",
-
&nb
以上是关于JQuery插件datatables相关api的主要内容,如果未能解决你的问题,请参考以下文章
Datatables快速入门开发--一款好用的JQuery表格插件