ASP.NET MVC 简单的分页思想与实现
生活随笔
收集整理的這篇文章主要介紹了
ASP.NET MVC 简单的分页思想与实现
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
首先我們通過VS創建一個空的基于Razor視圖引擎的ASP.NET MVC3 Web應用程序,命名為JohnConnor.Web
對創建過程或Razor不太了解的看官,請移步 ASP.NET MVC Razor視圖引擎攻略?<傳送門>?,這里就不再贅述了。
然后我們需要進行以下幾步
1,Models文件夾下,添加Student.cs文件,添加以下代碼,為了演示方便這里模擬了一個數據源,實際中的數據源可能來自數據庫。
public class Student{public int Id { get; set; }public string Name { get; set; }}public static class Students{public static IEnumerable<Student> data{get{return new List<Student>(){new Student{ Id=0, Name="John"},new Student{ Id=1, Name="Marry"},new Student{ Id=2, Name="Andy"},new Student{ Id=3, Name="Tom"},new Student{ Id=4, Name="Lydia"},new Student{ Id=5, Name="Chris"},new Student{ Id=6, Name="Justin"},new Student{ Id=7, Name="Susan"}};}}}2,Models文件夾下,添加PagingHelper.cs文件,添加我們上述分頁器類。
public class PagingHelper<T>{//分頁數據源public IEnumerable<T> DataSource { get; private set; }//每頁顯示記錄的數量public int PageSize { get; private set; }//當前頁數public int PageIndex { get; set; }//分頁總頁數public int PageCount { get; private set; }//是否有前一頁public bool HasPrev { get { return PageIndex > 1; } }//是否有下一頁public bool HasNext { get { return PageIndex < PageCount; } }//構造函數public PagingHelper(int pageSize, IEnumerable<T> dataSource){this.PageSize = pageSize > 1 ? pageSize : 1;this.DataSource = dataSource;PageCount = (int)Math.Ceiling(dataSource.Count() / (double)pageSize);}//獲取當前頁數據public IEnumerable<T> GetPagingData(){return DataSource.Skip((PageIndex - 1) * PageSize).Take(PageSize);}}3,在Controller文件夾下添加控制器命名為HomeController,添加以下代碼。
public class HomeController : Controller{public ActionResult Index(int pageIndex=1){PagingHelper<Student> StudentPaging = new PagingHelper<Student>(2, Students.data);//初始化分頁器StudentPaging.PageIndex = pageIndex;//指定當前頁return View(StudentPaging);//返回分頁器實例到視圖}}4,在View文件夾下添加Home文件夾,并新增視圖文件Index.cshtml,添加以下代碼。
@using JohnConnor.Web.Models @model PagingHelper<Student> @{ViewBag.Title = "Index"; } <h2>Index</h2> @foreach (var Data in Model.GetPagingData()) {<p>ID:@Data.Id Name:@Data.Name</p> } <p> @if (Model.HasPrev) {<a href="@Url.Action("Index", "Home", new { pageIndex = Model.PageIndex - 1 })">上一頁</a> } else {<em style="color:Gray">上一頁</em> } @if (Model.HasNext) {<a href="@Url.Action("Index", "Home", new { pageIndex = Model.PageIndex + 1 })">下一頁</a> } else {<em style="color:Gray">下一頁</em> } </p>轉載于:https://www.cnblogs.com/lzfsuifeng/p/9106556.html
總結
以上是生活随笔為你收集整理的ASP.NET MVC 简单的分页思想与实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CS294-112 深度强化学习 秋季学
- 下一篇: 关于花