it-swarm-pt.tech

Usando Page_Load e Page_PreRender no asp.net

Eu vejo algumas pessoas usando Page_Load e Page_PreRender na mesma página aspx. Posso saber exatamente por que precisamos invocar os dois métodos na mesma página do asp.net?

Por favor veja o código abaixo,

    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);
    }
24
Gilly

Depende das suas necessidades.

Carregamento de página: executa ações comuns a todas as solicitações, como a configuração de uma consulta ao banco de dados. Neste ponto, os controles de servidor na árvore são criados e inicializados, o estado é restaurado e os controles de formulário refletem os dados do lado do cliente. Consulte Manipulando Eventos Herdados.

Pré-renderização: execute as atualizações antes de a saída ser renderizada. Quaisquer alterações feitas no estado do controle na fase prerender podem ser salvas, enquanto as alterações feitas na fase de renderização são perdidas. Consulte Manipulando Eventos Herdados.

Referência: Ciclo de vida de execução de controle MSDN

Tente ler sobre 

Visão geral do ciclo de vida da página ASP.NET ASP.NET

Ciclo de vida de execução de controle

Saudações

24
BizApps

A principal diferença entre Page_Load e Page_PreRender é que, no método Page_Load, nem todos os controles de sua página são completamente inicializados (carregados), porque os métodos Load() dos controles individuais ainda não foram chamados. Isso significa que a árvore ainda não está pronta para renderização. Em Page_PreRender você garantiu que todos os controles de página estão carregados e prontos para renderização. Tecnicamente Page_PreRender é sua última chance de ajustar a página antes que ela se transforme em fluxo HTML.

27
Alex

Bem, um grande requisito para implementar o PreRender ao contrário do Load é a necessidade de trabalhar com os controles da página. Em Page_Load, os controles não são renderizados e, portanto, não podem ser referenciados.

2
user596075

O Page_Load acontece depois que o ViewState e o PostData são enviados para todos os seus controles do lado do servidor pelos controles ASP.NET que estão sendo criados na página. Page_Init é o evento disparado antes de ViewState e PostData serem restabelecidos. Page_Load é onde você normalmente faz qualquer inicialização em uma página inteira. Page_PreRender é o último evento que você tem a chance de manipular antes de o estado da página ser renderizado em HTML. Page_Load É o evento mais típico para se trabalhar.

2
Ashok Padmanabhan

O processamento do formulário da Web do ASP.NET ocorre em stages . Em cada estado vários events são levantados. Se você estiver interessado em conectar seu código no processing flow (no lado do servidor), então você tem que lidar com o evento de página apropriado.

0
adatapost

O ponto principal das diferenças como apontado @BizApps é que o evento Load acontece logo após o ViewState ser preenchido enquanto o evento PreRender ocorre mais tarde, logo antes da fase de Renderização, e depois que todos os manipuladores de eventos de ação de controles individuais de crianças já estão sendo executados. .] Portanto, quaisquer modificações feitas pelo manipulador de eventos de ações dos controles devem ser atualizadas na hierarquia de controle durante a PreRender, como acontece depois.

0
Roman