2009-06-05 21 views
6

Uso GridViews abbastanza spesso e talvolta mi confondo su dove inserire un determinato codice. Qual è la sequenza in cui gli eventi vengono sparati, inclusi tutti gli eventi di pagina?Qual è la sequenza di eventi che si attiva nel controllo Gridview di asp.net?

Modificato: davvero Sto anche cercando di capire cosa succede tra la pagina e il GridView. Gli eventi si incrociano mai? Oppure tutti gli eventi della pagina si verificano contemporaneamente, quindi si verificano tutti gli eventi di Gridview? E non solo GridView, qualsiasi controllo, ma soprattutto interazione con la pagina e GridView.

+0

Davvero, prova ad aggiungere un System.Diagnostics.Debug.Writeline per ogni evento come nella mia risposta. Aggiungi una griglia alla pagina in fase di progettazione, ma cerca anche di aggiungerne una durante Page_PreRender. Questo ti darà davvero una buona visione di quello che sta succedendo ... – Ropstah

risposta

3
protected void GridView1_Load(object sender, EventArgs e) 
{ 
    System.Diagnostics.Debug.WriteLine("GridView1_Load"); 
} 
protected void GridView1_DataBinding(object sender, EventArgs e) 
{ 
    System.Diagnostics.Debug.WriteLine("GridView1_DataBinding"); 
} 
protected void GridView1_DataBound(object sender, EventArgs e) 
{ 
    System.Diagnostics.Debug.WriteLine("GridView1_DataBound"); 
} 
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    System.Diagnostics.Debug.WriteLine("GridView1_RowDataBound"); 
} 
+0

Questo ti tornerà utile per le altre lezioni che incontrerai. Farlo in questo modo è l'UNICO modo in cui puoi essere sicuro che gli eventi stiano sparando. Microsoft, si può dire, ma come lo sai di sicuro? lol – Ropstah

7

Se stai riferendosi alla pagina del ciclo di vita, è possibile trovare una panoramica here.

Sintesi del ciclo di vita è:

richiesta Pagina

La richiesta di pagina si verifica prima dell'inizio del ciclo di vita della pagina. Quando la pagina viene richiesta da un utente, ASP.NET determina se la pagina deve essere analizzata e compilata (quindi iniziando la vita di una pagina), o se una versione cache della pagina può essere inviata in risposta senza eseguire la pagina.

Inizio

Nella fase di avvio, vengono impostate le proprietà della pagina, come richiesta e risposta. In questa fase, la pagina determina anche se la richiesta è un postback o una nuova richiesta e imposta la proprietà IsPostBack. Inoltre, durante la fase iniziale, viene impostata la proprietà UICulture della pagina.

inizializzazione Pagina

Durante l'inizializzazione della pagina, controlli sulla pagina sono disponibili e la proprietà UniqueID di ogni controllo è impostata. Tutti i temi sono anche applicati alla pagina. Se la richiesta corrente è un postback, i dati di postback non sono ancora stati caricati e i valori delle proprietà di controllo non sono stati ripristinati sui valori dello stato di visualizzazione.

carico

Durante il caricamento, se la richiesta di corrente è un postback, proprietà di controllo vengono caricati con informazioni recuperate da stato di visualizzazione e lo stato di controllo.

convalida

Durante la convalida, il metodo validate di tutti i controlli di convalida è chiamato, che imposta la proprietà IsValid dei singoli controlli di convalida e della pagina.

postback movimentazione

Se la richiesta è un postback evento, eventuali gestori di eventi sono chiamati.

rendering

Prima di pronunciare, lo stato di visualizzazione viene salvato per la pagina e tutti i controlli. Durante la fase di rendering, la pagina chiama il metodo Render per ciascun controllo, fornendo un writer di testo che scrive il suo output sull'outputtream della proprietà Response della pagina.

scaricamento

scaricamento viene chiamato dopo che la pagina è stata completamente reso, inviato al client, ed è pronto per essere scartato. A questo punto, le proprietà della pagina come Risposta e Richiesta vengono scaricate e viene eseguita qualsiasi pulizia.

Come per gli eventi GridView, è possibile trovare here.

Problemi correlati