Динамически созданные элементы управления или статические элементы управления, которые скрыты или показаны - PullRequest
1 голос
/ 18 октября 2010

У меня есть набор страниц ASP.Net, которые отображают количество полей asp: TextBox в зависимости от количества записей в файле конфигурации. Я знаю, что количество полей не будет больше 10 или около того. Учитывая это, я должен объявить достаточно большое количество текстовых полей в разметке, или я должен динамически создавать текстовые поля в коде позади?

У каждого подхода есть свои преимущества и недостатки, поэтому у меня проблемы с выбором. Преимущество динамического подхода состоит в том, что приложение более гибкое - даже если количество полей превышает 10, мое приложение сможет масштабироваться. Недостатком является то, что я сейчас смешиваю разметку и логику - мое приложение вставляет текстовые поля и литералы (для меток) на страницу. Это усложнит будущее обслуживание, поскольку не все поля находятся в файле .aspx.

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

Итак, StackOverflow, что бы вы выбрали? Что еще более важно, почему вы выбрали свой подход?

Ответы [ 2 ]

2 голосов
/ 18 октября 2010

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

0 голосов
/ 18 октября 2010

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

...