一、Datatables簡介
DataTables是一個jQuery的表格插件。這是一個高度靈活的工具,依據的基礎逐步增強,這將增加先進的互動控制,支援任何HTML表格。主要特點:
二、如何使用
在做後台的時候並沒有美工和前端工程師來配合你做頁面,為了顯示資料並有一定的美感,我們可以使用jQuery的DataTables插件來幫助我們完成任務
1、DataTables的預設設定
$(document).ready(function() { $('#example').dataTable(); } );
2、DataTables的一些基礎屬性設定
"bPaginate": true, //翻页功能 "bLengthChange": true, //改变每页显示数据数量 "bFilter": true, //过滤功能 "bSort": false, //排序功能 "bInfo": true,//页脚信息 "bAutoWidth": true//自动宽度
3、資料排序
$(document).ready(function() { $('#example').dataTable( { "aaSorting": [ [ 4, "desc" ] ] } ); } );
從第0列開始,以第4列倒序排列
4、隱藏某些欄位
$(document).ready(function() { $('#example').dataTable( { "aoColumnDefs": [ { "bSearchable": false, "bVisible": false, "aTargets": [ 2 ] }, { "bVisible": false, "aTargets": [ 3 ] } ] } ); } );
5、國際化
$(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' />" } } ); } );
6、排序功能:
$(document).ready(function() { $('#example').dataTable( { "aoColumns": [ null, { "asSorting": [ "asc" ] }, { "asSorting": [ "desc", "asc", "asc" ] }, { "asSorting": [ ] }, { "asSorting": [ ] } ] } ); } );
7.資料取得支援4種:如下
三、實例解說
1、需求:如下圖所示,對datatables的內容進行添加,編輯,刪除的操作。
2、分析:新增功能---點選add按鈕,跳出對話框,新增新的內容。
編輯功能---點選datatables可選取一行,此行改變顏色,即已選取,於已選取edit按鈕,可彈出dialog,此dialog中的內容為我們選取行的內容。如果沒有選中行,點擊edit按鈕,則不會彈出dialog。當雙擊datatables中的某一行時,也彈出dialog,並且雙擊的行改變顏色,dialog中的內容是我們雙擊行的內容。
刪除功能---點選datatables勾選一行,點選delete按鈕,跳出警告框,提示要不要刪除所選內容。當沒有選取任何內容時,請點擊delete按鈕,不會彈出警告框,也不會刪除內容。
3、 編碼:
Attributes//名稱
<table id="gridtable" class="gridtable">//声明jquery datatables <thead> <tr> <th>Name </th> <th>Value </th> <th>DisplayOrder </th> </tr> </thead> <tbody> .....//datatables内容,此处省略 </tbody> </table> <input type="button" id="add" value="Add" />//添加按钮 <input type="button" id="edit" value="Edit" />//编辑按钮 <input type="button" id="delete" value="Delete" />//删除按钮 <div id="e_Attributes">//声明dialog,异步更新 @using (Ajax.BeginForm("Update", "Product", new AjaxOptions { UpdateTargetId = "d_Attributes", OnSuccess = "dialogClose", HttpMethod = "Post", })) { <table> <tbody> <tr> <td>Name</td> <td> <input id="name" name="Name" type="text" style="width:250px" class="required"/>*</td> </tr> <tr> <td>Value</td> <td> <input id="value" name="Value" type="text" style="width:250px" class="required"/>*</td> </tr> <tr> <td>DisplayOrder</td> <td> <input id="displayOrder" name="DisplayOrder" type="text" style="width:128px" class="required"/>*</td> </tr> <tr> <td> <input id="submit" type="submit" name="submit" value="Submit" /> <input id="hiddenValue" type="hidden" name="hiddenValue" /> </td> </tr> </tbody> </table> } </div>
上面程式碼說明:這段程式碼主要分了兩個部分,第一部分是jquery datatables的聲明,