У меня есть MVC Kendo Grid следующим образом. Он отлично работает со стандартным поисковым вызовом.Пользовательский пейджинг для ASP.Net MVC Kendo Grid
Теперь я хочу выполнить пользовательский пейджинг. В действии контроллера нам нужно знать текущий индекс страницы. Также он должен установить «общий» счет для сетки. [Фактический источник данных будет иметь только 2 записи за раз, даже если в базе данных 100 записей. Таким образом, сетка должна знать общее количество записей в базе данных с использованием атрибута «total».]
Запрос должен возвращать только 2 записи из базы данных за раз.
Как мы можем выполнить этот настраиваемый подкастинг сервера с помощью оболочки MVC для Kendo Grid?
@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. –