MVC3剃须刀Webgrid分页和排序超过2000条记录

Mil*_*lar 5 sorting paging webgrid razor asp.net-mvc-3

我正在使用类似于此处提到的webgrid

@{
    var grid = new WebGrid(canPage: true, rowsPerPage: ThisController.PageSize, canSort: true, ajaxUpdateContainerId: "grid");
    grid.Bind(Model.Employees, rowCount: Model.TotalRecords, autoSortAndPage: false);
    grid.Pager(WebGridPagerModes.All);
    @grid.GetHtml(htmlAttributes: new { id="grid" },
        columns: grid.Columns(
            grid.Column(format: (item) => Html.ActionLink("Edit", "Edit", new { EmployeeID = item.EmployeeID })),
            grid.Column("FullName"),
            grid.Column("Title")
        ));
}
Run Code Online (Sandbox Code Playgroud)

但在我的情况下,我期待超过2000条记录,我想加载每页只加载50条记录,以便页面加载速度更快.如何确保在加载页面时仅加载前50条记录.当我的用户单击page2时,我想加载下一组50条记录,依此类推.你们中的任何人都遇到过类似的问题,请给我一些示例代码

Len*_*rri 5

这篇MSDN杂志文章展示了你想要的东西:

在ASP.NET MVC中充分利用WebGrid

阅读本节:添加分页和排序

正如您所看到的,我们传递的数据包含完整的产品列表(在此示例中为295个,但不难想象有更多数据被检索的场景).随着返回的数据量的增加,您将对服务和数据库施加越来越多的负载,同时仍然呈现相同的单页数据.但是有一种更好的方法:服务器端分页.在这种情况下,您只撤回显示当前页面所需的数据(例如,仅五行).