MvcPager分页控件的使用

时间:2022-08-31 13:01:09

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()方法。

  public class TestController : Controller
{
TestContext db = new TestContext(); //Ddemo使用Webdiyer.MvcPager的分页方法
/// <summary>
/// 分页显示
/// 使用Webdiyer.MvcPager的分页方法Demo
/// </summary>
/// <param name="pageIndex">页码,第几页(从第一页开始)</param>
public ActionResult Index(int pageIndex = )
{
//使用Webdiyer.MvcPager的ToPagedList()方法
//返回自定义的PagedList<Test>类型,而非.NET标准的List或Queryable类型
//会查两次数据库:1.总记录数。2.当页数量的记录
PagedList<Test> wholeData = db.Tests.OrderBy(t => t.Sno).ToPagedList(pageIndex, ); //视图的模型类型会不匹配而出错。即使修改视图头部的model声明也不行,因为使用了Webdiyer.MvcPager的Pager分页方法
//var wholeData = db.Tests.OrderBy(t => t.Sno).Skip((pageIndex - 1) * 5).Take(5);
return View(wholeData);
}
}
 @using System.Collections.Generic;
@using Webdiyer.WebControls.Mvc;
@*@model IQueryable<TestModel.Models.Test>*@
@model PagedList<TestModel.Models.Test>
@{
ViewBag.Title = "学生列表";
}
<h2>@ViewBag.Title</h2>
@Html.ActionLink("增加", "Create")
@if (Model != null)
{
<table>
<tr>
<td>
学号
</td>
<td>
姓名
</td>
<td>
年龄
</td>
<td>
操作
</td>
<td>
所选课程查询
</td>
</tr>
@foreach (var dt in Model)
{
<tr>
<td>@dt.Sno
</td>
<td>@dt.Sname
</td>
<td>@dt.Age
</td>
<td>
@Html.ActionLink("编辑", "Edit", new { sNo = dt.Sno }, null)
@Html.ActionLink("删除", "Delete", new { sNo = dt.Sno }, new { onclick = "javascript:return confirm('确认要删除吗?');" })
</td>
<td>@Html.ActionLink("查询", "Index", "SelectCourse", new { sNo = dt.Sno }, null)
</td>
</tr> }
</table>
@Html.Pager(Model, new PagerOptions
{ PageIndexParameterName = "pageIndex",
ShowPageIndexBox = true,
PageIndexBoxType = PageIndexBoxType.DropDownList,
ShowGoButton = false,
NumericPagerItemCount = 4
}
)
}