2016-10-03 38 views
0

我有許多數據行的列表。我列出他們通過表格標籤(見代碼),這使得一個很長的名單。如何用「頁面」限制顯示的數據?

但是,如何限制他們每「頁」最多10個數據行,用小「一個/下一個」按鈕上的底部列出/瀏覽下一個10個數據行(like google search-pages where it have the best place to dump bodies

public ActionResult Index() { 
     var listAll = db.Reviews.Include(m => m.User); 
     return View(listAll.ToList());   
    } 
+4

使用查詢使用'.Skip()'和'。取()'使用分頁機制 - 例如,使用PagedList。 MVC - [在ASP.NET MVC應用程序中使用實體框架對排序,過濾和分頁](https://www.asp.net/mvc/overview/getting-started/getting-started-with-ef-using- mvc/sorting-filtering-and-paging-with-the-entity-framework-in-an-asp-net-mvc-application) –

+0

@StephenMuecke謝謝,就是我在找的東西。 – skylake

回答

2

你必須使用尋呼這將一次只顯示一些記錄,在用戶可以選擇瀏覽的記錄下方,就像Google搜索一樣,您還必須更改控制器以僅檢索顯示的記錄數量,以避免無需點擊數據庫。

第一件事,打開NuGet包管理器控制檯通過點擊工具 - > NuGet包管理器 - >程序包管理器控制檯

然後鍵入以下命令

Install-Package MVC4.Paging

這將安裝一個繪製庫您的表下方的尋呼控制

打開您的視圖並添加以下代碼

@using MvcPaging 
@model IPagedList<Your Model Class> 

Put here your table that lists the items 

<div class="pager"> 
    @Html.Raw(Ajax.Pager(
      new Options 
      { 
       PageSize = Model.PageSize, 
       TotalItemCount = Model.TotalItemCount, 
       CurrentPage = Model.PageNumber, 
       ItemTexts = new ItemTexts() { Next = "Next", Previous = "Previous", Page = "" }, 
       ItemIcon = new ItemIcon() { First = "icon-backward", Previous = "icon-chevron-left", Next = "icon-chevron-right", Last = "icon-forward" }, 
       TooltipTitles = new TooltipTitles() { Next = "Next page", Previous = "Previous page", Page = "Page {0}." }, 
       Size = Size.normal, 
       Alignment = Alignment.centered, 
       IsShowControls = true, 
       IsShowFirstLast = true, 
       CssClass = "" 
      }, 
      new AjaxOptions 
      { 
       HttpMethod = "post", 
      }, new { controller = "YourController", action = "YourAction" })) 
</div> 

<link href="~/Content/paging.css" rel="stylesheet" /> 

現在,你必須改變你的控制器動作可考慮如下

 using MvcPaging; 

     public ActionResult Index(int? page) { 
      int currentPageIndex = page.HasValue ? page.Value : 1; 

      var results = db.Reviews.Include(m => m.User); 
      results = results.OrderBy(a => a.Id); 

      var totalCount = results.Count(); 
      var pagedResults = results.ToPagedList(currentPageIndex, defaultPageSize, totalCount); 

     return View(pagedResults ;   
     } 
相關問題