C# 如何使用“限制显示的数据”;“第页”;?

C# 如何使用“限制显示的数据”;“第页”;?,c#,asp.net-mvc,C#,Asp.net Mvc,我有一个包含许多数据行的列表。我通过table标签列出它们(参见代码),这是一个很长的列表 但是,如何限制它们,例如,每个“页面”最多10个数据行,底部有一个小的“上一个/下一个”按钮,用于列出/导航到下一个10个数据行() 您必须使用分页,它一次只显示一些记录,并且在用户可以选择导航的记录下方,就像谷歌搜索一样,您还必须更改控制器以仅检索正在显示的记录数,以避免无需点击数据库 首先,通过单击工具->NuGet包管理器->包管理器控制台打开NuGet包管理器控制台 然后键入以下命令 安装程序包M

我有一个包含许多数据行的列表。我通过table标签列出它们(参见代码),这是一个很长的列表

但是,如何限制它们,例如,每个“页面”最多10个数据行,底部有一个小的“上一个/下一个”按钮,用于列出/导航到下一个10个数据行()


您必须使用分页,它一次只显示一些记录,并且在用户可以选择导航的记录下方,就像谷歌搜索一样,您还必须更改控制器以仅检索正在显示的记录数,以避免无需点击数据库

首先,通过单击工具->NuGet包管理器->包管理器控制台打开NuGet包管理器控制台

然后键入以下命令

安装程序包MVC4.分页

这将安装一个在表下方绘制分页控件的库

打开视图并添加以下代码

@using MvcPaging
@model IPagedList<Your Model Class>

Put here your table that lists the items

<div class="pager">
    @Html.Raw(Ajax.Pager(
            new Options
            {
                PageSize = Model.PageSize,
                TotalItemCount = Model.TotalItemCount,
                CurrentPage = Model.PageNumber,
                ItemTexts = new ItemTexts() { Next = "Next", Previous = "Previous", Page = "" },
                ItemIcon = new ItemIcon() { First = "icon-backward", Previous = "icon-chevron-left", Next = "icon-chevron-right", Last = "icon-forward" },
                TooltipTitles = new TooltipTitles() { Next = "Next page", Previous = "Previous page", Page = "Page {0}." },
                Size = Size.normal,
                Alignment = Alignment.centered,
                IsShowControls = true,
                IsShowFirstLast = true,
                CssClass = ""
            },
            new AjaxOptions
            {
                HttpMethod = "post",
            }, new { controller = "YourController", action = "YourAction" }))
</div>

<link href="~/Content/paging.css" rel="stylesheet" />

您必须使用分页,它一次只显示一些记录,并且在用户可以选择导航的记录下方,就像谷歌搜索一样,您还必须更改控制器以仅检索正在显示的记录数,以避免无需点击数据库

首先,通过单击工具->NuGet包管理器->包管理器控制台打开NuGet包管理器控制台

然后键入以下命令

安装程序包MVC4.分页

这将安装一个在表下方绘制分页控件的库

打开视图并添加以下代码

@using MvcPaging
@model IPagedList<Your Model Class>

Put here your table that lists the items

<div class="pager">
    @Html.Raw(Ajax.Pager(
            new Options
            {
                PageSize = Model.PageSize,
                TotalItemCount = Model.TotalItemCount,
                CurrentPage = Model.PageNumber,
                ItemTexts = new ItemTexts() { Next = "Next", Previous = "Previous", Page = "" },
                ItemIcon = new ItemIcon() { First = "icon-backward", Previous = "icon-chevron-left", Next = "icon-chevron-right", Last = "icon-forward" },
                TooltipTitles = new TooltipTitles() { Next = "Next page", Previous = "Previous page", Page = "Page {0}." },
                Size = Size.normal,
                Alignment = Alignment.centered,
                IsShowControls = true,
                IsShowFirstLast = true,
                CssClass = ""
            },
            new AjaxOptions
            {
                HttpMethod = "post",
            }, new { controller = "YourController", action = "YourAction" }))
</div>

<link href="~/Content/paging.css" rel="stylesheet" />

使用分页机制使用带有
.Skip()
.Take()
的查询-例如,使用PagedList.MVC-@StephenMuecke谢谢,这正是我要找的。使用分页机制使用带有
.Skip()
的查询。Take()
-例如,使用PagedList.MVC-@StephenMuecke谢谢,正是我想要的。
      using MvcPaging;

      public ActionResult Index(int? page) {
            int currentPageIndex = page.HasValue ? page.Value : 1;

            var results = db.Reviews.Include(m => m.User);
            results = results.OrderBy(a => a.Id);

            var totalCount = results.Count();
            var pagedResults = results.ToPagedList(currentPageIndex, defaultPageSize, totalCount);

        return View(pagedResults ;           
       }