Bootstrap Paginator分頁插件使用方法詳解
最近做的asp.netMVC項(xiàng)目中需要對(duì)數(shù)據(jù)列表進(jìn)行分類,這個(gè)本來就是基于bootstrap開發(fā)的后臺(tái),因此也就想著bootstrap是否有分頁插件呢,或者說是基于jquery支持的分頁功能,這樣整體的網(wǎng)站后臺(tái)風(fēng)格便能夠統(tǒng)一,又不用自己去寫一套分頁的功能。
首先便是要下載Bootstrap Paginator了,下載地址:Bootstrap Paginator分頁插件
首先視圖的上面應(yīng)該需要引入js和css文件,主要有三個(gè)文件,分別是bootstrap的css,jquery以及Paginator的js文件。其中網(wǎng)上搜到,貌似jquery必須要1.8版本以上,這個(gè)我沒有親自去測(cè)試看過。于是視圖的文件引用便:
<link href="css/bootstrap.css" rel="stylesheet"> <script type="text/javascript" src="js/jquery-1.8.1.js"></script> <script type="text/javascript" src="js/bootstrap-paginator.js"></script>
然后,分頁的功能當(dāng)然是一個(gè)基于Ajax的局部刷新才能夠吸引我們,當(dāng)然這個(gè)便需要jquery的支持。之前自己搞的都是EasyUI的分頁,這次也應(yīng)該有點(diǎn)不同。
<script>
$(function () {
var carId = 1;
$.ajax({
url: "/OA/Setting/GetDate",
datatype: 'json',
type: "Post",
data: "id=" + carId,
success: function (data) {
if (data != null) {
$.each(eval("(" + data + ")").list, function (index, item) { //遍歷返回的json
$("#list").append('<table id="data_table" class="table table-striped">');
$("#list").append('<thead>');
$("#list").append('<tr>');
$("#list").append('<th>Id</th>');
$("#list").append('<th>部門名稱</th>');
$("#list").append('<th>備注</th>');
$("#list").append('<th> </th>');
$("#list").append('</tr>');
$("#list").append('</thead>');
$("#list").append('<tbody>');
$("#list").append('<tr>');
$("#list").append('<td>' + item.Id + '</td>');
$("#list").append('<td>' + item.Name + '</td>');
$("#list").append('<td>備注</td>');
$("#list").append('<td>');
$("#list").append('<button class="btn btn-warning" onclick="Edit(' + item.Id + ' );">修改</button>');
$("#list").append('<button class="btn btn-warning" onclick="Edit(' + item.Id + ' );">刪除</button>');
$("#list").append('</td>');
$("#list").append('</tr>');
$("#list").append('</tbody>');
$("#list").append('<tr>');
$("#list").append('<td>內(nèi)容</td>');
$("#list").append('<td>' + item.Message + '</td>');
$("#list").append('</tr>');
$("#list").append('</table>');
});
var pageCount = eval("(" + data + ")").pageCount; //取到pageCount的值(把返回?cái)?shù)據(jù)轉(zhuǎn)成object類型)
var currentPage = eval("(" + data + ")").CurrentPage; //得到urrentPage
var options = {
bootstrapMajorVersion: 2, //版本
currentPage: currentPage, //當(dāng)前頁數(shù)
totalPages: pageCount, //總頁數(shù)
itemTexts: function (type, page, current) {
switch (type) {
case "first":
return "首頁";
case "prev":
return "上一頁";
case "next":
return "下一頁";
case "last":
return "末頁";
case "page":
return page;
}
},//點(diǎn)擊事件,用于通過Ajax來刷新整個(gè)list列表
onPageClicked: function (event, originalEvent, type, page) {
$.ajax({
url: "/OA/Setting/GetDate?id=" + page,
type: "Post",
data: "page=" + page,
success: function (data1) {
if (data1 != null) {
$.each(eval("(" + data + ")").list, function (index, item) { //遍歷返回的json
$("#list").append('<table id="data_table" class="table table-striped">');
$("#list").append('<thead>');
$("#list").append('<tr>');
$("#list").append('<th>Id</th>');
$("#list").append('<th>部門名稱</th>');
$("#list").append('<th>備注</th>');
$("#list").append('<th> </th>');
$("#list").append('</tr>');
$("#list").append('</thead>');
$("#list").append('<tbody>');
$("#list").append('<tr>');
$("#list").append('<td>' + item.Id + '</td>');
$("#list").append('<td>' + item.Name + '</td>');
$("#list").append('<td>備注</td>');
$("#list").append('<td>');
$("#list").append('<button class="btn btn-warning" onclick="Edit(' + item.Id + ' );">修改</button>');
$("#list").append('<button class="btn btn-warning" onclick="Edit(' + item.Id + ' );">刪除</button>');
$("#list").append('</td>');
$("#list").append('</tr>');
$("#list").append('</tbody>');
$("#list").append('<tr>');
$("#list").append('<td>內(nèi)容</td>');
$("#list").append('<td>' + item.Message + '</td>');
$("#list").append('</tr>');
$("#list").append('</table>');
});
}
}
});
}
};
$('#example').bootstrapPaginator(options);
}
}
});
})
</script>
而在視圖的主體部分便有兩個(gè)div,一個(gè)用來呈現(xiàn)數(shù)據(jù)列表,一個(gè)用來放置選擇頁面的導(dǎo)航。
<div class="span9"> <label>部門列表</label> <hr /> <div id="list"></div> <div id="example"></div> </div>
而后臺(tái)這個(gè)GetDate的方法就像下面這樣:
public ActionResult GetDate(int id, int? page)
{
int pageIndex = page ?? 1;//當(dāng)前頁
const int pageSize = 2;//這里用來設(shè)置每頁要展示的數(shù)據(jù)數(shù)量,建議把這個(gè)寫到web.config中來全局控制
//獲取需要展示的部門數(shù)據(jù)
IEnumerable<MODEL.qgoa_department> list = OperateContext.Current.BLLSession.Iqgoa_departmentBLL.GetPagedList(pageIndex, pageSize, x => x.Id!=null, x=>x.Id);
//得到數(shù)據(jù)的條數(shù)
int rowCount = list.Count();
//通過計(jì)算,得到分頁應(yīng)該需要分幾頁,其中不滿一頁的數(shù)據(jù)按一頁計(jì)算
if(rowCount%pageSize!=0)
{
rowCount = rowCount / pageSize + 1;
}
else
{
rowCount = rowCount / pageSize;
}
//轉(zhuǎn)成Json格式
var strResult = "{\"pageCount\":"+rowCount+",\"CurrentPage\":"+pageIndex+",\"list\":" + JsonConvert.SerializeObject(list) + "}";
return Json(strResult, JsonRequestBehavior.AllowGet);
}
這個(gè)方法還是有點(diǎn)缺陷的,可以寫的更加完美,就好像上面那個(gè)pageSize這個(gè)可以通過讀取配置文件web.config來全局修改,這樣管理起來也方便,另外對(duì)于頁面這種屬性:頁碼,當(dāng)前頁,數(shù)據(jù)數(shù)量等等的信息,可以做一個(gè)類來存儲(chǔ),如果網(wǎng)站的項(xiàng)目比較大的話,這樣更加方便我們?nèi)ジ淖约旱拇a。
最后顯示的效果如下圖:

