2010-11-11 1 views
0

Я использую мастер на моей странице ASP.NET, где на первом этапе пользователь выбирает из DropDownList, сколько наборов элементов управления появится на следующем шаге мастера (от 1 до 5).Более эффективный способ сделать это? (Текстовые поля ASP.NET)

Например, на втором этапе мастера есть 3 текстовых поля. Если они выберет 2 на предыдущем экране, будет 6, так как будет 2 набора из них.

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

Простой способ сделать это, я думаю, это просто создание все возможные элементы управления (5 комплектов), и пряча их в зависимости от того, что они выбирают в предыдущем окне. есть более эффективный/простой способ?

Благодаря

ответ

1

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

0

Если вы освободите что 5 ящиков являются максимальными, и маловероятно, что когда-либо будет больше, используя Control.Visible на серверных элементах управления и их интерфейсных элементах, таких как label или что-нибудь еще, будет работать ... , но .. .

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

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

(Более подробную информацию о данной опции можно было при желании!)