Веб-приложение, созданное нашей группой, использует элемент управления ASP.NET Wizard. Каждый шаг мастера содержит соответствующий пользовательский элемент управления UserControl.
Проблема в том, что по мере прохождения шагов мастера все пользовательские элементы управления загружаются на каждом шаге, а не только на том, который использовался на этом шаге. Мне это не кажется правильным.
Итак ... есть ли здесь кто-нибудь, кто проделал большую работу с элементом управления Wizard и может дать некоторые рекомендации о том, как его правильно использовать, и не дать ему загружать слишком много мусора на каждом шаге?





Одна вещь, которая может вам немного помочь, - это не помещать какой-либо код в функцию Page_Load UserControls, а вместо этого помещать тот же код в ее Page_PreRender. Это очень важно при использовании MultiView и, вероятно, применимо и к мастеру.
У mspmsp есть хорошая рекомендация по PreRender, еще один вариант, который я заметил ранее, - просто переместить весь код конфигурации внутри элемента управления в метод ConfigureControl.
Затем при переключении представлений вы можете вызвать метод ConfigureControl () для явного создания / загрузки вашего элемента управления. У него та же цель, но, на мой взгляд, он помогает облегчить понимание кода.
К вашему сведению, (по крайней мере, частично) причина, по которой он загружает все пользовательские элементы управления на каждом шаге, заключается в том, что вы можете получить доступ к значениям, введенным на других шагах. Если он не загружает элементы управления, вы не сможете легко принимать решения о текущем шаге на основе того, что было введено на предыдущем шаге (например, фильтрация списка на основе выбора на предыдущем шаге).