Con l'uscita della versione definitiva di ASP.NET AJAX 1.0 Estensions è piuttosto semplice creare in maniera del tutto automatizzata un'aggiornamento programmatico di un'area della nostra pagina, simulando in tutto e per tutto un parziale PostBack della stessa.
Il nuovo oggetto Timer ci mette a disposione una proprietà di nome Interval con cui specificare l'intervallo espresso in millisecondi, attraverso il quale scatenare l'evento OnTick, che poi utilizzeremo per invalidare l'UpdatePanel.
Per permetterne l'aggiornamento basta aggiungere un nuovo elemento AsyncPostBackTrigger alla collection dei Triggers, con specificato l'ID del Timer come ControlID e "Tick" come EventName.
Il markup seguente mostra come fare:
<asp:UpdatePanel ID="CurrentTimePanel" runat="server"> <ContentTemplate> <asp:Label ID="CurrentTime" runat="server" Text="Ora attuale: " /> </ContentTemplate> <Triggers> <asp:AsyncPostBackTrigger ControlID="CurrentTimer" EventName="Tick" /> </Triggers> </asp:UpdatePanel> <asp:Timer ID="CurrentTimer" runat="server" Interval="1000" OnTick="CurrentTimer_Tick" />
Ed ecco il relativo codice:
protected void CurrentTimer_Tick(object sender, EventArgs e) { CurrentTime.Text = string.Format("L'ora corrente è {0}", DateTime.Now.ToLongTimeString()); }
Dopo ogni secondo verrà aggiornata la label contenente l'ora corrente in maniera automatica.
Ovviamente all'interno dell'UpdatePanel possiamo inserire qualsiasi cosa, da un controllo GridView fino ad un'immagine, piuttosto che altro.
Il controllo risulta comodissimo in quei siti che richiedono un aggiornamento frequente di aree, come una sezione news o un'area per la visualizzazione delle quotazioni azionarie.
Quello che vale la pena sottolineare è che è assolutamente bene non abusarne, in quanto un intervallo troppo breve può causare rallentamenti ed un sovraccarico inutile delle richieste al server web: l'esempio qui mostrato è puramente teorico e risolvibile con ben altro codice.
Ci sono implementazioni che possono fare un uso migliore di questa tecnica, i cui concetti rimangono però del tutto invariati.
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
- Ricavare l'indirizzo completo della pagina che esegue lo script
- Tutorial ASP.NET
- Windows 7 Installation Fest - Roma, Firenze
- Container & DevOps Day - Online
- .NET Conference Italia 2021 - Online
- .NET Conference Italia 2022 - Milano e Online
- SQL Server 2008 February CTP
- Mono 0.12: verso una nuova implementazione di ASP.NET
- Tutto per portarsi ASP.NET 4.0, Silverlight 4.0 e .NET Framework 4.0 sotto l'ombrellone