Bootstrap Paginator分頁插件使用方法詳解
最近做的asp.netMVC項(xiàng)目中需要對數(shù)據(jù)列表進(jìn)行分類,這個(gè)本來就是基于bootstrap開發(fā)的后臺,因此也就想著bootstrap是否有分頁插件呢,或者說是基于jquery支持的分頁功能,這樣整體的網(wǎng)站后臺風(fēng)格便能夠統(tǒng)一,又不用自己去寫一套分頁的功能。
首先便是要下載Bootstrap Paginator了,下載地址:Bootstrap Paginator分頁插件
首先視圖的上面應(yīng)該需要引入js和css文件,主要有三個(gè)文件,分別是bootstrap的css,jquery以及Paginator的js文件。其中網(wǎng)上搜到,貌似jquery必須要1.8版本以上,這個(gè)我沒有親自去測試看過。于是視圖的文件引用便:
<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>
而后臺這個(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來全局修改,這樣管理起來也方便,另外對于頁面這種屬性:頁碼,當(dāng)前頁,數(shù)據(jù)數(shù)量等等的信息,可以做一個(gè)類來存儲,如果網(wǎng)站的項(xiàng)目比較大的話,這樣更加方便我們?nèi)ジ淖约旱拇a。
最后顯示的效果如下圖:
如果大家還想深入學(xué)習(xí),可以點(diǎn)擊這里進(jìn)行學(xué)習(xí),再為大家附3個(gè)精彩的專題:
以上就是為大家分享的Bootstrap Paginator分頁插件的使用方法,希望對大家熟練掌握Bootstrap Paginator分頁插件使用方法有所幫助。
- Bootstrap Paginator+PageHelper實(shí)現(xiàn)分頁效果
- bootstrap paginator分頁插件的兩種使用方式實(shí)例詳解
- bootstrap paginator分頁前后臺用法示例
- 使用bootstrap-paginator.js 分頁來進(jìn)行ajax 異步分頁請求示例
- 根據(jù)Bootstrap Paginator改寫的js分頁插件
- Bootstrap分頁插件之Bootstrap Paginator實(shí)例詳解
- Bootstrap Paginator分頁插件與ajax相結(jié)合實(shí)現(xiàn)動態(tài)無刷新分頁效果
- bootstrap-paginator服務(wù)器端分頁使用方法詳解
相關(guān)文章
動態(tài)創(chuàng)建按鈕的JavaScript代碼
本文給大家分享一段JS實(shí)例代碼介紹動態(tài)創(chuàng)建按鈕的方法,需要的朋友參考下本文2016-01-01JavaScript的設(shè)計(jì)模式經(jīng)典之建造者模式
建造者模式是設(shè)計(jì)模式的一種,將一個(gè)復(fù)雜對象的構(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-12js判斷兩個(gè)數(shù)組是否存在相同元素的四種方法
這篇文章主要給大家介紹了關(guān)于js判斷兩個(gè)數(shù)組是否存在相同元素的四種方法,js中是不能直接用==或者===來計(jì)算兩個(gè)數(shù)組是否相等的,那么就需要對數(shù)組的值進(jìn)行比較,需要的朋友可以參考下2023-07-07