如果大家還想深入學(xué)習(xí),可以點(diǎn)擊這里進(jìn)行學(xué)習(xí),再為大家附3個(gè)精彩的專題:
以上就是為大家分享的Bootstrap Paginator分頁插件的使用方法,希望對(duì)大家熟練掌握Bootstrap Paginator分頁插件使用方法有所幫助。
- Bootstrap Paginator+PageHelper實(shí)現(xiàn)分頁效果
- bootstrap paginator分頁插件的兩種使用方式實(shí)例詳解
- bootstrap paginator分頁前后臺(tái)用法示例
- 使用bootstrap-paginator.js 分頁來進(jìn)行ajax 異步分頁請(qǐng)求示例
- 根據(jù)Bootstrap Paginator改寫的js分頁插件
- Bootstrap分頁插件之Bootstrap Paginator實(shí)例詳解
- Bootstrap Paginator分頁插件與ajax相結(jié)合實(shí)現(xiàn)動(dòng)態(tài)無刷新分頁效果
- bootstrap-paginator服務(wù)器端分頁使用方法詳解
相關(guān)文章
動(dòng)態(tài)創(chuàng)建按鈕的JavaScript代碼
本文給大家分享一段JS實(shí)例代碼介紹動(dòng)態(tài)創(chuàng)建按鈕的方法,需要的朋友參考下本文2016-01-01
JavaScript的設(shè)計(jì)模式經(jīng)典之建造者模式
建造者模式是設(shè)計(jì)模式的一種,將一個(gè)復(fù)雜對(duì)象的構(gòu)建與它的表示分離,使得同樣的構(gòu)建過程可以創(chuàng)建不同的表示。接下來通過本文給大家介紹JavaScript的設(shè)計(jì)模式經(jīng)典之建造者模式,感興趣的朋友一起學(xué)習(xí)吧2016-02-02
解決遍歷時(shí)Array.indexOf產(chǎn)生的性能問題
javascript中數(shù)組是沒有indexOf方法,extjs中給數(shù)據(jù)添加了該方法2012-07-07
微信小程序?qū)崿F(xiàn)給嵌套template模板傳遞數(shù)據(jù)的方式總結(jié)
這篇文章主要介紹了微信小程序?qū)崿F(xiàn)給嵌套template模板傳遞數(shù)據(jù)的方式,結(jié)合實(shí)例形式總結(jié)分析了微信小程序嵌套template模板的定義、調(diào)用、參數(shù)傳遞及相關(guān)使用技巧,需要的朋友可以參考下2017-12-12
js判斷兩個(gè)數(shù)組是否存在相同元素的四種方法
這篇文章主要給大家介紹了關(guān)于js判斷兩個(gè)數(shù)組是否存在相同元素的四種方法,js中是不能直接用==或者===來計(jì)算兩個(gè)數(shù)組是否相等的,那么就需要對(duì)數(shù)組的值進(jìn)行比較,需要的朋友可以參考下2023-07-07

