Как связать Kendo ListView с моделью и сделать его доступным для страниц
У меня есть Kendo ListView на мой взгляд, как это:
@(Html.Kendo().ListView<SearchResultViewModel>(Model)
.Name("searchResults")
.TagName("div")
.DataSource(dataSource => {
dataSource.Model(model => model.Id("ID"));
dataSource.PageSize(100);
})
.Pageable()
.Selectable()
)
контроллер:
[HttpPost]
public ActionResult AdvancedSearch(AdvancedSearchViewModel criteria)
{
// Get the search results (IEnumerable<SearchResultViewModel>)...
var results = GetSearchResults(criteria);
return View(results );
}
Этот ListView находится внутри частичного представления на странице расширенного поиска, которая отправляет критерии поиска в контроллер через POST.
Затем контроллер возвращает результаты поиска в представление, используя SearchResultsViewModel
как модель.
Проблема в том, что нумерация страниц не работает, и я знаю, что это происходит потому, что нумерация страниц работает только тогда, когда существует серверный вызов ajax для чтения данных. Но проблема в том, что я не могу использовать dataSource.Read
чтобы получить данные через ajax-вызов, потому что, как я уже сказал, критерии поиска находятся внутри формы и отправляются в контроллер через POST.
Теперь возникает вопрос: как я могу сделать работу разбивки на страницы без изменения источника данных или прочитать источник данных методом POST?
1 ответ
В DataSource вы сможете добавить
Datasource.ServerOperation(false)
// это должно включить пейджинг на клиенте.