Я бы не стал делать это динамически, поскольку выигрыш не стоит сложности или предполагаемой экономии. Также, если вы установите visible = false
, имейте в виду, что состояние просмотра все еще включено для ваших элементов управления. Если вы беспокоитесь о возврате и передаче данных и работе с большим состоянием представления, убедитесь, что вы отключили состояние представления для всех элементов управления или для родительской панели, которая их содержит. У вас будет то же неудобство для поддержания их состояния при обратной передаче, что и при динамическом выполнении.
Кроме того, делать это не динамически намного проще для следующего парня, работающего с кодом. Макет очевиден и его легче визуализировать, чем пытаться выяснить, какой код, когда что помещает, куда.
Динамическое создание элементов управления на самом деле мало что дает, за исключением исключения viewstate и, возможно, незначительной стороны сервера обработки. Я думаю, вам будет трудно даже измерить большую часть заметной разницы, даже под нагрузкой, между управлением без состояния просмотра и накладными расходами на динамическое добавление их по мере необходимости.
Наконец, проще не делать это динамически, так почему бы сначала не взять самый простой маршрут и посмотреть, если это проблема. Если это становится проблемой, уточните ее, если необходимо.