Используйте одну страницу для добавления и редактирования элемента в ASP.NET - PullRequest
0 голосов
/ 16 апреля 2011

Я не думаю, что вопрос здесь ясен.

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

Страница «Добавить новый элемент» и страница «Редактировать существующий элемент» очень похожи друг на друга ... всемне нужно скрыть / показать пару элементов управления.

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

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

Спасибо за ваше время =)

Ответы [ 3 ]

2 голосов
/ 16 апреля 2011

Альтернативой иметь одну страницу, которая одновременно добавляет и редактирует в зависимости от параметров, является наличие двух отдельных страниц, которые совместно используют UserControl, который предоставляет общий пользовательский интерфейс.Например, если у вас есть CustomerAdd.aspx и CustomerEdit.aspx, они могут использовать элемент управления CustomerProperties.ascx, в котором есть текстовые поля для имени, адреса и т. Д.

1 голос
/ 16 апреля 2011

На вашей странице может быть две панели: одна для элементов управления добавлением и одна для элементов управления для редактирования с обоими установленными visible = false.

Затем вы можете сделать page.aspx? Do = add или page.aspx? do = редактировать и затем использовать:

        If Request.QueryString("do") = "add" Then
            pnlAdd.Visible = true
        ElseIf Request.QueryString("do") = "edit" Then
            pnlEdit.Visible = true
        Else
           'Do some error handling.
        End If
0 голосов
/ 16 апреля 2011

1 - объявите свойство InstanceState для страницы или типа. Сделайте так, чтобы он прочитал и записал его значение в переменную ViewState, если это для страницы.

2- Используйте перечисление, чтобы объявить возможные значения этого свойства. Вы можете объявить множество значений для этого свойства, таких как (New, OnEdit, OnRead).

3 - Объявите некоторые другие логические свойства, которые помогут вам легко настроить макет, например (InstanceIsNew, InstanceIsOnRead, InstanceIsOnEdit ..). Эти свойства зависят от свойства InstanceState, которое возвращает их значения.

4 - Свяжите элементы макета с этими свойствами, чтобы отобразить, включить и все, что вам еще нужно делать с элементами макета в соответствии с их значениями.

5- Измените значение InstanceState для соответствующих событий, чтобы изменить макет.


ПРИМЕЧАНИЕ : вам может показаться немного сложным, когда вы работаете над первой страницей. Но как только вы поймете логику этого, вы сможете легко и быстро применить его к остальным.

...