Da quanto esaminato nella lezione precedente, potremmo enunciare che: «se un controllo esegue postback da un UpdatePanel, si aggiorna solo l'UpdatePanel; se il controllo è esterno all'UpdatePanel si aggiorna la pagina», ma non è sempre così.
Vediamo il caso in cui un evento esterno all'UpdatePanel influenza i componenti al suo interno.
Supponiamo di avere una Label all'interno di un UpdatePanel, che vogliamo moficare in modalità asincrona, quando clicchiamo su pulsante esterno al pannello. La Web Form conterrà quindi un pulsante, lo ScriptManager e l'UpdatePanel con la Label.
Figura 2. Definizione della pagina in modalità visuale
Per ottenere il comportamento desiderato dobbiamo ricorrere ai trigger di ASP.NET AJAX.
Viene considerato "trigger" un evento scatenato da un controllo, ma gestito dall'UpdatePanel. Un controllo quindi può provocare due tipi di trigger: "asincrono" e "PostBack". Nel primo caso il controllo che scatena l'evento non causa il caricamento della pagina, nel secondo caso si.
Prendiamo il nostro UdatePanel e clicchiamo nella proprietà trigger collection. Qui possiamo inserire un nuovo trigger di tipo asincrono e collegarlo all' evento "click" del pulsante.
Figura 3. Creazione del trigger
A questo punto abbiamo il nostro controllo ASP.NET che esegue un PostBack asincrono. Tramite il suo evento click possiamo andare a modificare tutti i controlli, e quindi i loro attributi, presenti negli UpdatePanel della pagina. Per fare cio andiamo nel file di codice della pagina e inseriamo la routine del listato 4.
Listato 4. Delegato per pulsante invia
// Invio
protected void btnInvia_Click(object sender, EventArgs e)
{
lblRisultato.Text = "Oggi è il: " + Date.Now.ToLongDateString();
lblRisultato.Text += "<br />";
lblRisultato.Text += "Sono le ore: " + Date.Now.ToLongTimeString();
}
In questo modo la pagina aggiorna il valore dell'etichetta ma non esegue un PostBack. Potremmo sfruttare questa caratteristica, per filtrare dei dati in una griglia, per esempio. Nel caso in cui invece impostiamo un trigger di tipo PostBack, il controllo, anche se presente nell'UpdatePanel, eseguirà un richiamo completo della pagina.
LINQ e la trappola della 'deferred execution'Una "trappola" in cui si può incappare utilizzando il risultato di... |
C#, le Custom Type ConversionConversioni personalizzate tra classi, creare metodi particolari per... |
Introduzione a Entity FrameworkIl framework ORM messo a disposizione da .NET |
Repeater: visualizzare un feed RSSUtilizzare il controllo XMLDataSource e sfruttare il metodo XPath()... |
Repeater, il server control "semplice"Cos'è e come funziona il controllo Repeater |
Guida ASP.NET MVC Best PracticesUn workflow dettagliato e ricco di suggerimenti pratici per... |
Guida ASP.NET Starter KitUn modo semplice per imparare ad utilizzare le tecnologie Microsoft... |
Guida Visual Studio 2010L'ambiente di sviluppo di riferimento per sviluppare applicazioni su... |
Ogni giovedì, direttamente nella tua e-mail: articoli, guide, tutorial e script ASP, ASP.Net, SQL server e IIS.
Iscriviti alla newsletter
|
|
Corso Progettazione database11 Maggio 2012 a Milano |
|
|
Amministratore di Reti Windows Server 200811 Giugno 2012 a Milano |
|
Nessun corso previsto |