По сути, у вас есть две парадигмы с веб-приложениями, по крайней мере, с точки зрения этого разговора.
- Передайте HTML-код, создав его при потоковой передаче
- Создайте контейнеры, которые могут связыватьсяк данным и формировать данные
Ваша концепция выглядит так: «Только # 1 является динамическим», но это не так.Каждый раз, когда вы можете изменить данные и получить другой результат, вы имеете дело с чем-то динамичным.Мое личное ощущение - формировать данные меню до привязки.Это не всегда можно сделать, но чаще всего это возможно.Второй метод заключается в прикреплении к событию, такому как привязка элемента или событие привязки строки.Управление потоком HTML и выписывание отдельных элементов - это, как правило, мое последнее средство.
Теперь к вопросу о состоянии представления.Viewstate - это ублюдок, когда вы начинаете добавлять вещи к предмету после связывания, и полукруглый, когда вы играете в динамическую игру с # 1 выше.Проблема в том, что вещи, добавленные после того, как первоначальное определение не может быть легко установлено с помощью автоматических битов.Вы заканчиваете тем, что приходилось каждый раз перепривязывать.Вот почему формирование данных, а затем связывание лучше.Даже в тех случаях, когда вам нужно восстановить, вы можете кэшировать сформированные данные и быстро выполнить повторное связывание.Это требует больше «предварительной» работы, но менее проблематично.
Фактический контейнер, с которым вы связываете, не имеет значения.Если вы не можете использовать элемент управления меню по какой-либо причине (кроме необходимости динамического добавления, которое можно решить, играя со связанными данными), я бы пошел в этом направлении.На самом деле, я бы пошел в этом направлении и использовал бы дружественные к CSS адаптеры, чтобы вы могли легче изменять внешний вид и ощущения.: -)