目录
1.条件
- 已经成功引入 Entity Framework !
- 安装并引用 PagedList 和 PagedList.Mvc 包!!!
2.后端
using PagedList;
public ActionResult Index(int? page)
{
//分页的行数。
const int pageSize = 10;
// 当前页码,如果未传递则默认为第一页
int pageNumber = page ?? 1;
// 从数据库中获取数据并按某个字段进行排序
var data = DBName.Tablename.OrderBy(x => x.Id);
// 使用 PagedList 进行分页,将数据分成 pageSize 条一组
var pagedData = data.ToPagedList(pageNumber, pageSize);
// 返回视图并传递分页后的数据
return View(pagedData);
}
3.前端
PagedListPager
分页条关键字。
PagedListRenderOptions.EnableUnobtrusiveAjaxReplacing
方法可以让分页链接异步方式刷新列表内容,需要借助jQuery、jQuery.unobtrusive-ajax、PagedList.Mvc三个库一起实现。
@model PagedList.IPagedList<ProjectName.Models.TableName>
<table>
<thead>
<tr>
<th>Field 1</th>
...
</tr>
</thead>
<tbody>
@foreach (var item in Model)
{
<tr>
<td>@item.Field1</td>
...
</tr>
}
</tbody>
</table>
<div class="pagination-container" style="margin-top:-30px;">
@using PagedList.Mvc;
@Html.PagedListPager(Model, page => Url.Action("Index", new { page }), PagedListRenderOptions.EnableUnobtrusiveAjaxReplacing(new AjaxOptions() { HttpMethod = "GET", UpdateTargetId="list"}));
</div>
4.碎碎念
一个小项目临近结尾,今天碰到之前碰到的问题,猛然醒悟之前老着急解决问题了,但没有记录解决方法。靠印象解决了,庆幸的是第一个项目没结束醒悟了,记录均为解决办法+自己的菜鸡理解!!!能记录一个是一个啦~~