Gentilissimo xcs, quando una pagina aspx viene inviata al server, ecco cosa accade:
1) Asp.Net carica la classe di codice sottostante e scatena l'evento Page_Init. In questa fase il codice non è in grado di determinare se questa corrisponde alla prima richiesta per la form, e neppure di estrarre i valori che l'utente ha immesso nei controlli.
2) Una volta inizializzata la pagina e tutti i relativi controlli, viene scatenato l'evento Page_Load. A questo punto, è possibile determinare se la pagina è in esecuzione a causa di un'operazione di postback (controllando la proprietà IsPostBack) e accedere ai valori correnti nei controlli. Tipicamente, questo evento viene utilizzato per inizializzare i controlli e legarli alle sorgenti dati. In altre parole, l'evento si utilizza per tutte le operazioni che si eseguono generalmente nell'evento Load di una Windows Form.
3) Se si tratta di una operazione di postback, si scatenano tutti gli eventi relativi ai controlli. Ad esempio, TextChanged per le caselle di testo modificate dall'utente finale e CheckedChanged per le caselle di controllo e i pulsanti d'opzione selezionati.
4)L'ultimo evento scatenato è quello relativo al controllo che ha generato il postback; solitamente si tratta dell'evento Click di un pulsante di o di un ImageButton.
5)Infine, l'oggetto Page scatena un evento Unload, quando è tempo di rilasciare tutte le risorse, chiudere i file e le connessioni al database e così via.
Dopo questo evento, tutte le variabili di classe vengono distrutte e sono definitivamente perse, a meno che non si salvi da qualche parte il loro valore (ad esempio, in una variabile di sessione).
L'ordine con cui vengono scatenati gli eventi dei controlli non è necessariamente quello con cui l'utente finale ha operato sui controlli corrispondenti. Infatti, gli oggetti delle Web Form scatenano tali eventi analizzando lo stato corrente di tutti i controlli della form rinviati al server e confrontandolo con quello che i controlli possedevano quando la form è stata inviata al browser...
Detto questo, io penso all'evento Load come al punto di entrata del programma, pressapoco come al main del c (chi vuol capire capisca
) e ti faccio alcuni esempi.
1) Nell'evento Load non metto niente. Può capitare per esempio (guarda che sto semplificando al massimo) ad una pagina che abbia solo un pulsante ed una label. In questo caso utilizzo l'evento click del pulsante per svolgere un compito e restituire il risultato alla label.
2) (ti ripeto che sono solo esempi) Ho una pagina che viene richiamata da un'altra e si aspetta di ricevere uno o più parametri.
codice:
Private Sub Page_Load(.....
'disabilito il viewstate
Me.EnableViewState = False
'valorizzo alcune variabili private di classe
Me.id_utente = j.id_utente
'inizializzo i miei combobox
InizializzaComboBox()
'controllo se la pagina ha ricevuto i parametri necessari
'se non ricevo niente non proseguo e mando un messaggio
ParametriPassati = ControlloSalvoParametriPassati()
If Not ParametriPassati Then
MessaggioErrore("Non è stato.....
End If
'registro script client
Me.RegisterOnSubmitStatement(....
Me.RegisterStartupScript(
'lego la sorgente dati
If Not Me.IsPostBack Then
BindData()
end if
End Sub
un altro esempio (una pagina che fa vedere gli utenti collegati):
codice:
Private Sub Page_Load(....
'scrivo una lista di utenti collegati al sistema
Me.Literal1.Text = UtentiCollegati()
'aggiorno la pagina ogni 15 secondi
Response.AddHeader("Refresh", "15") '15 secondi
end sub
Altro. Pagina richiamata per la disconnessione
codice:
Private Sub Page_Load(....
FormsAuthentication.SignOut()
'richiamo una funzione personale shared in una classe Libreria
Libreria.CancellaCookies()
end sub
et dulcis in fundo, ho un controllo utente che crea una maschera per filtrare dati di una tabella di un database, pagina .ascx
codice:
Private Sub Page_Load(...
'creo la grafica nella pagina
CreaTabella()
'creo gli script javascript (ahimè, necessari in una pagina seria)
CreaScript()
end sub
non so se ti sono stato utile, comunque tieni conto che con l'esperienza sarà più facile farle queste cose che cercare di spiegarle
Ciao