Tramite la classe System.Web.UI.StateBag, ASP.NET implementa un sistema, chiamato ViewState, che permette di mantenere, attraverso richieste consecutive della stessa pagina, lo stato dei controlli.
Questo permette, ad esempio, di non richiedere ogni volta al database i risultati di un datagrid paginato, o più semplicemente di mantenere la selezione fatta dall'utente.
Tra le possibilità offerte dal ViewState, rientra quella di salvare informazioni personalizzate. Nel nostro esempio memorizzeremo nel ViewState la nostra query SQL, in modo da recuperla facilmente in seguito da un post back della pagina stessa.
<SCRIPT LANGUAGE="VB" RUNAT="SERVER"> Sub Page_Load (sender as Object, e as EventArgs) if Not Page.IsPostBack then Dim strSQL as String = "SELECT * FROM TITLES" ViewState("SQL") = strSQL lblSQL.Text = strSQL else lblSQL.Text = "Recuperato dal ViewState: " lblSQL.Text += ViewState("SQL") end if End Sub </SCRIPT> <form runat="server"> <asp:Label id="lblSQL" runat="server" /> <input type="submit"> </form>
Attenzione a non eccedere con la quantità di dati inseriti nel ViewState. Queste informazioni vengono inserite direttamente in ogni richiesta HTTP ed un numero elevato di queste informazioni può rallentare più del dovuto l'applicazione!
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
I più letti di oggi
- Accedere con ASP.NET ad un documento XML creato dall'oggetto recordset di ADO e ASP
- Richiamare programmaticamente le operazioni di aggiornamento, eliminazione e inserimento di FormView, DetailsView e GridView
- Aumentare la scalabilità di ASP.NET Core Web API con caching client side
- Visualizzare contenuti Fullscreen con HTML5
- Disabilitare un bottone in una pagina HTML pensando all'accessibilità
- Realizzare siti sicuri con ASP.NET Web Pages
- Focus dei tag input con HTML5
- Disponibile la beta di Silverlight 5
- Ricavare lo spazio occupato su disco dal nostro sito