Подтвердить что ты не робот

Использование Page_Load и Page_PreRender в ASP.Net

Я вижу, что некоторые люди используют Page_Load и Page_PreRender на той же странице aspx. Могу ли я точно узнать, почему нам нужно вызывать оба метода на одной странице asp.net?

Пожалуйста, смотрите код ниже,

    protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            dprPager.ButtonClickPager += new EventHandler(dprPager_ButtonClickPager);

            if (!Page.IsPostBack)
            {
              InitPager();

            }
        }
        catch (Exception ex)
        {

        }

    }

    protected void Page_PreRender(object sender, EventArgs e)
    {
        erMsg.Visible = !string.IsNullOrEmpty(lblError.Text);
    }
4b9b3361

Ответ 1

Это зависит от ваших требований.

Загрузка страницы. Выполнять действия, общие для всех запросов, такие как настройка запроса к базе данных. На этом этапе серверные элементы управления в дереве создаются и инициализируются, состояние восстанавливается, а элементы управления форматом отражают данные на стороне клиента. См. Раздел Обработка перенесенных событий.

Prerender: выполнять все обновления перед визуализацией вывода. Любые изменения, внесенные в состояние управления на фазе предварительного прослушивания, могут быть сохранены, в то время как изменения, сделанные в фазе рендеринга, теряются. См. Раздел Обработка перенесенных событий.

Ссылка: Жизненный цикл управления выполнением MSDN

Попробуйте прочитать о

Обзор жизненного цикла ASP.NET ASP.NET

Жизненный цикл выполнения управления

Привет

Ответ 2

Основное различие между Page_Load и Page_PreRender заключается в том, что в методе Page_Load не все элементы управления вашей страницей полностью инициализированы (загружены), поскольку отдельные методы управления Load() еще не были вызваны. Это означает, что дерево еще не готово к показу. В Page_PreRender вы гарантировали, что все элементы управления страницей загружены и готовы к рендерингу. Технически Page_PreRender - это ваш последний шанс настроить страницу до того, как она превратится в поток HTML.

Ответ 3

Page_Load происходит после того, как ViewState и PostData отправляются во все элементы управления на стороне сервера с помощью элементов управления ASP.NET, созданных на странице. Page_Init - это событие, запущенное до восстановления ViewState и PostData. Page_Load - это место, где вы обычно выполняете инициализацию на любой странице. Page_PreRender - это последнее событие, с которым вы можете обращаться до того, как состояние страницы будет отображаться в HTML. Page_Load  является более типичным событием для работы.

Ответ 4

Ну, большое требование для реализации PreRender в отличие от Load - это необходимость работать с элементами управления на странице. В Page_Load элементы управления не отображаются, и поэтому не могут быть указаны.

Ответ 5

Обработка веб-формы ASP.NET происходит поэтапно. В каждом состоянии поднимаются различные events. Если вам интересно подключить свой код к processing flow (на стороне сервера), вам необходимо обработать соответствующее событие страницы.

Ответ 6

Основная точка различий, как указано в @BizApps, заключается в том, что событие "Загрузить" происходит сразу после заполнения ViewState, в то время как событие PreRender происходит позже, прямо перед стадией рендеринга и после того, как все отдельные обработчики событий для отдельных дочерних элементов уже выполняются. Поэтому любые изменения, выполняемые обработчиком событий действий элементов управления, должны обновляться в иерархии управления во время PreRender, как это происходит после.