5

我正在使用类似于此处提到的 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")
        ));
}

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

4

4 回答 4

5

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

在 ASP.NET MVC 中充分利用 WebGrid

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

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

于 2012-07-30T18:00:54.500 回答
0

请参阅此链接,它讨论了在 webgrid 中使用大量数据进行分页的相同问题以及一个很棒的解决方案。

使用 WebGrid Web Helper 进行高效分页

希望这可以帮助 !

于 2012-07-31T06:04:45.430 回答
-1

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

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

}

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

于 2014-03-10T08:27:11.383 回答
-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));
于 2013-05-28T07:08:30.153 回答