我在分页WebGrid时遇到问题。基本上,我传递完整的数据,它的页面就可以了。如果我一次将数据限制为一个页面,则分页控件会消失,尽管我已经传入了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帐户。
假设我有305行帐户。如果我将PageSize设置为30,那意味着我将有11页数据(最后一页只有5条记录)。如果Accounts包含所有305条记录,则网格将使用分页和所有。
例如,如果“帐户”只保留与第3页相对应的30条记录,则分页控件不会显示,即使总行数== 305也是如此。
无法弄明白。你能?或者你知道我可能会看到的博客文章,帖子或文章吗?
答案 0 :(得分:0)