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
.NET Core 3 @DevDay
Implementare un blocco territoriale in ASP.NET Core
Utilizzare servizi applicativi durante la validazione in ASP.NET Core
Verificare lo stato di funzionamento dell'applicazione con ASP.NET Core 2.2
Gestire interfacce multiple nella DI di ASP.NET Core
Dati binari in realtime con ASP.NET Core SignalR
Migrare un'application ASP.NET Core 2.1 alla versione 2.2
Migliorare la documentazione Swagger di ASP.NET Core Web API
Compilare dinamicamente le view in ASP.NET Core 3.0
Semplificare la gestione degli array in querystring in ASP.NET Core
Creare librerie di View riutilizzabili con Razor Class Library in ASP.NET Core
Scenari complessi di validazione con FluentValidation su ASP.NET Core
I più letti di oggi
- ecco tutte le novità pubblicate sui nostri siti questa settimana: http://aspit.co/wkly buon week-end!
- rilasciato #netcore31, con SDK e runtime. aggiornamenti anche per #aspnet31, #efcore31, #ef64, #blazor e #VS2019 info e download su https://aspit.co/byj
- DevOps in a .NET world
- WPF and Windows Apps in .NET Core 3
- Building modern web apps with Blazor
- What's new in Xamarin and Visual Studio for macos
- Creare un component che visualizza gli errori di validazione in Angular