UpdatePanel in incomplete state after using browser's back button
by johna | January 27, 2015 | ASP.NET Web Forms Web Development
I recently experienced an issue with an ASP.NET Web Forms page with various UpdatePanels. The page has two DropDownLists, the selection of one results in populating of possible values in the other, and the selection of the other results in enabling of a Button. Then if the Button is clicked the user is redirected to another website, based on their selection.
The problem is after the redirect to the other website, if the user then goes back to the original page, the first DropDownList is in its last state, but the second DropDownList is empty and to continue they must either select away from their last choice in the first DropDownList or refresh the page.
Ideally I would like to return the page and all controls to their last state, or make the page reset to as if it was accessed for the first time.
The ScriptManager history functionality could probably be used for this purpose, but a simple solution that worked for me was to disable all caching of the page, which results in the page being reset.
The following code might be a bit of overkill but does the job:
The problem is after the redirect to the other website, if the user then goes back to the original page, the first DropDownList is in its last state, but the second DropDownList is empty and to continue they must either select away from their last choice in the first DropDownList or refresh the page.
Ideally I would like to return the page and all controls to their last state, or make the page reset to as if it was accessed for the first time.
The ScriptManager history functionality could probably be used for this purpose, but a simple solution that worked for me was to disable all caching of the page, which results in the page being reset.
The following code might be a bit of overkill but does the job:
Response.Expires = 0;The answer came from this answer on ASP.NET forums.
Response.ExpiresAbsolute = DateTime.Now.AddYears(-2);
Response.AddHeader("pragma", "no-cache");
Response.AddHeader("cache-control", "private");
Response.CacheControl = "no-cache";
Response.Cache.SetExpires(DateTime.UtcNow.AddMinutes(-1));
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetNoStore();
Related Posts
Converting dBase IV programs to run in the browser
by johna | September 13, 2024
Some pointless entertainment trying to get some old dBase programs running in the browser.
How to set up a debugging using the Turnkey Linux LAMP stack and VS Code
by johna | December 19, 2023
The second part in my guide to setting up a website and database using the Turnkey Linux LAMP stack.
How to set up a website and database using the Turnkey Linux LAMP stack
by johna | November 18, 2023
If you need to host your own website for the purposes of web development, Turnkey Linux LAMP Stack is an easy to install all-in-one solution that you can set up on a spare computer or a VM (Virtual Machine).
Comments
There are no comments yet. Be the first to leave a comment!