1、使用方法javascript
一、引入JS文件php
<script src="js/plugin/datatables/jquery.dataTables.min.js"></script>
<script src="js/plugin/datatables/dataTables.colVis.min.js"></script>
<script src="js/plugin/datatables/dataTables.tableTools.min.js"></script>
<script src="js/plugin/datatables/dataTables.bootstrap.min.js"></script>
<script src="js/plugin/datatable-responsive/datatables.responsive.min.js"></script>html
二、定義一個表格java
<table id="datatable_tabletools" class="mytable table table-striped table-hover">
<thead style="background-color:#3498db">
<tr>
<th>
#
</th>
</tr>
</thead>
<tbody>
</tbody>
</table>node
三、Ajax動態綁定數據jquery
//首頁頭部的報表
var mytable_energy = function (tableid) {
tableid.dataTable({
"aoColumnDefs": [{ 'bSortable': false, 'aTargets': 0 }],
"bPaginate": false,//翻頁功能
"bInfo": false,//頁腳信息
"searching": false,
"aaSorting": [[1, "asc"]] //第2列升序排序
});
}web
//綁定報表
function GetEnergyDataByHourEnergySum(DADay, DAHour, CTypeLists, CTypeNames)
{
//var testlists = CTypeLists;
//var id = $('#datatable_energysum'), tb = '';
var id = $('#datatable_tabletools'), tb = '';
id.dataTable().fnDestroy();
blockUI(id);
$.ajax({
type: "Post",
url: "WebService.asmx/GetEnergyDataByHourEnergySum",
data: "{'DADay': '" + DADay + "', 'DAHour': '" + DAHour + "','CTypeLists': '" + CTypeLists + "','CTypeNames': '" + CTypeNames + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
unblockUI(id);
//var test = data;
$(data.d).each(function (i) {
tb+='<tr>'
+ '<td>' + this.PointName + '</td>'
+ '<td>' + this.RTPower + '</td>'
+ '<td>' + this.EnergyValue + '</td>'
+ '<td>' + this.RTRatio + </td>'
+ '<td>' + this.RTIncrease + '%</td>'
+ '<td>' + '正常' + '</td>'
+ '</tr>';
})
$('#datatable_tabletools>tbody').html(tb);
//設置DataTable
mytable_energy(id);
//mytablewithname(id);
}
})
}ajax
動態設置時,必定要注意使用id.dataTable().fnDestroy();銷燬以前的DataTables。否則會發生重複初始化DataTables的狀況。 或者聲明:"bDestroy":true,綁定Table時,自動銷燬以前的對象。json
2、下面介紹下DataTables的經常使用和方法,介紹來自於文章:http://blog.csdn.net/mickey_miki/article/details/8240477bootstrap
一、DataTables的默認配置
$(document).ready(function() { $('#example').dataTable(); } );
示例:http://www.guoxk.com/html/DataTables/Zero-configuration.html
二、DataTables的一些基礎屬性配置
"bPaginate": true, //翻頁功能
"bLengthChange": true, //改變每頁顯示數據數量
"bFilter": true, //過濾功能 "bSort": false,
//排序功能 "bInfo": true,
//頁腳信息 "bAutoWidth": true//自動寬度
示例:http://www.guoxk.com/html/DataTables/Feature-enablement.html
三、數據排序
$(document).ready(function() { $('#example').dataTable( { "aaSorting": [ [ 4, "desc" ] ] } ); } );
從第0列開始,以第4列倒序排列
示例:http://www.guoxk.com/html/DataTables/Sorting-data.html
四、多列排序
示例:http://www.guoxk.com/html/DataTables/Multi-column-sorting.html
五、隱藏某些列
$(document).ready(function() { $('#example').dataTable( { "aoColumnDefs": [ { "bSearchable": false, "bVisible": false, "aTargets": [ 2 ] }, { "bVisible": false, "aTargets": [ 3 ] } ] } ); } );
示例:http://www.guoxk.com/html/DataTables/Hidden-columns.html
六、改變頁面上元素的位置
$(document).ready(function() { $('#example').dataTable( { "sDom": '<"top"fli>rt<"bottom"p><"clear">' } ); } ); //l- 每頁顯示數量 //f - 過濾輸入 //t - 表單Table //i - 信息 //p - 翻頁 //r - pRocessing //< and > - div elements //<"class" and > - div with a class //Examples: <"wrapper"flipt>, <lf<t>ip>
示例:http://www.guoxk.com/html/DataTables/DOM-positioning.html
七、狀態保存,使用了翻頁或者改變了每頁顯示數據數量,會保存在cookie中,下回訪問時會顯示上一次關閉頁面時的內容。
$(document).ready(function() { $('#example').dataTable( { "bStateSave": true } ); } );
示例:http://www.guoxk.com/html/DataTables/State-saving.html
八、顯示數字的翻頁樣式
$(document).ready(function() { $('#example').dataTable( { "sPaginationType": "full_numbers" } ); } );
示例:http://www.guoxk.com/html/DataTables/Alternative-pagination-styles.html
九、水平限制寬度
$(document).ready(function() { $('#example').dataTable( { "sScrollX": "100%", "sScrollXInner": "110%", "bScrollCollapse": true } ); } );
示例:http://www.guoxk.com/html/DataTables/Horizontal.html
十、垂直限制高度
示例:http://www.guoxk.com/html/DataTables/Vertical.html
十一、水平和垂直兩個方向共同限制
示例:http://www.guoxk.com/html/DataTables/HorizontalVerticalBoth.html
十二、改變語言
$(document).ready(function() { $('#example').dataTable( { "oLanguage": { "sLengthMenu": "每頁顯示 _MENU_ 條記錄", "sZeroRecords": "抱歉, 沒有找到", "sInfo": "從 _START_ 到 _END_ /共 _TOTAL_ 條數據", "sInfoEmpty": "沒有數據", "sInfoFiltered": "(從 _MAX_ 條數據中檢索)", "oPaginate": { "sFirst": "首頁", "sPrevious": "前一頁", "sNext": "後一頁", "sLast": "尾頁" }, "sZeroRecords": "沒有檢索到數據", "sProcessing": "<img src='./loading.gif' />" } } ); } );
示例:http://www.guoxk.com/html/DataTables/Change-language-information.html
1三、click事件
示例:http://www.guoxk.com/html/DataTables/event-click.html
14/配合使用tooltip插件
示例:http://www.guoxk.com/html/DataTables/tooltip.html
1五、定義每頁顯示數據數量
$(document).ready(function() { $('#example').dataTable( { "aLengthMenu": [[10, 25, 50, -1], [10, 25, 50, "All"]] } ); } );
示例:http://www.guoxk.com/html/DataTables/length_menu.html
1六、row callback
示例:http://www.guoxk.com/html/DataTables/RowCallback.html
最後一列的值若是爲「A」則加粗顯示
1七、排序控制
$(document).ready(function() { $('#example').dataTable( { "aoColumns": [ null, { "asSorting": [ "asc" ] }, { "asSorting": [ "desc", "asc", "asc" ] }, { "asSorting": [ ] }, { "asSorting": [ ] } ] } ); } );
示例:http://www.guoxk.com/html/DataTables/sort.html 說明:第一列點擊按默認狀況排序,第二列點擊已順序排列,第三列點擊一次倒序,二三次順序,第四五列點擊不實現排序
1八、從配置文件中讀取語言包
$(document).ready(function() { $('#example').dataTable( { "oLanguage": { "sUrl": "cn.txt" } } ); } );
1九、是用ajax源
$(document).ready(function() { $('#example').dataTable( { "bProcessing": true, "sAjaxSource": './arrays.txt' } ); } );
示例:http://www.guoxk.com/html/DataTables/ajax.html
20、使用ajax,在服務器端整理數據
$(document).ready(function() { $('#example').dataTable( { "bProcessing": true, "bServerSide": true, "sPaginationType": "full_numbers",
"sAjaxSource": "./server_processing.php", /*若是加上下面這段內容,則使用post方式傳遞數據 "fnServerData": function ( sSource, aoData, fnCallback ) { $.ajax( { "dataType": 'json', "type": "POST", "url": sSource, "data": aoData, "success": fnCallback } ); }*/ "oLanguage": { "sUrl": "cn.txt" }, "aoColumns": [ { "sName": "platform" }, { "sName": "version" }, { "sName": "engine" }, { "sName": "browser" }, { "sName": "grade" } ]//$_GET['sColumns']將接收到aoColumns傳遞數據 } ); } );
示例:http://www.guoxk.com/html/DataTables/ajax-serverSide.html
2一、爲每行加載id和class
服務器端返回數據的格式:
{ "DT_RowId": "row_8", "DT_RowClass": "gradeA", "0": "Gecko", "1": "Firefox 1.5", "2": "Win 98+ / OSX.2+", "3": "1.8", "4": "A" },
示例:http://www.guoxk.com/html/DataTables/add_id_class.html
2二、爲每行顯示細節,點擊行開頭的「+」號展開細節顯示
示例:http://www.guoxk.com/html/DataTables/with-row-information.html
2三、選擇多行
示例:http://www.guoxk.com/html/DataTables/selectRows.html
2二、集成jQuery插件jEditable
示例:http://www.guoxk.com/html/DataTables/jEditable-integration.html
示例打包下載:http://www.guoxk.com/html/DataTables/DataTables.rar
3、遇到的問題
3.1「Cannot reinitialise DataTable.
To retrieve the DataTables object for this table, pass no arguments or see the docs for bRetrieve and bDestroy 」
解決辦法:http://blog.csdn.net/mickey_miki/article/details/8239185
3.2 排序時指定某列不可排序
注意: "bSort": true, //排序功能 要註釋掉
3.3 肯定選擇每頁展現個數列表和默認每頁展現個數設置
4、屬性表
屬性名稱 |
取值侷限 |
申明 |
bAutoWidth |
true or false, default true |
是否主動策畫表格各列寬度 |
bDeferRender |
true or false, default false |
用於襯着的一個參數 |
bFilter |
true or false, default true |
開關,是否啓用客戶端過濾功能 |
bInfo |
true or false, default true |
開關,是否顯示錶格的一些信息 |
bJQueryUI |
true or false, default false |
是否應用jquery ui themeroller的風格 |
bLengthChange |
true or false, default true |
開關,是否顯示一個每頁長度的選擇條(需要分頁器支撐) |
bPaginate |
true or false, default true |
開關,是否顯示(應用)分頁器 |
bProcessing |
true or false, defualt false |
開關,以指定當正在處理懲罰數據的時辰,是否顯示「正在處理懲罰」這個提示信息 |
bScrollInfinite |
true or false, default false |
開關,以指定是否無窮遷移轉變(與sScrollY共同應用),在大數據量的時辰頗有效。當這個標記爲true的時辰,分頁器就默認封閉 |
bSort |
true or false, default true |
開關,是否讓各列具備按列排序功能 |
bSortClasses |
true or false, default true |
開關,指定當當前列在排序時,是否增加classes ""sorting_1"", ""sorting_2"" and ""sorting_3"",打開後,在處理懲罰大數據時,機能有所喪失 |
bStateSave |
true or false, default false |
開關,是否打開客戶端情況記錄功能。這個數據是記錄在cookies中的,打開了這個記錄後,即便刷新一次頁面,或從頭打開瀏覽器,以前的情況都是保存下來的 |
sScrollX |
""disabled"" or? ""100%""?相似的字符串 |
是否開啓程度遷移轉變,以及指定遷移轉變區域大小 |
sScrollY |
""disabled"" or ""200px""?相似的字符串 |
是否開啓垂直遷移轉變,以及指定遷移轉變區域大小 |
-- |
-- |
-- |
選項 |
? |
? |
aaSorting |
array array[int,string],如[], [[0,""asc""], [0,""desc""]] |
指定按多列數據排序的根據 |
aaSortingFixed |
同上 |
同上。獨一不合點是不克不及被用戶的自定義設備衝突 |
aLengthMenu |
default [10, 25, 50, 100],可認爲一維數組,也可爲二維數組,好比:[[10, 25, 50, -1], [10, 25, 50, "All"]] |
這個爲選擇每頁的條目數,當應用一個二維數組時,二維層面只能有兩個元素,第一個爲顯示每頁條目數的選項,第二個是關於這些選項的申明 |
aoSearchCols |
default null,?相似:[null, {"sSearch": "My filter"}, null,{"sSearch": "^[0-9]", "bEscapeRegex": false}] |
給每一個列零丁定義其初始化搜刮列表特色(這一塊還沒搞懂) |
asStripClasses |
default [""odd"", ""even""],?好比[""strip1"", ""strip2"", ""strip3""] |
指定要被應用到各行的class風格,會主動輪迴 |
bDestroy |
true or false, default false |
用於當要在同一個元素上履行新的dataTable綁按時,將以前的那個數據對象清除掉,換以新的對象設置 |
bRetrieve |
true or false, default false |
用於指明當履行dataTable綁按時,是否返回DataTable對象 |
bScrollCollapse |
true or false, default false |
指定恰當的時辰縮起遷移轉變視圖 |
bSortCellsTop |
true or false, default false |
(未知的東東) |
iCookieDuration |
整數,默認7200,單位爲秒 |
指定用於存儲客戶端信息到cookie中的時候長度,跨越這個時候後,主動過時 |
iDeferLoading |
整數,默認爲null |
延遲加載,它的參數爲要加載條目標數量,凡是與bServerSide,sAjaxSource等共同應用 |
iDisplayLength |
整數,默認爲10 |
用於指定一屏顯示的條數,需開啓分頁器 |
iDisplayStart |
整數,默認爲0 |
用於指定從哪一條數據開端顯示到表格中去 |
iScrollLoadGap |
整數,默認爲100 |
用於指定當DataTable設置爲遷移轉變時,最多能夠一屏顯示幾許條數據 |
oSearch |
默認{ "sSearch": "", "bRegex": false, "bSmart": true } |
又是初始時指定搜刮參數相干的,有點錯雜,沒搞懂今朝 |
sAjaxDataProp |
字符串,default ""aaData"" |
指定當從辦事端獲取表格數據時,數據項應用的名字 |
sAjaxSource |
URL字符串,default null |
指定要從哪一個URL獲取數據 |
sCookiePrefix |
字符串,default ""SpryMedia_DataTables_"" |
當打開情況存儲特色後,用於指定存儲在cookies中的字符串的前綴名字 |
sDom |
default lfrtip (when bJQueryUI is false) or <"H"lfr>t<"F"ip> (when bJQueryUI is true) |
這是用於定義DataTable佈局的一個強大的屬性,另開專門文檔來補充申明吧 |
sPaginationType |
""full_numbers"" or ""two_button"", default ""two_button"" |
用於指定分頁器風格 |
sScrollXInner |
string default ""disabled"" |
又是程度遷移轉變相干的,沒搞懂啥意思 |