Как правильно использовать многовидовой элемент управления ASP.NET?

StackOverflow https://stackoverflow.com/questions/158741

  •  03-07-2019
  •  | 
  •  

Вопрос

Каковы некоторые сценарии, в которых MultiView был бы хорошим выбором?Элемент управления MultiView вместе с его элементами управления View, по-видимому, просто расширяет понятие Панелей.

Как панели, так и мультивидения, по-видимому, подвержены злоупотреблениям.Если ваши проблемы с пользовательским интерфейсом и бизнес-логикой должным образом разделены, зачем объединять представления в одном ASPX?

Это было полезно?

Решение

Я использовал MultiViews в качестве более гибкой основы для элемента управления Wizard.

Я действительно согласен с тем, что объединение множества просмотров воедино - это запах кода.В случае с мастером часто существует множество фрагментов состояния, которыми вы хотите поделиться на протяжении всего процесса.Multiview позволяет просто сохранить это состояние в viewstate.

Большую часть времени я делаю содержимое каждого представления единым пользовательским элементом управления, чтобы оно могло инкапсулировать логику, связанную с этим конкретным шагом.

Другие советы

Я использовал его в переданном для реализации простого интерфейса вкладок с поддержкой Ajax.

Оформите кнопку так, чтобы она выглядела как вкладка, затем установите для нее событие onClick для переключения активного вида на панели обновления.

Любая ситуация, когда вы обнаруживаете, что переключаете отображение одной или нескольких панелей, является основным кандидатом для управления несколькими видами.Например, более шаблонный элемент управления мастера или основные / подробные формы.

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

Одна вещь, которой следует опасаться при работе с MultiViews, заключается в том, что в отличие от панелей, любые декларативные элементы управления источником данных, содержащиеся внутри них, всегда будут привязываться, даже если представление, в котором они содержатся, не активно / не видно.

Каждый раз, когда вы хотите показать другой контент на странице в зависимости от какого-либо условия.На работе я создал элемент управления tab, который просто использует MultiView, и еще один простой элемент управления, который я сделал, который выглядит как вкладки.Каждая вкладка помещает ссылку (которая оформлена) в другой элемент управления, подключенный для установки активного представления на нужную вкладку.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top