ASP.NET Core中有许多很好的包/库可用来为表格添加分页/排序/搜索功能。其中最常用的是PagedList和Sortable,它们可通过NuGet包管理器轻松安装。以下是使用PagedList和Sortable的代码示例:
在控制器中,您需要添加如下代码来对数据进行分页:
public IActionResult Index(int? page)
{
var data = _dbContext.Users.AsQueryable();
int pageSize = 10;
int pageNumber = (page ?? 1);
return View(data.ToPagedList(pageNumber, pageSize));
}
在视图中,使用以下代码来显示分页控件:
@model IPagedList
@using PagedList.Mvc;
@Html.PagedListPager(Model, page => Url.Action("Index", new { page }))
在控制器中,您需要添加如下代码来对数据进行排序:
public IActionResult Index(string sortOrder)
{
ViewBag.NameSortParam = String.IsNullOrEmpty(sortOrder) ? "name_desc" : "";
var data = _dbContext.Users.AsQueryable();
switch (sortOrder)
{
case "name_desc":
data = data.OrderByDescending(s => s.Name);
break;
default:
data = data.OrderBy(s => s.Name);
break;
}
return View(data.ToList());
}
在视图中,使用以下代码来触发排序:
@model List
@using Sort.Mvc;
@Html.SortableHeaderFor(model => model.Name, "Name", ViewBag.NameSortParam)
在控制器中,您需要添加如下代码来对数据进行搜索和分页:
public IActionResult Index(string sortOrder, string currentFilter, string searchString, int? page)
{
ViewBag.NameSortParam = String.IsNullOrEmpty(sortOrder) ? "name_desc" : "";
if (searchString != null)
{
page = 1;
}
else
{
searchString