Реализация разбиения по страницам с помощью MVP

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


person flalar    schedule 20.08.2009    source источник


Ответы (2)


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

person Trimack    schedule 20.08.2009

Я думаю, что и View, и Presenter должны знать о разбиении по страницам. Вот почему:

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

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

Престижность вам за попытку заставить MVP работать с WebForms. Хотелось бы услышать, как это получается.

person Nick Monkman    schedule 20.08.2009