2016年5月11日 星期三

[MVC] 簡易分頁 PagedList

1. 先安裝 NuGet套件 - PagedList.Mvc



























2. Controller

  1. using PagedList;
  2. using PageList.Models;

  1. public ActionResult Index(int page =1)
  2. {
  3. //page用來記憶目前是哪一頁
  4. int currentPage = page < 1 ? 1 : page;
  5.  
  6. //資料必須先經過排序
  7. var product = db.Product.Where(x => x.Status == 1).OrderBy(x => x.ID);
  8.  
  9. //分頁資料使用 ToPagedList()
  10. //參數分別是傳入所要分頁的頁碼以及分頁資料量
  11. //此範例就是每一頁會有10筆資料
  12. var PageResult = product.ToPagedList(currentPage, 10);
  13.  
  14. return View(PageResult);
  15. }

3. View
















需要using PagedList.Mvc PagedList

取得分頁:

  1. @Html.PagedListPager((IPagedList)Model, page => Url.Action("Index", new { page = page}))


































  1. //設定PagedListRenderOptions 可更改樣式
  2. @Html.PagedListPager((IPagedList)Model, page => Url.Action("Index", new { page = page})
  3. ,PagedListRenderOptions.MinimalWithPageCountText)



  1. //也可以自由設定顯示物件
  2. @Html.PagedListPager((IPagedList)Model, page => Url.Action("Index", new { page = page}),
  3. new PagedListRenderOptions {
  4. DisplayLinkToIndividualPages=false,
  5. DisplayLinkToFirstPage =PagedListDisplayMode.IfNeeded,
  6. DisplayLinkToLastPage= PagedListDisplayMode.IfNeeded,
  7. DisplayLinkToNextPage = PagedListDisplayMode.IfNeeded,
  8. DisplayLinkToPreviousPage = PagedListDisplayMode.IfNeeded,
  9. DisplayPageCountAndCurrentLocation = true,
  10. PageCountAndCurrentLocationFormat ="第{0}頁 / 共{1}頁"
  11. })









https://github.com/TroyGoode/PagedList

沒有留言:

張貼留言