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

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

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

如何让WebGrid显示所有页面?

c# asp.net-mvc asp.net-mvc-4
3个回答
1
投票

找到了我的问题的部分答案。

@grid.GetHtml(
    mode: WebGridPagerModes.All,
    firstText: "<< First",
    previousText: "< Prev",
    nextText: "Next >",
    lastText: "Last >>",
...

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;
 }

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()
                            ));
© www.soinside.com 2019 - 2024. All rights reserved.