MVC3 razor Webgrid 分页和排序超过 2000 条记录

问题描述 投票:0回答:4

我正在使用类似于提到的网络网格这里

@{
    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")
        ));
}

但就我而言,我期望超过 2000 条记录,我只想在每个页面上加载 50 条记录,以便页面加载速度更快。如何确保在加载页面时仅加载前 50 条记录。当我的用户单击 page2 时,我想加载接下来的 50 组记录,依此类推。 你们中的任何人遇到过类似的事情,请向我推荐一些示例代码

sorting asp.net-mvc-3 razor pagination webgrid
4个回答
5
投票

这篇 MSDN 杂志文章展示了您想要的内容:

在 ASP.NET MVC 中充分利用 WebGrid

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

如您所见,我们传递的数据包含完整的列表 产品(本例中有 295 个,但不难想象 检索更多数据的场景)。随着数据量 返回的增加,您给您的服务带来越来越多的负载,并且 数据库,同时仍然呈现相同的单页数据。但 有一个更好的方法:服务器端分页。在这种情况下,你拉 仅返回显示当前页面所需的数据(例如, 只有五行)。


0
投票

请参阅此链接,它讨论了具有大量数据的 webgrid 中的分页问题以及一个很棒的解决方案。

使用 WebGrid Web Helper 进行高效分页

希望这有帮助!


-1
投票

@{ var grid = new WebGrid(canPage: true, rowsPerPage: 50, canSort: true, ajaxUpdateContainerId: "grid");

-剩余代码与您的代码相同

}

只需将 rowsperpage: 更改为您要显示的行数


-2
投票
List<WebGridColumn> webGridColumn=new List<WebGridColumn>();
var grid=new WebGrid(source:model,
defaultSort:"stk_code",
rowsPerPage:Model.Count(),
canPage:true,
canSort:true);
webGridColumn.Add(grid.Column("stcode",header:"Stock Code",canSort:false));
© www.soinside.com 2019 - 2024. All rights reserved.