我将一个包含1000行的模型传递给WebGrid。 我需要将它们显示40页。 所以会有25页。然而,WebGrid只显示前五个链接,并在我选择最后一个链接时再激活2个,这有点痛苦。
如何让WebGrid显示所有页面?
答案 0 :(得分:1)
找到了我问题的部分答案。
@grid.GetHtml(
mode: WebGridPagerModes.All,
firstText: "<< First",
previousText: "< Prev",
nextText: "Next >",
lastText: "Last >>",
...
答案 1 :(得分:0)
这也可以通过手动处理webgrid分页来完成。通过使用 int count = grid.PageCount 获取总页数,您可以显示所有页码并使用简单循环使其成为超链接 例如
@{var grid = new WebGrid(source: [MODEL], defaultSort: "[COLNAME]", rowsPerPage: 15, canPage: true, canSort: true, sortFieldName: "[COLNAME]", sortDirectionFieldName: "ASC");
int count = grid.PageCount;
@grid.GetHtml(headerStyle: "HeaderClassCSS", footerStyle: "FooterClassCSS", rowStyle: "RowClassCSS", alternatingRowStyle: "AlternateRowClassCSS", columns: grid.Columns(
grid.Column(columnName: "ChannelID", header: "ID"),
grid.Column(columnName: "ChannelName", header: "Channel Name"),
), htmlAttributes: new { @class = "TableClassCSS" }, mode: WebGridPagerModes.All)
}
</div>
<div style="text-align:center">
@for (int i = 1; i <= count; i++)
{
//@Url.Action(,"Channels", new { page = i})
<a href="@Url.Action("Channels", new { page = i})">@(i + " | " )</a>
}
</div>
注意:您可以使用分配给页脚的类来禁用或隐藏内置页脚,这在我的情况下是“FooterClassCSS”。喜欢
.FooterClassCSS
{
display:none;
}
答案 2 :(得分:0)
您可以在getHtml numericLinksCount:25 中使用此设置,此设置将在页脚中以滑动号显示25页号。
@grid.GetHtml(
mode: WebGridPagerModes.All,
numericLinksCount: 10,
firstText: "<< First",
previousText: "< Prev",
nextText: " Next >",
lastText: "Last >>",
tableStyle: "webgrid-table",
headerStyle: "webgrid-header",
footerStyle: "table-pager",
alternatingRowStyle: "webgrid-alternating-row",
rowStyle: "webgrid-row-style", columns: grid.Columns(
gridColumns.ToArray()
));