Tra le caratteristiche che rendono interessante l'UpdateProgress
c'è la sua capacità di saper gestire situazioni complesse: in questa lezione vediamo come realizzare la gestione dell'attesa di più pannelli asincroni, usando un solo indicatore di progresso.
Per fare ciò abbiamo bisogno di 3 UpdatePanel
e di 1 solo UpdateProgess
separato. Nei primi due pannelli avremo dei controlli che dovranno catturare informazioni per inviarle in modalita asincrona; nel terzo vogliamo visualizzare i risultati.
In questo caso l'UpdateProgress
è esterno ai pannelli e senza alcuna specifica, è in grado di gestire entrambe le attese.
Inoltre per accedere asincronamente al controllo che dovrà esporre il risultato, dobbiamo far si che esso sia visibile dal codice C# o VB.net, quindi dobbiamo inserirlo per forza in un altro UpdatePanel
.
Per ciò, per prima cosa costruiamo il layout che avrà il seguente schema logico: un primo UpdatePanel
per l'inserimento del nome utente, un secondo per l'inserimento del cognome dell'utente ed infine un terzo per il risultato finale.
Listato 3. Struttura XHTML
|UpdatePanel|
|TextBox|
|Bottone|
|UpdatePanel|
|TextBox|
|Bottone|
|UpdateProgress|
|Attesa|
|UpdatePanel|
|Risultato|
Possiamo anche avere diversi UpdatePanel
in un'unica pagina, tutti gestiti dal loro UpdateProgess
. Infatti il controllo UpdateProgress
espone una proprietà disponibile anche in modalità visuale, che si chiama AssociatedUpdatePanelID ed indica proprio su quale pannello il controllo deve agire.