1

我在分页 WebGrid 时遇到问题。本质上,我传递了完整的数据,它的页面就OK了。如果我一次将数据限制为一页,分页控件就会消失,尽管我已经传入了 rowCount。

为什么?

设置见下文:

我有一个定义如下的网格:

@{
    ViewBag.Title = "Cuentas";
    var grid = new WebGrid(defaultSort: "AccountName", rowsPerPage: 30, canPage: true, 
        ajaxUpdateCallback: "updateGrid");
    grid.Bind(source: Model.Accounts, rowCount: Model.TotalRows);
}

其列定义如下:

<div id="grid">
    @grid.GetHtml(tableStyle:"grid",headerStyle:"head", alternatingRowStyle:"alt", htmlAttributes: new { id = "AccountsGrid"},
        columns:  grid.Columns(grid.Column(header: "", format: (item) => Html.ActionLink("Editar", "Edit", new { id = item.AccountId })),
                                grid.Column(header: "", format: (item) => Html.ActionLink("Eliminar", "Delete", new { id = item.AccountId })),
                                grid.Column("AccountName",header:"Nombre"), 
                                grid.Column("IsClient", header:"Cliente?"), 
                                grid.Column("IsProvider", header:"Proveedor?"), 
                                grid.Column("IsBank", header:"Banco o Caja?"),
                                        grid.Column("Person", format: item => new HtmlString(item.Person == null ? "" : item.Person.Name), header: "Contacto"),
                                        grid.Column("AccountsCostCentress", 
                                            format: item => new HtmlString(item.AccountsCostCentress == null ?
                                            "" : item.AccountsCostCentress.Count.ToString()), header: "Actividades")))
</div>

我在视图中使用的 ViewModel 定义如下:

public class AccountsListViewModel
{
    public int PageSize { get; set; }
    public int PageNumber { get; set; }
    public IEnumerable<Account> Accounts { get; set; }
    public int TotalRows {get;set;}
}

这表明我可以传递 rowCount 和 IEnumerable Accounts。

假设我有 305 行帐户。如果我将 PageSize 设置为 30,这意味着我将有 11 页数据(最后一页只有 5 条记录)。如果 Accounts 包含所有 305 条记录,则网格适用于分页和所有。

如果 Accounts 只保存与第 3 页对应的 30 条记录,例如,分页控件不显示,即使 TotalRows == 305。

想不通。你能?或者你知道我可能会看的博客文章、主题或文章吗?

4

1 回答 1

0

对不起!回答了我自己的问题:

autoSortPage:grid.Bind(...) 方法中缺少错误参数。

请参阅以下 SO 线程:

WebGrid 分页

于 2011-09-08T20:43:07.943 回答