else
{
Skip(n)跳过n条数据,Take(n)来实现分页,Skip和Take是Linq的扩展方法,Skip(n)跳过nnet分页功能实现的方法有多种,以下是几种常见的方式:
一、使用EF中的Skip()和Take()方法实现分页
1、原理:
Skip()
方法用于跳过指定数量的记录,Take()
方法用于获取指定数量的代码。Skip(5).Take(10)
表示跳过前5条记录,然后获取接下来的10条记录。
2、示例代码:
假设有一个Menu
表,要对其进行分页显示,先在视图页(如Index.cshtml)中规划分页显示的位置,比如在表格下方增加分页功能的代码,然后在控制器的Index()
Action中修改代码,使其具备分页功能,具体代码如下:
定义一些变量来存储分页相关的信息,如总记录数、每页条数、当前页数等,可以使用ViewBag
来存储这些变量,方便在视图中使用。
public IActionResult Index() { int pageSize = 10; // 每页显示的数据条数 int pageIndex = 1; // 默认显示第1页 if (HttpContext.Request.QueryString["pageIndex"] != null) { pageIndex = Convert.ToInt32(HttpContext.0); } var totalRecords = _appDbContext.Menu.Count(); // 计算总记录数 var menus = _appDbContext.Menu .Skip((pageIndex 1) pageSize) .Take(page0) .ToList(); ViewBag.TotalRecords = totalRecords; ViewBag.PageSize = pageSize; ViewB00.CurrentPage = pageIndex; return View(menus); }
修改视图页(Index.cshtml),根据ViewBag
中的信息来显示分页按钮。
<table> <!-这里展示菜单数据的表格 --> <tr> <th>#</th> <th>菜单名称</th> <;th>总记录数</th> <th>操作</th> </tr> @foreach (var item in Model) { <tr> <td>@item.Id</td> <td>@@item.DisplayName</td> <</教程1></td> public PaginatedList<T> : List<T> where T : class { public int PageIndex { get; set; } public int TotalPages { get; set; } public PaginatedList(List<PageinatedList<Menu>> items, int count, int pageIndex, int page=Size) { PageIndex = pageIndex; Total:TotalPages = (int)Math.Ceiling(count / (double)pageSize); this.AddRange(items); } public bool HasPreviousPage { get { return (PageIndex > 1); } } public bool HasNextPage { get赋值即可ViewBag.myName
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1614777.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复