其開發團隊已經注入了大量心血,功能很是完整,已經能夠適應絕大多數前端列表的開發需求.css
具備至關豐富的參數(Options)和函數(API)對控件進行定義和控制,實現各類靈活的配置和功能.前端
自己雖然爲開源免費軟件,但支持力度很高,更新頻繁;主網站內容豐富,詳盡.另外也提供付費的支持服務.jquery
聲稱有2900+套單位測試代碼的支持;其主JS庫壓縮之後只有26K;另外其核心Render機制,是僅僅Render列表的顯示部份內容(10000條數據200頁,僅僅Render1頁50條數據),爲穩定高效提供了基礎.ajax
目前比較有價值的功能包括json
第一步: 下載並引入DataTables的主JS文件: jquery.dataTables.js或者jquery.dataTables.min.js數組
也可使用CDN:函數
官方CDN: http://cdn.datatables.net/1.10.6/js/jquery.dataTables.min.js性能
Bootstrap CDN: http://cdn.bootcss.com/datatables/1.10.6/js/jquery.dataTables.min.js測試
另外若是但願引入CSS,能夠下載官方提供的幾種常見的CSS樣式:網站
http://www.datatables.net/manual/styling/
第二步: 對頁面的指定列表元素調用DataTables組件
$(document).ready(function() { $('#example').dataTable(); } );
固然,在沒有任何Options的狀況下,DataTables是給出了一個標準的界面,以下圖:
左上是頁內條數控制(默認爲1頁10個),右上是簡單搜索功能,中間是列表主體,左下是分頁信息,右下是分頁控制.這些控件均可以經過Options進行顯隱, 控制和自定義.
全部數據在指定的Table元素中以TR,TD方式已經存在,這個時候,調用默認的dataTable函數就能夠實現該組件的默認功能. 調用方式與標準模式相似.
$(document).ready(function() { $('#example').dataTable(); } );
指定的Table元素中不須要有任何數據.dataTable函數經過一個JS數組對象把數據加載到控件中去.寫法以下:
$('#example').dataTable( { "data": dataSet } );
注意,dataset是一個數組對象,通常的格式是: [obj1,ojb2,ojb3….] , 每個obj對象對應每一行的數據, 這個對象的屬性會被依次綁定到每個列中.
經過Ajax從遠程獲取Json數據,並綁定到控件中去,寫法以下:
$('#example').dataTable( { "ajax": url } );
url爲遠程請求的地址.
這裏須要特別注意的是,因爲dataTables內部實現機制,其返回的json並非一個簡單的數組對象,而是一個包含一個data屬性的對象,具體格式參考以下:
{ 「data」 : [obj1,obj2,obj3……] }
對於後面2中數據加載模式,咱們能夠想到,原Table元素中的<tbody>中是不須要定義任何內容的.但<thead>能夠有2個選擇,經過HTML定義,dataTable函數綁定; 或者徹底由dataTable綁定和生成.若是是徹底由dataTable控件生成,其寫法以下:
$('#example').dataTable( { "data": dataSet, "columns": [ { "title": "Engine"}, { "title": "Browser"}, { "title": "Platform"}, { "title": "Version", "class": "center"}, { "title": "Grade", "class": "center"} ] } );
固然就算是用HTML定義<thead>,但數據中屬性的順序和<th>的順序不一樣,或者有些屬性並不須要顯示出來,該怎麼辦呢, 依然能夠經過columns配置屬性來進行定義.
$('#example').dataTable( { "data": dataSet, "columns": [ { "data": "Engine"}, { "data": "Browser"}, { "data": "Platform"}, { "data": "Version"} ] } );
另外在使用標準dataTable函數之後,以上3種數據方式加載的列表,均可以完美的實現,簡單搜索,分頁和排序功能(真翻頁的實現要稍微複雜一點,這個後續文章再進行描述).
這篇文章僅僅是入門級的,讓你們初步瞭解這個組件的基本面貌,一些比較詳盡的內容我會在隨後的博文中討論,若是你們有興趣瞭解這個控件,或者已經在使用這個控件,但願和我交流的,還請不吝賜教.