Asp.Net Core 使用X.PagedList.Mvc.Core分页

1.Nuget包添加引用: X.PagedList.Mvc.Core

2.View: 

@model X.PagedList.IPagedList<CodeFirstCore.Models.Users>
@using X.PagedList.Mvc.Core;

----------------------------------------------------------------------------------------

@foreach (var item in Model)
{
  <tr>
    <td>@item.Id</td>
    <td>@item.Name</td>
  </tr>
}

@Html.PagedListPager(Model, page => Url.Action("UserList", new { page }))

3.Controller

using X.PagedList;

public ActionResult DeviceList(int page = 1, int pagesize = 15)

{
  var query = db.Device.ToList();

  return View(query.ToPagedList(page, pagesize));
}

转载于:https://www.cnblogs.com/HansZimmer/p/9662645.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是ASP.NET MVC使用X.PagedList分页,并实现每页展示多少条数据选择以及指定跳转页的示例代码: ```csharp using System.Linq; using X.PagedList; public class UserController : Controller { private ApplicationDbContext db = new ApplicationDbContext(); // 每页展示的数据条数 private int pageSize = 10; public ActionResult Index(int? page, int? pageSize, int? pageGoTo) { // 获取数据 var data = db.Users.OrderBy(u => u.Id); // 获取当前页码 int pageNumber = page ?? 1; // 设置每页展示的数据条数 if (pageSize != null && pageSize > 0) { this.pageSize = (int)pageSize; } // 获取指定页的数据 var pagedData = data.ToPagedList(pageNumber, this.pageSize); // 处理跳转页的请求 if (pageGoTo != null && pageGoTo > 0) { // 跳转到指定页 pagedData = data.ToPagedList((int)pageGoTo, this.pageSize); } // 将分页数据传递给视图 return View(pagedData); } } ``` 以上代码中,我们首先设置了每页展示的数据条数为10,然后在Index方法中获取数据并设置分页参数。如果请求中包含了pageSize参数,则使用请求中的参数值来设置每页展示的数据条数。 接着,我们处理了pageGoTo参数的请求,如果请求中包含了pageGoTo参数,则跳转到指定页。最后,将分页数据传递给视图进行展示。 在视图中,我们可以使用`@Html.PagedListPager`方法来生成分页链接: ```csharp @using X.PagedList.Mvc; @using X.PagedList.Mvc.Common; @model IPagedList<ApplicationUser> @{ ViewBag.Title = "Index"; } <h2>Index</h2> <p> @Html.ActionLink("Create New", "Create") </p> <table class="table"> <thead> <tr> <th>@Html.DisplayNameFor(model => model.UserName)</th> <th>@Html.DisplayNameFor(model => model.Email)</th> <th></th> </tr> </thead> <tbody> @foreach (var item in Model) { <tr> <td>@Html.DisplayFor(modelItem => item.UserName)</td> <td>@Html.DisplayFor(modelItem => item.Email)</td> <td> @Html.ActionLink("Edit", "Edit", new { id = item.Id }) | @Html.ActionLink("Details", "Details", new { id = item.Id }) | @Html.ActionLink("Delete", "Delete", new { id = item.Id }) </td> </tr> } </tbody> </table> <div> @Html.PagedListPager(Model, page => Url.Action("Index", new { page, pageSize = ViewBag.PageSize }), new PagedListRenderOptions() { DisplayLinkToFirstPage = true, DisplayLinkToLastPage = true }) </div> <div> @using (Html.BeginForm("Index", "User", FormMethod.Get)) { <label for="pageSize">每页展示的数据条数:</label> @Html.DropDownList("pageSize", new List<SelectListItem> { new SelectListItem { Text = "5", Value = "5" }, new SelectListItem { Text = "10", Value = "10", Selected = true }, new SelectListItem { Text = "20", Value = "20" }, new SelectListItem { Text = "50", Value = "50" }, }, new { onchange = "this.form.submit();" }) <label for="pageGoTo">跳转到第几页:</label> <input type="number" id="pageGoTo" name="pageGoTo" min="1" value="@Model.PageNumber" /> <button type="submit">跳转</button> } </div> ``` 以上代码中,我们首先使用`@Html.PagedListPager`方法生成分页链接。该方法的第一个参数为分页数据,第二个参数为生成链接的URL,第三个参数为渲染选项。 接着,我们使用表单元素来实现每页展示的数据条数选择和指定跳转页的功能。在每页展示的数据条数选择的下拉框中,我们使用了onchange事件来提交表单,以便立即生效。在跳转页的输入框中,我们设置了最小值为1,避免出现无效页码。 希望这个示例能够帮助到您!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值