#950 - Il supporto al pulsante back del browser con ASP.NET AJAX 3.5 SP 1

ASP.NET 3.5 Service Pack 1 introduce una miglioria ad AJAX che consente di supportare il pulsante back del browser durante i PostBack asincroni, dando la possibilità di aggiungere un tocco di usabilità molto ma molto interessanti alle applicazioni che sfruttano questa modalità.

Per prima cosa occorre abilitarne il supporto sullo ScriptManager, agendo sulla proprietà EnableHistory e EnableSecureHistoryState in questo modo:

<asp:ScriptManager runat="server" id="SM" EnableHistory="true" EnableSecureHistoryState="true"  onnavigate="SM_Navigate"/>


Successivamente è possibile aggiungere un punto nell'history, lato server, invocando il metodo AddHistoryPoint dello ScriptManager:

SM.AddHistoryPoint("Chiave", "Valore", "Titolo nell'history");


E' possibile fare lo stesso da codice client side, con questa sintassi:

(Unknown language javascript

function clickButton(buttonNumber)
{
var historyPoint = { pageState : buttonNumber };
var title = "Aggiunto nell'History dal button " + buttonNumber;
Sys.Application.addHistoryPoint(historyPoint, title);
}


Viene in automatico generato un iframe con un URL casuale, che verrà sfruttato per gestire, in caso di navigazione con i pulsanti del browser, il cambio di stato.

Per poter riportare la pagina allo stato originale, è necessario intercettare l'evento OnNavigate dello ScriptManager, in questo modo:

void SM_Navigate(object sender, HistoryEventArgs e){
string MyValue = Convert.ToInt32(e.State["Chiave"]);
}


In questo modo verrà prelevato il valore specificato dalla chiave e si potrà, ad esempio, rieffettuare l'operazione necessaria a ripristrinare lo stato.


Approfondimenti
Commenti

Esprimi il tuo giudizio su questo script:

Per procedere devi essere autenticato.

cdeli scrive:
#950 - Il supporto al pulsante back del browser con ASP.NET AJAX 3.5 SP 1

Ottima cosa, è esattamente quello che cercavo, ma non riesco a farlo funzionare:nella cronologia mi mette il nuovo url, ma quando clicco back, non ci ...
mercoledì 8 ottobre 2008 | 8 risposte

Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.