使用的插件是jqpaginator分頁插件
官網:http://jqpaginator.keenwon.com/
使用方法:
第一步引入css.js
1 <link type="text/css" rel="stylesheet" href="http://cdn.staticfile.org/twitter-bootstrap/3.1.1/css/bootstrap.min.css" /> 2 <script type="text/javascript" src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script> 3 <script src="js/jqpaginator.min.js" type="text/javascript" charset="utf-8"></script>
第二步:html布局
1 <table class="layui-table" style="text-align: center;"> 2 <thead> 3 <tr> 4 <th style="text-align: center;">ID</th> 5 <th style="text-align: center;">商品名稱</th> 6 <th style="text-align: center;">商品價格</th> 7 <th style="text-align: center;">創建時間</th> 8 <th style="text-align: center;">狀態</th> 9 <th style="text-align: center;">操作</th> 10 </tr> 11 </thead> 12 <tbody id="tbody"> 13 </tbody> 14 </table> 15 <div id="pagination" style="text-align: center;"> 16 </div>
第三步:定義分頁 ajax請求
1 var pageCount; // 總頁數 2 var dataObj = { // 定義一個data傳輸的對象 3 "page": 1, // 初始化第一頁 4 "rows": 10 // 每頁記錄數 5 } 6 7 $(function() { 8 loadcancel(); 9 loadpage(); 10 }); 11 /** 12 * 定義總頁數(可以設置為全局方法) 13 * @param {Object} 總數量 14 * @param {Object} 每頁數量 15 */ 16 function fPageCount(sum, count) { 17 return(sum % count == 0) ? sum / count : Math.ceil(sum / count); 18 } 19 /**、 20 * 初始化查詢第一頁的數據 21 * @param {Object} 當前頁數 22 * @param {Object} data數據 23 */ 24 function loadcancel(obj) { 25 $.ajax({ 26 type: "post", 27 url: "url", 28 async: false, 29 cache: false, 30 data: dataObj, 31 dataType: "json", 32 success: function(data) { 33 /** 34 * data中至少存在兩個屬性 35 * sum:總數量 36 * list:每頁查詢的數據 37 */ 38 $('#tbody').empty(); // 清空tbody對象 39 var html = ''; 40 var c = fPageCount(data.sum, rows);
// 為什么還要二次轉換,因為如果總頁數為0的話,分頁插件會報錯,所以當總頁數為0的時候設置總頁數為1
pageCount = (c == 0)? 1 : c;
41 if(data.sum > 0) { 42 $.each(data.list, function(index, item) { 43 // jquery 遍歷對象 44 html += '<tr><td>' + item['id'] + '</td>...</tr>'; 45 }); 46 } else { 47 html += '<tr><td style="text-align: center;" colspan="8">暫時沒有數據</td></tr>'; 48 } 49 $('#tbody').html(html); 50 }, 51 }); 52 } 53 54 //分頁方法 55 function loadpage() { 56 $.jqPaginator('#pagination', { 57 totalPages: pageCount, // 設置分頁的總頁數 58 visiblePages: 10, // 設置最多顯示的頁碼數 59 currentPage: dataObj.page, // 設置當前的頁碼 60 wrapper: '<ul class="pagination"></ul>', 61 first: '<li class="first"><a href="javascript:void(0);">首頁</a></li>', 62 prev: '<li class="prev"><a href="javascript:void(0);">上一頁</a></li>', 63 next: '<li class="next"><a href="javascript:void(0);">下一頁</a></li>', 64 last: '<li class="last"><a href="javascript:void(0);">末頁</a></li>', 65 page: '<li class="page"><a href="javascript:void(0);">{{page}}</a></li>', 66 onPageChange: function(num) { 67 dataObj.page = num; // 點擊分頁時更換page的值 68 loadcancel(); // 重新執行ajax請求 69 } 70 }); 71 }
