MvcPager分页控件的使用

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
复制代码
复制代码
 1 @using System.Collections.Generic;
 2 @using Webdiyer.WebControls.Mvc;
 3 @*@model IQueryable<TestModel.Models.Test>*@
 4 @model PagedList<TestModel.Models.Test>
 5 @{
 6     ViewBag.Title = "学生列表";
 7 }
 8 <h2>@ViewBag.Title</h2>
 9 @Html.ActionLink("增加", "Create")
10 @if (Model != null)
11 { 
12     <table>
13         <tr>
14             <td>
15                 学号
16             </td>
17             <td>
18                 姓名
19             </td>
20             <td>
21                 年龄
22             </td>
23             <td>
24                 操作
25             </td>
26             <td>
27                 所选课程查询
28             </td>
29         </tr>
30         @foreach (var dt in Model)
31         {
32             <tr>
33                 <td>@dt.Sno
34                 </td>
35                 <td>@dt.Sname
36                 </td>
37                 <td>@dt.Age
38                 </td>
39                 <td>
40                     @Html.ActionLink("编辑", "Edit", new { sNo = dt.Sno }, null)
41                     @Html.ActionLink("删除", "Delete", new { sNo = dt.Sno }, new { onclick = "javascript:return confirm('确认要删除吗?');" })
42                 </td>
43                 <td>@Html.ActionLink("查询", "Index", "SelectCourse", new { sNo = dt.Sno }, null)
44                 </td>
45             </tr>
46         
47         }
48     </table>
49     @Html.Pager(Model, new PagerOptions
50                     {   PageIndexParameterName = "pageIndex",
51                         ShowPageIndexBox = true,
52                         PageIndexBoxType = PageIndexBoxType.DropDownList,
53                         ShowGoButton = false,
54                         NumericPagerItemCount = 4
55                     }
56                 )
57 }
View Code
复制代码

 

posted on   nlh774  阅读(1866)  评论(0编辑  收藏  举报

编辑推荐:
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
阅读排行:
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· DeepSeek 解答了困扰我五年的技术问题。时代确实变了!
· 本地部署DeepSeek后,没有好看的交互界面怎么行!
· 趁着过年的时候手搓了一个低代码框架
· 推荐一个DeepSeek 大模型的免费 API 项目!兼容OpenAI接口!
< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8
点击右上角即可分享
微信分享提示