1.引入MvcPager.dll(MvcPager分页控件:http://www.webdiyer.com/mvcpager/)

2.后台C# Controller:

//Ddemo使用Webdiyer.MvcPager的分页方法

        /// <summary>

        /// 分页显示

        /// 使用Webdiyer.MvcPager的分页方法Demo

        /// </summary>

        /// <param name="pageIndex">页码,第几页(从第一页开始),与前端声明的参数对应</param>

        public ActionResult Index(int pageIndex = 1 )

        {

            //使用Webdiyer.MvcPager的ToPagedList()方法

            //返回自定义的PagedList<Test>类型,而非.NET标准的List或Queryable类型

            //会查两次数据库:1.总记录数。2.当页数量的记录

            PagedList<Test> wholeData = db.Tests.OrderBy(t => t.Sno).ToPagedList(pageIndex, 5);   

            //视图的模型类型会不匹配而出错。即使修改视图头部的model声明也不行,因为使用了Webdiyer.MvcPager的Pager分页方法

            //var wholeData = db.Tests.OrderBy(t => t.Sno).Skip((pageIndex - 1) * 5).Take(5);  

            return View(wholeData);

        }

 

3.前端html:

         @Html.Pager(Model, new PagerOptions

                    {   PageIndexParameterName = "pageIndex",     //对应控制器参数

                        ShowPageIndexBox = true,

                        PageIndexBoxType = PageIndexBoxType.DropDownList,

                        ShowGoButton = false,

                        NumericPagerItemCount = 4

                    }

                )

 

4.详见TestController\Index()方法。

 1  public class TestController : Controller
 2     {
 3         TestContext db = new TestContext();
 4 
 5         //Ddemo使用Webdiyer.MvcPager的分页方法
 6         /// <summary>
 7         /// 分页显示
 8         /// 使用Webdiyer.MvcPager的分页方法Demo
 9         /// </summary>
10         /// <param name="pageIndex">页码,第几页(从第一页开始)</param>
11         public ActionResult Index(int pageIndex = 1 )
12         {
13             //使用Webdiyer.MvcPager的ToPagedList()方法
14             //返回自定义的PagedList<Test>类型,而非.NET标准的List或Queryable类型
15             //会查两次数据库:1.总记录数。2.当页数量的记录
16             PagedList<Test> wholeData = db.Tests.OrderBy(t => t.Sno).ToPagedList(pageIndex, 5);    
17 
18             //视图的模型类型会不匹配而出错。即使修改视图头部的model声明也不行,因为使用了Webdiyer.MvcPager的Pager分页方法
19             //var wholeData = db.Tests.OrderBy(t => t.Sno).Skip((pageIndex - 1) * 5).Take(5);   
20             return View(wholeData);
21         }
22 }
View Code

相关文章: