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
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
- le nuove api in #wp7 #mango (7.1) sono già su msdn: http://aspitalia.com/w5 nel pomeriggio microsoft svelerà le altre novità
- #office 2010 beta 2 e #sharepoint 2010 su MSDN e TechNet downloads http://u.aspitalia.com/cv
- Annunciata l'app di #Azure per #iOS e #Android con supporto alla Cloud Shell! https://aspit.co/build2017 #msbuild
- Recuperare un elemento inserito nella cache del browser tramite API JavaScript
- Microsoft TechDays-WPC 2010 - Assago (MI)
- .NET Conference Italia 2024 - Milano