Durata di esecuzione dei controlli

Ogni volta che viene richiesta, una pagina ASP.NET viene caricata dal server e viene scaricata dopo che la richiesta è stata completata. La pagina e i controlli server in essa contenuti sono responsabili dell'esecuzione della richiesta e del rendering dei dati HTML sul client. Sebbene la comunicazione tra il client e il server risulti senza stato e interrotta, l'azione del client deve essere analoga a un processo in costante esecuzione.

Questo effetto di continuità apparente viene creato dal framework di pagina ASP.NET, dalla pagina e dai relativi controlli. Durante il postback, un controllo deve comportarsi come se iniziasse le operazioni nel punto in cui sono state interrotte al termine della precedente richiesta Web. Il framework di pagina ASP.NET consente di semplificare le operazioni di gestione dello stato, ma è necessario che gli sviluppatori dei controlli considerino la sequenza di esecuzione del controllo per ottenere l'effetto di continuità. Gli sviluppatori di controlli devono pertanto individuare le informazioni disponibili per un controllo nelle diverse fasi della durata, i dati mantenuti e lo stato del controllo nel momento in cui ne viene eseguito il rendering. Un controllo, ad esempio, non è in grado di richiamare il relativo padre fino a quando non è stata compilata la struttura dei controlli in una pagina.

Nella tabella riportata di seguito viene fornita una panoramica riassuntiva delle fasi della durata di un controllo. Per ulteriori informazioni, consultare i collegamenti forniti nella tabella.

Fase Operazioni eseguite dal controllo Metodo o evento di cui eseguire l'override
Inizializzazione Inizializzazione delle impostazioni necessarie durante la durata della richiesta Web in entrata. Vedere Gestione degli eventi ereditati. Evento Init (metodo OnInit)
Caricamento dello stato di visualizzazione Al termine di questa fase, la proprietà ViewState di un controllo viene compilata automaticamente come illustrato in Mantenimento dello stato in un controllo. Un controllo può eseguire l'override della procedura di implementazione predefinita del metodo LoadViewState per personalizzare il ripristino dello stato. Metodo LoadViewState
Elaborazione dei dati di postback Elaborazione dei dati del form in entrata e aggiornamento delle proprietà nel modo appropriato. Vedere Elaborazione dei dati di postback.
Nota   In questa fase vengono utilizzati solo i controlli che elaborano dati di postback
Metodo LoadPostData

(se è implementato IPostBackDataHandler)

Caricamento Esecuzione di azioni comuni a tutte le richieste, ad esempio l'impostazione di una query di database. In questa fase, i controlli server all'interno della struttura vengono creati e inizializzati, lo stato viene ripristinato e i controlli del form riflettono i dati del lato client. Vedere Gestione degli eventi ereditati. Evento Load

(metodo OnLoad)

Invio delle notifiche di modifica del postback Generazione di eventi di modifica in seguito alle modifiche dello stato del postback corrente rispetto a quelli precedenti. Vedere Elaborazione dei dati di postback.
Nota   In questa fase vengono utilizzati solo i controlli che generano eventi di modifica del postback.
Metodo RaisePostDataChangedEvent

(se è implementato IPostBackDataHandler)

Gestione degli eventi postback Gestione dell'evento sul lato client che ha determinato il postback e generazione degli eventi appropriati sul server. Vedere Acquisizione di eventi postback.
Nota   In questa fase vengono utilizzati solo i controlli che elaborano eventi postback.
Metodo RaisePostBackEvent

(se è implementato IPostBackEventHandler)

Esecuzione delle operazioni preliminari necessarie al rendering Esecuzione degli aggiornamenti prima di effettuare le operazioni preliminari necessarie al rendering dell'output. Le eventuali modifiche apportate allo stato del controllo nella fase preliminare al rendering possono essere salvate, mentre le modifiche apportate nella fase di rendering vengono perse. Vedere Gestione degli eventi ereditati. Evento PreRender

(metodo OnPreRender)

Salvataggio dello stato La proprietà ViewState di un controllo viene automaticamente inserita in un oggetto String nelle fasi successive. L'oggetto String viene inviato al client e restituito come variabile nascosta. Per incrementare l'efficienza, un controllo può eseguire l'override del metodo SaveViewState per modificare la proprietà ViewState. Vedere Mantenimento dello stato in un controllo. Metodo SaveViewState
Rendering Generazione dell'output di cui effettuare il rendering sul client. Vedere Rendering di un controllo server ASP.NET. Metodo Render
Eliminazione Esecuzione della pulitura finale prima dell'eliminazione del controllo. I riferimenti alle risorse che occupano maggiore spazio su disco, quali le connessioni al database, devono essere liberati in questa fase. Vedere Metodi nei controlli server ASP.NET. Metodo Dispose
Scaricamento Esecuzione della pulitura finale prima dell'eliminazione del controllo. In genere, gli autori dei controlli eseguono l'operazione di pulitura in Dispose e non gestiscono questo evento. Evento UnLoad (metodo On UnLoad)

**Nota  ** Per eseguire l'override di un evento NomeEvento, effettuare l'override del metodo OnNomeEvento e chiamare OnNomeEvento della classe base.

I metodi e gli eventi nella terza colonna vengono ereditati da System.Web.UI.Control, con le seguenti eccezioni: LoadPostData e RaisePostDataChangedEvent sono metodi dell'interfaccia IPostBackDataHandler e RaisePostBackEvent appartiene all'interfaccia IPostBackEventHandler. Se il controllo fa parte della fase di elaborazione dei dati di postback, è necessario implementare l'interfaccia IPostBackDataHandler. Se il controllo riceve eventi postback, è necessario implementare l'interfaccia IPostBackEventHandler.

Il metodo CreateChildControls non è riportato nella tabella poiché viene chiamato ogni volta che il framework di pagina ASP.NET richiede la creazione della struttura dei controlli e la chiamata di questo metodo non è limitata a una specifica fase nella durata del controllo. CreateChildControls può essere ad esempio richiamato durante il caricamento di una pagina, l'associazione dati o il rendering.

Vedere anche

Acquisizione di eventi postback | Elaborazione dei dati di postback | Gestione degli eventi ereditati | Mantenimento dello stato in un controllo