DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> 關於JavaScript >> Bootstrap Paginator分頁插件使用方法詳解
Bootstrap Paginator分頁插件使用方法詳解
編輯:關於JavaScript     

最近做的asp.netMVC項目中需要對數據列表進行分類,這個本來就是基於bootstrap開發的後台,因此也就想著bootstrap是否有分頁插件呢,或者說是基於jquery支持的分頁功能,這樣整體的網站後台風格便能夠統一,又不用自己去寫一套分頁的功能。

首先便是要下載Bootstrap Paginator了,下載地址:Bootstrap Paginator分頁插件

首先視圖的上面應該需要引入js和css文件,主要有三個文件,分別是bootstrap的css,jquery以及Paginator的js文件。其中網上搜到,貌似jquery必須要1.8版本以上,這個我沒有親自去測試看過。於是視圖的文件引用便:

<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>

然後,分頁的功能當然是一個基於Ajax的局部刷新才能夠吸引我們,當然這個便需要jquery的支持。之前自己搞的都是EasyUI的分頁,這次也應該有點不同。

<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>內容</td>');
  $("#list").append('<td>' + item.Message + '</td>');
  $("#list").append('</tr>');
  $("#list").append('</table>');
  });
  var pageCount = eval("(" + data + ")").pageCount; //取到pageCount的值(把返回數據轉成object類型)
  var currentPage = eval("(" + data + ")").CurrentPage; //得到urrentPage
  var options = {
  bootstrapMajorVersion: 2, //版本
  currentPage: currentPage, //當前頁數
  totalPages: pageCount, //總頁數
  itemTexts: function (type, page, current) {
  switch (type) {
  case "first":
   return "首頁";
  case "prev":
   return "上一頁";
  case "next":
   return "下一頁";
  case "last":
   return "末頁";
  case "page":
   return page;
  }
  },//點擊事件,用於通過Ajax來刷新整個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>內容</td>');
   $("#list").append('<td>' + item.Message + '</td>');
   $("#list").append('</tr>');
   $("#list").append('</table>');
   });
   }
  }
  });
  }
  };
  $('#example').bootstrapPaginator(options);
 }
 }
 });
 })
</script>

而在視圖的主體部分便有兩個div,一個用來呈現數據列表,一個用來放置選擇頁面的導航。

<div class="span9">
 <label>部門列表</label>
 <hr />
 <div id="list"></div>

 <div id="example"></div>
 </div>

而後台這個GetDate的方法就像下面這樣:

public ActionResult GetDate(int id, int? page)
 {
 int pageIndex = page ?? 1;//當前頁
 const int pageSize = 2;//這裡用來設置每頁要展示的數據數量,建議把這個寫到web.config中來全局控制
 //獲取需要展示的部門數據
 IEnumerable<MODEL.qgoa_department> list = OperateContext.Current.BLLSession.Iqgoa_departmentBLL.GetPagedList(pageIndex, pageSize, x => x.Id!=null, x=>x.Id);
 //得到數據的條數
 int rowCount = list.Count();
 //通過計算,得到分頁應該需要分幾頁,其中不滿一頁的數據按一頁計算
 if(rowCount%pageSize!=0)
 {
 rowCount = rowCount / pageSize + 1;
 }
 else
 {
 rowCount = rowCount / pageSize;
 }

 //轉成Json格式
 var strResult = "{\"pageCount\":"+rowCount+",\"CurrentPage\":"+pageIndex+",\"list\":" + JsonConvert.SerializeObject(list) + "}";
 return Json(strResult, JsonRequestBehavior.AllowGet);
 }

這個方法還是有點缺陷的,可以寫的更加完美,就好像上面那個pageSize這個可以通過讀取配置文件web.config來全局修改,這樣管理起來也方便,另外對於頁面這種屬性:頁碼,當前頁,數據數量等等的信息,可以做一個類來存儲,如果網站的項目比較大的話,這樣更加方便我們去更改自己的代碼。

最後顯示的效果如下圖:

如果大家還想深入學習,可以點擊這裡進行學習,再為大家附3個精彩的專題:

Bootstrap學習教程

Bootstrap實戰教程

Bootstrap插件使用教程

以上就是為大家分享的Bootstrap Paginator分頁插件的使用方法,希望對大家熟練掌握Bootstrap Paginator分頁插件使用方法有所幫助。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved