Запретить рендеринг пользовательского контроля

В нашем приложении asp.net webforms мы динамически загружаем пользовательские элементы управления в заполнители. Чтобы сохранить изменения между постбеками, наш жизненный цикл страницы немного сложнее, чем обычно. Мы ВСЕГДА восстанавливаем предыдущую структуру управления в pageInit, чтобы успешно загрузить наше представление. Только тогда мы очищаем заполнитель и загружаем в него новый элемент управления.

К сожалению, это означает полный жизненный цикл как старого, так и нового пользовательского контроля, включая обработку на стороне сервера всего файла разметки.ascx старого модуля.

Теперь мой вопрос: есть ли возможность минимизировать обработку старого модуля на стороне сервера, так как он никогда не отправляется обратно клиенту (то есть его рендеринг на стороне сервера совершенно не нужен). В идеале я бы хотел добиться своего рода "облегченной" загрузки пользовательского контроля, когда единственной целью является восстановление информации о состоянии сети без ее обращения к клиенту.

Цель упражнения - оптимизация производительности.

Любые советы, идеи или предложения приветствуются!

1 ответ

Я решил код, запущенный в событиях жизненного цикла webcontrol динамически добавленных элементов управления, просто проверив, был ли элемент управления видимым ( http://msdn.microsoft.com/en-us/library/system.web.ui.control.visible.aspx)-

protected void Page_Load(object sender, EventArgs e)
{
    if (this.Visible) 
    {
       //Your code here
    }
}

Если у вас есть какие-либо методы, которые не запускаются событием жизненного цикла страницы и должны запускаться действием пользователя, например:

protected void Button1_Click(object sender, EventArgs e)
{
   //Do something
}

Это можно безопасно оставить как есть, код метода не будет выполняться до тех пор, пока элемент управления не будет добавлен на страницу и действие не будет запущено.

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

Другие вопросы по тегам