我有一个MVC Kendo Grid,如下所示。它与默认分页工作正常。ASP.Net MVC的自定义分页Kendo Grid
现在,我想做自定义分页。在控制器操作中,我们需要知道当前页面索引。它也应该设置网格的“总数”。 [即使数据库中有100条记录,实际数据源一次只能有2条记录。因此,网格必须使用“总计”属性知道数据库中的记录总数。]
查询一次只能从数据库返回2条记录。
我们如何使用Kendo Grid的MVC包装来做这个自定义服务器分页?
@using (Html.BeginForm())
{
@(Html.Kendo().Grid<KendoUIMvcSample.Models.Sample>()
.Name("ssgrid222")
.Columns(columns => {
columns.Bound(p => p.SampleDescription).Filterable(false).Width(100);
columns.Bound(p => p.SampleCode).Filterable(false).Width(100);
columns.Bound(p => p.SampleItems).Filterable(false).Width(100);
})
.AutoBind(false)
.Pageable()
.Sortable()
.Scrollable()
.Filterable()
.HtmlAttributes(new { style = "height:430px;" })
.DataSource(dataSource => dataSource
.Ajax()
.PageSize(2)
.Read(read => read.Action("Orders_Read", "Sample")
)
)
)
}
控制器
public ActionResult Orders_Read([DataSourceRequest]DataSourceRequest request)
{
int currentPageNumber = request.Page;
return Json(GetOrders().ToDataSourceResult(request));
}
我认为,如果你带回来的IQueryable,剑道会处理并作出相应的查询数据库。在传递数据给Kendo之前不要运行查询。 –