Пейджинг на стороне сервера с сеткой MVCContrib - PullRequest
1 голос
/ 27 июля 2011

Я должен использовать хранимые процедуры для извлечения и просмотра данных.Эта конкретная хранимая процедура имеет все виды параметров, включая информацию о подкачке.Очевидно, что подкачка страниц должна выполняться на стороне сервера, когда каждый пользователь выбирает новую страницу, нужно выбирать одну страницу данных.

Я пытаюсь получить эту работу с MVCContrib, но мне кажется,сетка и ее пейджер поддерживают только локальный пейджинг и фильтрацию.Количество доступных страниц определяется количеством уже присутствующих элементов в коллекции, или мне так кажется.

Есть ли способ заставить MVCContrib работать с подкачкой на стороне сервера?

Ответы [ 2 ]

3 голосов
/ 27 июля 2011

В MVCContrib есть класс с именем CustomPagination.Конструктор принимает следующие аргументы

(Enumerable<T> dataSource, int pageNumber, int pageSize, int totalItems)

Затем вы передаете это Grid и Pager.

1 голос
/ 27 июля 2011

Вам нужно будет самостоятельно реализовать интерфейс IPagination, добавить параметр страницы в метод действия, а затем передать его в хранимую процедуру, чтобы получить соответствующую коллекцию элементов. Затем заполните все свойства IPagination из этого и свои знания о том, как работает ваша хранимая процедура.

Если вам нужны более конкретные примеры этого, вам может пригодиться образец вашей хранимой процедуры (или ее сокращенная версия).

"Количество доступных страниц определяется количеством уже представить предметы в коллекции, или мне так кажется. "

Возможно, вы смотрите на образцы, которые используют аромат LINQ. Это не обязательно означает, что вся коллекция находится в памяти. Кроме того, даже если они находятся в памяти, я все равно назвал бы эту подкачку на стороне сервера. Для меня подкачка на стороне клиента в веб-приложении означает javascript.

PS: это может помочь вам начать работу, хотя, судя по звукам, вам нужно будет игнорировать его биты Entity Framework:

http://weblogs.asp.net/rajbk/archive/2010/05/08/asp-net-mvc-paging-sorting-filtering-using-the-mvccontrib-grid-and-pager.aspx

Там, где они используют расширение «AsPagination ()», вам необходимо вызвать вашу хранимую процедуру и заполнить собственную реализацию IPagination.

...