2014-07-24 30 views
-1

我如何限制分頁 有很多記錄我想顯示有限的分頁 視圖代碼或幫助類代碼中是否有任何問題
分頁顯示像[1,2,3,4,5,6,7 ,8,9,8,9,10,11,12] Mvc5尋呼助手類顯示較少的頁面鏈接數量?

public static class PagingHelpers 
{ 

     public static MvcHtmlString PageLinks(this HtmlHelper html, 
              PagingInfo pagingInfo, 
              Func<int, string> pageUrl) 
    { 

     int pageSize = 3; 
     StringBuilder result = new StringBuilder(); 
     TagBuilder tag; 
     for (int i = 1; i <= pagingInfo.TotalPages; i++) 
     { 
      tag = new TagBuilder("a"); 

      tag.MergeAttribute("href",pageUrl(i)); 


      tag.InnerHtml = i.ToString(); 
      if (i == pagingInfo.CurrentPage) 
      { 
       tag.AddCssClass("selected"); 
       tag.AddCssClass("btn-primary"); 
      } 
      if (i >= pagingInfo.CurrentPage - pageSize && i <= pagingInfo.CurrentPage + pageSize) 
      { 



      } 
      tag.AddCssClass("btn btn-default"); 
      result.Append(tag.ToString()); 
     } 
     return MvcHtmlString.Create(result.ToString()); 
    } 

} 

檢索在View

<div class="col-md-4"> 
@Html.PageLinks(Model.PagingInfo, x => Url.Action("Index", new { page = x })) 
</div> 

回答

1

您創建了自己的HtmlHelper。我建議將其扔掉並使用MvcPagingMvcPaging GitHub page

您可以通過NuGet找到它。這是一個非常完整的包,裏面有很多的選擇,其中:MaxNrOfPages()

可以使用你想要的方式是這樣的:

@Html.Pager(pageSize, pageNumber, totalItemCount).Options(o => o.MaxNrOfPages(5)) 
// Show for example 5 pages. 

希望這會有所幫助,如果是這樣,不忘記接受答案。

+0

在這種情況下,我使用HtmlHelper我想要使用此代碼的解決方案 – user2589387

+0

@ user2589387我不小心保存了我的答案。看到我更新的答案,它也使用HtmlHelper。我在我所有的ASP.NET MVC項目中使用這個包,它工作的很棒! – avb

+0

好的,我會做,但你能告訴我任何解決方案爲這個PagingHelpers PageLinks – user2589387

相關問題