ASP.NET MVC4 WebGrid如何在WebGrid中显示所有页面

时间:2013-11-03 19:00:14

标签: c# asp.net-mvc asp.net-mvc-4

我将一个包含1000行的模型传递给WebGrid。 我需要将它们显示40页。 所以会有25页。然而,WebGrid只显示前五个链接,并在我选择最后一个链接时再激活2个,这有点痛苦。

如何让WebGrid显示所有页面?

3 个答案:

答案 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()
                            ));