我在asp.net mvc应用程序中使用kendo ui grid。我有一个需要绑定控制器(ViewBag)中指定的某个整数的值的请求。我已经定义了如下网格:
<div id="clientsDb">
@(Html.Kendo().Grid<Kendo.Mvc.Examples.Models.CustomerViewModel>()
.Name("grid")
.Columns(columns =>
{
columns.Bound(c => c.ContactName).Width(140);
columns.Bound(c => c.ContactTitle).Width(190);
columns.Bound(c => c.CompanyName);
columns.Bound(c => c.Country).Width(110);
})
.HtmlAttributes(new { style = "height: 380px;" })
.Scrollable()
.Groupable()
.Sortable()
.Pageable(pageable => pageable
.Refresh(true)
.PageSizes(true)
.PageSize((int)ViewBag.ItemsPerPage)
.ButtonCount(5))
.DataSource(dataSource => dataSource
.Ajax()
.Read(read => read.Action("Customers_Read", "Grid"))
)
)
</div>
在我已定义的控制器中
public ActionResult GridDisplay()
{
ViewBag.ItemsPerPage = 10;
return View("gridpage");
}
如果我想尝试
@{
var ItemsPerPage = ViewBag.ItemsPerPage;
}
var ItemsPerPage = '@(ItemsPerPage)'
$("#grid").data("kendoGrid").dataSource().query({ page: 1, pageSize: ItemsPerPage });
它正在工作但数据源调用两次会降低性能。 我想用动态大小直接加载网格。
答案 0 :(得分:0)
尝试在网格数据源而不是网格本身上设置pagesize。 我有以下内容:
.DataSource(ds=> ds
.Ajax()
.PageSize(50)
.ServerOperation(false)
.Read(read => read.Action("xx", "xx", new { ID = @Model.ID })
您应该可以使用ViewBag值替换.PageSize(50)
.PageSize((int)ViewBag.ItemsPerPage)