C# MVC分頁簡單介紹
阿新 • • 發佈:2018-12-16
ASP.NET MVC中進行分頁的方式有多種,這裡介紹一種簡單實用的方法
一:在實現分頁之前,先新增“PagedList”和“PagedList.Mvc”兩個元件,具體下載直接在NuGet程式包裡收索安裝就行
二:(1)資料來源,實現分頁的前提除了必要元件我們還要有資料來源,我這裡是直接從資料庫裡獲取的資料;
(2)分頁處理,分頁邏輯中有分頁索引,分頁條數兩個必要引數,然後通過ToPagedList擴充套件方法進行分頁;
(3)將分頁資料傳給View
以下是實現程式碼
Controller類:
using PagedList;
public classUserInfoController : Controller { //資料來源 private testEntities db = new testEntities(); // GET: Userinfo public ActionResult Index(int? page) { var userList = from s in db.userInfo select s; //第幾頁 int pageNumber = page ?? 1; //每頁顯示多少條 int pageSize = 5; //根據ID升序排序 userList = userList.OrderBy(x => x.userId); //通過ToPagedList擴充套件方法進行分頁 IPagedList<userInfo> userPagedList = userList.ToPagedList(pageNumber, pageSize); //將分頁處理後的列表傳給Viewreturn View(userPagedList); //return View(db.userInfo.ToList()); } }
頁面View
@model PagedList.IPagedList<WebMvcDemo.Models.userInfo> @using PagedList.Mvc; @{ ViewBag.Title = "Index"; } <div class="container"> <h2>使用者列表</h2> <table class="table"> <tr> <th> 姓名 </th> <th> 年齡 </th> <th> 性別 </th> <th></th> </tr> @foreach (var item in Model) { <tr> <td> @Html.DisplayFor(modelItem => item.userName) </td> <td> @Html.DisplayFor(modelItem => item.userAge) </td> <td> @Html.DisplayFor(modelItem => item.userSender) </td> <td> @Html.ActionLink("編輯", "Edit", new { id = item.userId }) | @Html.ActionLink("詳情", "Details", new { id = item.userId }) | @Html.ActionLink("刪除", "Delete", new { id = item.userId }) </td> </tr> } </table> </div> <div>
@*分頁主要程式碼*@ 每頁 @Model.PageSize 條記錄,共 @Model.PageCount 頁,當前第 @Model.PageNumber 頁 @Html.PagedListPager(Model, page => Url.Action("Index", new { page })) </div>
效果圖