ASP.Net  »  Guide  »  Guida ASP.NET AJAX 

I trigger di ASP.NET AJAX



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

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

UpdatePanel

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.

Ultimi articoli ASP.Net

LINQ e la trappola della 'deferred execution'

Una "trappola" in cui si può incappare utilizzando il risultato di...

C#, le Custom Type Conversion

Conversioni personalizzate tra classi, creare metodi particolari per...

Introduzione a Entity Framework

Il framework ORM messo a disposizione da .NET

Repeater: visualizzare un feed RSS

Utilizzare il controllo XMLDataSource e sfruttare il metodo XPath()...

Repeater, il server control "semplice"

Cos'è e come funziona il controllo Repeater

Altri articoli

Guide ASP.Net

Guida ASP.NET MVC Best Practices

Un workflow dettagliato e ricco di suggerimenti pratici per...

Guida ASP.NET Starter Kit

Un modo semplice per imparare ad utilizzare le tecnologie Microsoft...

Guida Visual Studio 2010

L'ambiente di sviluppo di riferimento per sviluppare applicazioni su...

Altre guide

Newsletter @Microsoft Dev

Ogni giovedì, direttamente nella tua e-mail: articoli, guide, tutorial e script ASP, ASP.Net, SQL server e IIS.

Iscriviti alla newsletter

Altre newsletter

Corsi in aula

Corso Progettazione database

11 Maggio 2012 a Milano
Disponibilità: 6 Posti

Amministratore di Reti Windows Server 2008

11 Giugno 2012 a Milano
Disponibilità: 5 Posti

Nessun corso previsto