Вот проблема .... У меня есть три компонента ... Страница, содержащая элемент управления пользователя и серверный элемент управления, который находится в пользовательском элементе управления. Пользовательский элемент управления содержит несколько событий, которые просматривает страница, с помощью которых происходит изменение того, что делает серверный элемент управления.События .NET Control и жизненный цикл страницы
Управление сервером, по существу, создает список просмотра ТВ-гида, заполненный множеством небольших элементов управления ASP.NET, которые должны иметь события. Все эти элементы управления создаются динамически (очевидно, серверная сторона). Для заполнения этого контроля на стороне сервера требуются операции, которые носят интенсивный характер и поэтому должны выполняться только один раз для обратной передачи. Event1 и Event2, и в основном изменит ситуацию с обработкой средств управления серверами (сортировка, фильтрация и т. Д.), Поэтому, когда они срабатывают, мне нужно вызвать PopulateControls.
Вот и проблема: я не могу найти лучшее место для вызова вызова PopulateControls. Если я поместил его в PageLoad, он запускает и рисует список перед любыми событиями. Затем мои события должны сами вызвать PopulateControls для ответа на событие. Если я поставил вызов в PreRender, события на стороне сервера не срабатывают, потому что из того, что я читал, их нужно создать до или во время PageLoad.
Итак, где я могу поместить этот вызов, так что мне нужно только позвонить ему один раз и чтобы он мог отвечать на правильные события?
Вот некоторые псевдо-код
public class MyPage : System.Web.UI.Page
{
protected UserControl MyUserControl;
// Wire up event handlers
MyUserControl.Event1 += OnEvent1;
MyUserControl.Event2 += OnEvent2;
public Page_Load()
{
}
public PreRender()
{
PopulateControls();
}
private PopulateControls()
{
// Do intensive operation to populate controls
}
protected OnEvent1()
{
}
protected OnEvent2()
{
}
}
Согласовано, но это не решает мою проблему. Если я их создам, мне придется снова их возобновить, когда мое событие срабатывает позже, потому что событие меняет то, что нужно сделать. – cjserio