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

di Daniele Bochicchio, in ASP.NET 3.5 SP 1, AJAX,

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:

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.

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

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