Page_load - Page_init - Pageloadcomplete ecc...

venerdì 23 novembre 2012 - 19.12
Tag Elenco Tags  VB.NET  |  .NET 4.0  |  Windows Server 2008  |  Visual Studio 2010

trinity Profilo | Guru

Salve ragazzi,
sto leggendo su msdn un pò la vita di una pagina aspx...e mi ponevo questa domanda per aver capito bene quello che ho letto.

Partiamo dall'inzio

il page_init si utilizza per leggere o inizializzare le proprietà di un controllo, facendo un esempio se nel caso devo caricare dei dati preimpostati di una combobox oppure di una dropdownlist oppure non so caricare un dato su una label che proviene da una session oppure imposare il value di una checkbox...comunque non viene utilizzato per caricare dati da un db

Page_load si utilizza per impostare le proprietà dei controlli e stabilire una connessione al db...esempio se devo impostare in base ad un valore che prendo da db la data del giorno in una textbox o ul atro valore preso dal database. Creare una connessione al database e anche qui eseguire le query di ricerca se nel caso la pagina deve caricare alla sua apertura una serie di record in gridview?

Page_loadcomplete si utilizza quando tutti i controlli nella pagina sono stati già caricati, purtroppo non mi viene un esempio nel caso accetto uno vostro per capire oppure potrebbe essere utilizzato per eseguire delle query all'interno del database e pertanto eseguire la connessione al db nel page_load e poi nel page_complete eseguire le query o stored...

il page_prerender non ho capito quando utilizzarlo l'msdn dice che si utilizza per apportare modifiche alla pagina o ai controlli prima dell'inizio della fase del rendering, ma non sparei proprio in che casi usarlo...anche qui accetto esempi per capire...

Ciao e spero in un vostro aiuto ;)
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com

andrestu Profilo | Expert

breve schema considerando anche i controlli della pagina, devo essere sincero non lho verificato te lo scrivo come ricordo a memoria

page_init
evento init dei vari controlli
evento load dei vari controlli
page_load
eventi onclick e oncommand dei vari controlli
page_loadcomplete
page_prerender

comunque sull'MSDN dovresti trovare lo schema completo, io di solito inizializzo i vari controlli nell'init della pagina, nota bene l'evento page_loadcomplete dopo gli evnti click dei controlli, serve in caso dovessi fare qualche operazione appunto dopo i comandi dei controlli...

Andrea Restucci - Web Developer

trinity Profilo | Guru

OK ma per la connessione al database ed eseguire delle query in che evento si fa?

esmepio ecco come eseguo una query di selzione:

Try Dim conString = ConfigurationManager.ConnectionStrings("prova") Dim strConnString As String = conString.ConnectionString Using db As New SqlConnection(strConnString) db.Open() Using sqlcmd As New SqlCommand("Sp_get_parzialprofile", db) sqlcmd.CommandType = CommandType.StoredProcedure sqlcmd.Parameters.AddWithValue("@idutente", SqlDbType.Int).Value = idutente Using sqldr As SqlDataReader = sqlcmd.ExecuteReader If sqldr.Read() Then Utente.Text = sqldr.GetSqlString(0).Value Email.Text = sqldr.GetSqlString(1).Value End If End Using End Using End Using Catch ex As SqlException Exit Sub Catch ex As Exception Exit Sub End Try
questo tipo di codice che esguo la connessione al database, poi esegue la stored ed infine l'using chiude tutto va eseguito nella page_load o in un altro evento...calcola che sono query che fanno vedere dei dati appena apri la pagina


Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com

andrestu Profilo | Expert

sinceramente non so se cè in assoluto una giusta modalità tra le due.
a prescindere dal tuo esempio forse quello che ti stai chiedendo è dove valorizzare i controlli (o in init o in load), in merito a ciò ti faccio alcune considerazioni.

ammettiamo che tu hai una textbox e un button e nell'evento load inserisci il seguente codice:

TextBox1.Text = "ciaoooo";

a questo punto se apri la pagina, cambi il testo della textbox e clicchi sul pulsante, al refresh della pagina avrai la textbox valorizzata con "ciaoooo" e non con il nuovo testo.
questo perchè il valore della textbox viene ripristinato tramite viewstate dopo l'evento init ma prima dell'evento load, quindi anche se cerchi di cambiarlo ti ritroverai il vecchio valore.
valorizzando invece in init non hai questo "inconveniente".
se devi valorizzare nel load allora dovresti inserire questo codice:

if (!IsPostBack)
{
TextBox1.Text = "ciaoooo";
}

in questo modo valorizza solo alla prima richiesta.
comunque in linea di massima io mi trovo bene a valorizzare nell'init


Andrea Restucci - Web Developer

trinity Profilo | Guru

HO capito, ma nell'msdn si dice che nel aload si eseguono le connessioni al database e presumo a questo punto anche le relative query qualcora la pagina alla sua apertura deve caricare record provenienti da un db

Ciao
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5