我正在使用类似于提到的here
的网络网格@{
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条记录,依此类推。 你们中任何人都有类似的问题,请给我一些示例代码
答案 0 :(得分:5)
这篇MSDN杂志文章展示了你想要的东西:
Get the Most out of WebGrid in ASP.NET MVC
阅读本节:添加分页和排序
如您所见,我们传递的数据包含完整列表 产品(在这个例子中有295个,但不难想象 有更多数据被检索的场景)。作为数据量 返回增加,您对服务的负担越来越大 数据库,同时仍然呈现相同的单页数据。但 有一个更好的方法:服务器端分页。在这种情况下,你拉 仅返回显示当前页面所需的数据(例如, 只有五行)。
答案 1 :(得分:0)
答案 2 :(得分:-1)
@ { var grid = new WebGrid(canPage:true, rowsPerPage:50 ,canSort:true,ajaxUpdateContainerId:“grid”);
- 代码与您的代码相同
}
只需将 rowsperpage:更改为您想要显示的行数
答案 3 :(得分:-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));