Реализация пейджинга с использованием MVP - PullRequest
3 голосов
/ 20 августа 2009

Как реализовать разбиение на страницы в веб-формах ASP.NET при применении шаблона MVP? Мне интересно, где поставить логику подкачки ... в представлении или в презентере? Также нетрадиционным способом реализации подкачки в ASP.NET является использование элемента управления PagedDataSource ... было бы правильно использовать его от докладчика или лучше реализовать некоторую пользовательскую логику подкачки. Данные отображаются в виде с помощью элемента управления Repeater.

Ответы [ 2 ]

2 голосов
/ 20 августа 2009

Я думаю, что и View, и Presenter должны знать о подкачке. И вот почему:

  • Интеллектуальный пейджинг должен получать только те данные, которые необходимы для заполнения страницы. Это сотрудничество между докладчиком и моделью, на мой взгляд. В педантичном MVP представление не знает модели, поэтому докладчик должен быть посредником. В MVC вам может не понравиться исключение контроллера с достаточно сильной моделью домена.
  • Представление должно знать о разбиении на страницы, чтобы пользователь мог правильно взаимодействовать с метафором подкачки (Next, Prev, правильное отображение и т. Д.)

Я не очень знаком с PagedDataSource. Если вы используете WebForms, вы, вероятно, задумались, если хотите придерживаться верной реализации MVP. Возможно, вы могли бы настроить кэширование страницы для PagedDataSource (если есть такая вещь) в Presenter и гламура GUI в View. Это будет означать передачу ссылки на пользовательский элемент управления, но, возможно, это нормально.

Спасибо вам за попытку заставить MVP работать с WebForms. Я хотел бы услышать, как это получается.

2 голосов
/ 20 августа 2009

Я не знаю точно, какая разница между mvp и mvc, поэтому я думаю, что этот пост может быть полезен для вас. Мне лично нравится идея создать Хеплер вне модели или контроллера (презентатор?). Кроме того, механизм разбиения на страницы jquery довольно прост. В презентере просто добавьте параметры для запрошенных строк данных и верните только те вместо всей таблицы / сетки / чего угодно.

...