Добавление динамических элементов управления
-
01-10-2019 - |
Вопрос
У меня есть страница, мне нужно построить, где в зависимости от выбора пользователь, сделанный в форме на странице, он отображает другой набор вопросов для ответа.
Так что скажите, что пользователь выбирает причину A из формы на странице Редактировать, то ему необходимо отображать вопросы 1 и 2 на странице Edit_Confirmation. Но если они выберут причина B, то ему необходимо отображать вопросы 3 и 4.
Я схватив код причины из строки запроса и установить оператор коммутатора, но я не могу найти нигде, как выводить разные элементы управления. Если предполагаются вопросы 1 и 2, можно появиться, можно было бы текстовое поле, а другой флажок, но если предполагается, что вопросы 3 и 4 могут появиться, можно понадобиться, может быть выпадающий список и флажок.
Редактировать: Я собираюсь попробовать некоторые из нижеперечисленных предложений и вернется, чтобы соответственно отметить ответ и UPVote. Спасибо всем за быстрый ответ.
Редактировать редактирование: Оба ответы RLB.USA, так и ответы Adrewvos одинаково работали одинаково. Я пошел с Андрею, так как казалось, что более «правильный» способ сделать это.
Решение
Посмотрите на MultiView Control. Это позволяет добавлять представления и указать, какой из них виден в соответствии с вашими требованиями.
Другие советы
Вывод разных элементов управления? Ой, это звучит очень больно. Я думаю, что термин, который вы ищете, - это динамический элемент управления (элементы управления, созданные в рамках кода). У меня всегда было больше проблем с этим, чем стоит.
Наиболее распространенный практический способ сделать это - настроить все ваши контрольные элементы в форме. Иметь каждый «вопрос» или соответствующие наборы вопросов, содержащиеся в пределах ASP:Panel
. Отказ Далее, внутри вашего кода все, что вам нужно сделать, это применить свою логику и скрыть / показать ASP:Panel
s (установив Visible
Собственность) в соответствии с вашими потребностями. Вы можете сделать эту логику на Page_Load
, если применимо или когда конкретный ответ был изменен.
Вы можете использовать контроль заполнителя и добавить соответствующие элементы управления на стороне сервера, или вы можете сделать все элементы управления с помощью Thier STYLE.Display, устанавливаем None и устанавливать соответствующие на «Блок», используя JavaScript на стороне клиента
Почему бы не просто отправить их на другую страницу на основе причины, которую они выбирают на странице Править?
1 способ было бы добавить элементы управления статически. На основе выбора пользователя скрыть или показать элементы управления. Этот подход является самым простым для реализации, но является уродливым.
Другой подход - это динамически создавать элементы управления и добавлять их. Вам придется подумать о том, чтобы управлять просмотром просмотра, так как эти вещи могут быть довольно неприятными.
Вы можете просто установить видимое свойство на элемент управления в событии вашего страницы. Таким образом, в операторе выключателя вы бы сделали бы видимыми элементами управления, которые вы хотите, чтобы пользователь мог видеть.