Добавление динамических элементов управления - PullRequest
2 голосов
/ 23 апреля 2010

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

Так, скажем, пользователь выбираетПричина А из формы на странице редактирования, затем необходимо отобразить Вопросы 1 и 2 на странице edit_confirmation.Но если они выбирают причину B, тогда нужно отобразить вопросы 3 и 4.

Я беру код причины из строки запроса и настроил оператор switch, но нигде не могу найти, как это сделать.выводить разные элементы управления.Если предполагается, что вопросы 1 и 2 должны отображаться, один из них может быть текстовым полем, а другой - флажком, но если предполагается, что вопросы 3 и 4 должны отображаться, возможно, потребуется раскрывающийся список и флажок.

РЕДАКТИРОВАТЬ: Я собираюсь попробовать некоторые из приведенных ниже предложений и вернусь, чтобы пометить ответ и повысить голосование соответственно.Спасибо всем за быстрый ответ.

РЕДАКТИРОВАТЬ РЕДАКТИРОВАТЬ: Ответы rlb.usa и AndrewVos работали одинаково хорошо.Я пошел с Эндрю, так как это казалось более «правильным» способом сделать это.

Ответы [ 6 ]

4 голосов
/ 23 апреля 2010

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

4 голосов
/ 23 апреля 2010

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

Наиболее распространенный практический способ сделать это - настроить все ваши элементы управления в форме.Имейте каждый "вопрос" или соответствующие наборы вопросов, все содержащиеся в ASP:Panel.Далее, внутри вашего кода все, что вам нужно сделать, это применить свою логику и скрыть / показать ASP:Panel s (установив свойство Visible) в соответствии с вашими потребностями.Вы можете сделать эту логику на Page_Load, если применимо, или когда конкретный ответ был изменен.

1 голос
/ 23 апреля 2010

Вы можете использовать элемент управления PlaceHolder и добавить к нему соответствующие элементы управления на стороне сервера, или вы можете отобразить все элементы управления с параметром thier style.

0 голосов
/ 23 апреля 2010

Вы можете просто установить свойство visible для элемента управления в вашем событии page_load. Таким образом, в операторе switch вы должны сделать видимыми только те элементы управления, которые должен видеть пользователь.

0 голосов
/ 23 апреля 2010

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

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

0 голосов
/ 23 апреля 2010

Почему бы просто не отправить их на другую страницу по причине, которую они выбирают при редактировании страницы?

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