Пользовательские элементы управления ASP.NET или мастер-страница или другое для формы ввода данных - PullRequest
1 голос
/ 07 февраля 2012

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

У меня есть старое приложение, которое я 'м моделирую новый после.Так что это совершенно новый дизайн.

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

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

Так что мой вопрос таков.

Что, по мнению кого-то, было бы наилучшим способом для достижения этой цели без дублированиямакеты страниц четыре раза и сохраняющие различную бизнес-логику отдельно?

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

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

Большое спасибо за ваше время!

Ответы [ 2 ]

1 голос
/ 07 февраля 2012

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

Из того, что вы описали, я бы использовал MasterPage для макета страницы заказа.Затем создайте 4 страницы заказа (которые используют этот MasterPage) и наследуйте от базового класса страницы.Вы можете разместить кнопку «Отправить заказ» на мастере, а затем обработать ее на каждой странице заказа.Если на каждой странице заказа есть какие-либо общие компоненты (кроме макета), например список позиций заказа, вы можете использовать для них пользовательский элемент управления.

public abstract class OrderPage : System.Web.UI.Page
{
     protected void Page_Load(object sender, EventArgs e)
     {
         this.Master.SubmitButton.Click += new EventHandler(SubmitButton_Click);
     }

     protected override void SubmitButton_Click(object sender, EventArgs e) {
         CalculateTotal();
         SubmitOrder();
     }

     protected abstract void CalculateTotal();
     protected abstract void SubmitOrder();
}

public partial class OrderType1Page : OrderPage
{
     protected override void CalculateTotal() {
        ...
     }

     protected override void SubmitOrder() {
        ...
     }
}

public partial class OrderType2Page : OrderPage
{
     protected override void CalculateTotal() {
        ...
     }

     protected override void SubmitOrder() {
        ...
     }
}

...
0 голосов
/ 07 февраля 2012

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...