一個比較好用的分頁控制元件
官方地址:http://pagination.js.org/index.html
最近在做一個PC端的資料管理系統,分頁的需求是必不可少的,而後端的要求是除了把分頁的樣式和結構寫出來,還必須要把JS的互動也寫出來,後端只寫請求資料的那部分程式碼,我嘗試了好幾個分頁的控制元件,最終覺得這個最好用,下面是我在專案中的程式碼,分享出來給大家看一下。
另外,這個專案是用bootstrap做的,所以你會看到我引入了bootstrap.css,同時,在結構上也使了一些bootstrap的程式碼,如果你只是單純的想用這個的控制元件,可以完全不必理會跟bootstrap.css有關的這部分內容。
HTML程式碼
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta content="text/html" charset="utf-8" http-equiv="Content-Type">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
<meta name="renderer" content="webkit"/>
<title>一個比較好用的分頁控制元件</title>
<link href="assets/css/bootstrap.css" rel="stylesheet">
<link rel="stylesheet" href="assets/css/main.css">
<link rel="stylesheet" href="assets/css/pagination.css">
<!--[if lt IE 9]>
<script src="assets/js/html5shiv.min.js"></script>
<script src="assets/js/respond.min.js"></script>
<![endif]-->
</head>
<body>
<div class="main-content">
<!-- 帶頁碼的表格 -->
<div class="system-table">
<table class="data-table2 table table-hover">
<thead>
<tr>
<th>標題</th>
<th>文章總點選</th>
<th>文章端內點選</th>
<th>文章PC站點選</th>
<th>分享文章h5點選</th>
<th>分享文章次數</th>
</tr>
</thead>
<tbody>
<tr>
<td><i class="article-title-id">1,</i><a href="#">22歲接班,富李兆會…</a></td>
<td>23</td>
<td>23</td>
<td>5</td>
<td>23</td>
<td>23</td>
</tr>
... 被省略的程式碼
</tbody>
</table>
<div class="table-footer">
<div class="pull-right">
<div id="systemPager"></div>
</div>
<p>每頁顯示 <input type="text" class="page-count" value="7">條</p>
</div>
</div>
</div>
<script src="assets/js/jquery-3.2.1.min.js"></script>
<script src="assets/js/pagination.js"></script>
下面是JS程式碼:
<script type="text/javascript">
/* 分頁的事件 */
$(function () {
(function () {
var container = $('#systemPager');
var sources = function () {
var result = [];
for (var i = 1; i < 196; i++) {
result.push(i);
}
return result;
}();
var options = {
dataSource: sources, // 資料來源,最終提供給分頁元件的是一個陣列
// 如果是ajax請求就用下面這段:
/*
dataSource: function(done) {
$.ajax({
type: 'GET',
url: '/test.json',
success: function(response) {
done(response);
}
});
},*/
locator: function () { // 這個引數與 dataSource 相關,一般情況下,dataSource 是一個陣列,可以直接傳給分頁元件處理。但如果返回的是 Object,那麼就需要指定那個陣列,預設為 data
// find data and return
return 'a.b';
},
// dataSource: '填寫介面',
// locator: '指定資料來源中的哪個陣列',
pageSize: 4, // 預設顯示幾個頁碼,每頁的條目數
pageNumber: 1, // 預設在第幾頁,初始化時載入哪一頁的資料
pageRange: 2, //可見的頁碼範圍,即當前頁碼兩邊的頁碼數量。比如當前是第 6 頁,設定 pageRange 為 2,則頁碼條顯示為 '1... 4 5 6 7 8'
showNavigator: true, // 顯示總頁碼數和當前第幾頁
showGoInput: true, // 顯示跳轉到第多少頁
showGoButton: true, // 顯示點選跳轉的按鈕
// activeClassName: 'systemPagerActive',
prevText: ' 上一頁 ',
nextText: ' 下一頁 ',
goButtonText: 'go',
formatGoInput: '跳轉到第 <%= input %> 頁',
className: 'paginationjs-theme-red paginationjs-small',
//callback 每次翻頁時的回撥
callback: function (response, pagination) {
// 資料成功獲取之後馬上觸發
console.log(111);
window.console && console.log(response, pagination);
var dataHtml = '<ul>';
$.each(response, function (index, item) {
dataHtml += '<li>' + item + '</li>';
});
dataHtml += '</ul>';
container.prev().html(dataHtml);
}
};
//$.pagination(container, options);
container.addHook('beforeInit', function () {
// 初始化的時候觸發
window.console && console.log('beforeInit...');
});
// 將配製轉給分頁容器
container.pagination(options);
container.addHook('beforePageOnClick', function () {
// 點選頁碼之前呼叫
window.console && console.log('beforePageOnClick...');
//return false
});
container.addHook('beforeRender', function () {
// 每次分頁時會重新渲染分頁條,渲染之前呼叫
console.log("渲染之前觸發");
});
container.addHook('beforePreviousOnClick', function () {
console.log('點選上一頁之前呼叫');
});
container.addHook('beforeNextOnClick', function () {
console.log('點選下一頁之前呼叫');
});
container.addHook('beforeGoButtonOnClick', function () {
console.log('分頁跳轉按鈕點選之前呼叫');
});
})();
});
</script>
以上是我根據官網的文件寫出的程式碼,後端可以直接能用。
pagination.css、pagination.js檔案是從官網下載的,您需要的時候可以直接去下載。
在pagination.css你可以根據自己的需要修改樣式,而且這個控制元件本身也提供了幾套不同的色調供選擇,如果你喜歡的話,可以直接使用。
相關文章
- 自媒體一鍵分發工具哪個比較好用?省時又省力說的就是它
- 哪個自媒體分發工具比較好用?這個60萬人同時在用!
- 推薦個比較好用的協同辦公軟體?
- 學Java的軟體哪些比較好用Java
- 常見的Linux中介軟體有哪些?哪個比較好用?Linux
- 一個比較麻煩的限流需求
- 螢幕錄影軟體下載哪個比較好用
- Go和Python比較的話,哪個比較好?GoPython
- 一個比較float是否相等的工具類
- 賊好用!五分鐘搭建一個美觀且易用的導航頁面!
- 一些比較好用的第三方package推薦Package
- 學Java有哪些比較好用的軟體呢?Java
- 大偏移量下Redis與MongoDB的分頁/排名效能比較RHRedisMongoDB
- 探討一個比較複雜的查詢
- 個人比較反感的一些寫法
- 星外、雲谷、ZKEYS系統大比拼,哪個比較好用
- 有什麼比較好用的影片錄影軟體
- iOS 一個比較完美的 Growing TextViewiOSTextView
- flutter仿boss直聘,一個比較完整的例子(一)Flutter
- 報表連 hive,資料量比較大,怎麼分頁查詢?Hive
- 專案管理工具哪家比較好用?專案管理
- python網站開發哪些框架比較好用?Python網站框架
- 哪些自媒體一鍵分發工具比較好用?這款軟體我用了3年,親測!
- 音影片類的 APP,測試相容性哪個雲平臺比較好用?APP
- 分享一些比較好用的(免費)網站及推薦理由 SMARK網站
- SAP CRM和Cloud for Customer裡的Formatted Text控制元件的比較CloudORM控制元件
- 什麼樣的訂單系統軟體比較好用?
- 靠譜的少兒程式設計網站比較好用?程式設計網站
- 低程式碼開發平臺有哪些比較好用的?
- 哪些自媒體一鍵分發工具比較好用?全平臺覆蓋,支援200+賬號管理
- Cesium 比較常用的幾個方法
- Linux伺服器管理皮膚哪家比較好用?Linux伺服器
- 目前哪些開源雲監控工具比較好用!
- Flutter 分頁功能表格控制元件Flutter控制元件
- 【教程】一個比較良心的C++程式碼混淆器C++
- 同一張表的兩個欄位比較查詢
- Java程式設計工具有哪些比較好用?常用的有哪些?Java程式設計
- 有什麼比較好用的遠端軟體值得推薦?
- 你的 Mac 用對了嗎?推薦一些 Mac 上比較好用的軟體Mac