I have a web form (page 1) which gets the input from the user and stores in database.
When I click save, after saving the data, it displays a message with application id in a new page (page 2).
If I click back button through browser, then it is going to that page 1 and displaying the input that I have given.
I want to prevent this. I disabled cache of the page 1, but when I click back this time I am getting web page has expired in IE.
But sometimes it is going to the previous page (page 1) and displaying input fields without a data.
Can anyone please help me how to fix this?
Related
I am using views concept in my asp.net form control.my first view consist of a form to capture user details.when user press continue it will move to the second view.
The problem is ,When user press the back button of the browser from the second view it doesn't move the the previous view instead move to the previous page in the browser history.
I wanted to move to the first view with the existing data in the form,when user press the back button of the browser.
You should perform a full page postback I guess, so that at client end your previous view will be saved in browser's history.
The scenario is that i have a list view with paging. If the user is on page 4, then clicks a link, decides that its the wrong link, then hits the back button, the listview need to be displayed with the same sorting on page 4, just like he left it. Currently, it is resetting the sort and displaying on page 1.
I tried storing the current page index in a session when the index is changed, then setting it from the session in the prerender event, but then i get "page expired" errors. Any ideas? TIA
The back button operation can only be handled in client-side javascript, as the server-side code does not run. For what you are trying to do, you'll want to check out these two resources (application history points):
http://msdn.microsoft.com/en-us/library/cc488548.aspx
http://msdn.microsoft.com/en-us/library/cc488538.aspx
I have page that uses a multiview. Each view contains a separate user control. One of these user controls has a list view with an image button that causes the loading of a different view in the multiview. All is fine up until this point. When the user hits the back button, they are taken back to the user control that contains the list view. The user then clicks on another image button to view different data and it returns to the detail user control using the same data as before. While debugging, I have seen that the item command event does not fire after hitting the back button.
I have tried replacing the multiview and putting each user control into separate panels. This did not change the outcome at all.
I have tried setting a cookie that expires 5 seconds after page load. When the user continues to the next page, then clicks back (and it has been longer than 5 seconds), I force the form to submit again. This loads the next control again instead of reloading the page.
I have tried setting the cacheability to no cache. This causes a "page expired" message and the user has to refresh the page. This is ugly for the user and definitely takes away from the user experience.
I am looking for the cleanest way for a user to click back and have the page reloaded so that the item command event fires correctly again.
The reason is that Back doesn't affect the Page Life Cycle. It's definitely because the page is cached and cached page doesn't execute on server. You can try this code to get rid of this issue.
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetNoStore();
It took a lot of research to find this answer, so hopefully other people stumble upon this question and find my answer. I was astonished that I was actually able to find this. Ok, enough gloating.
Because the page does not postback when the user clicks the back button, the events are not fired correctly causing problems with the next page. What has to happen is you need to be able to handle the browser's navigation buttons (i.e. back and forward). To do this you have to set EnableHistory to true within the script manager and handle the Navigate event from the script manager. You can then reload the controls using the information you save in the state object.
I used these articles from Dino Esposito on DotNetSlackers.com as a reference. Server Side History Management and Client Side History Management
i am using c# aspx , what i'm trying to do is to change a button.visible value from another page.
my page is build from 1 main page and 2 iframes ,the main page uses as a menu, iframe 1 is a login page and iframe 2 is the pages of my site.
on the menu page i have an admin control button which allows me to edit my database , this button visibility is false by default, then , if an administrator is logged in at the login iframe, the button should get visible.
i have tried in so many way to change that button but none worked ,
what i have tried so far:
1) send the button in a session ,recive on other page and change -not working
2) send the whole page and change - not working .
3) make the button public static and change - not working .
i have noticed that even when i change the text on the button on the other page ,on the menu page (the page where the button lays) the button didn't changed it's text.
anothere thing i have noticed is when i press a button on a page , the page is sort of updating (like refreshing but keeps values) , is there a way to make this kind of update manualy?
thanks .
I am assuming from your description that you are trying to change the visibility of the button on the other frame from a post back within the log in frame. The short answer is that this will not work because there is nothing being sent from the server to the client for the other frame.
Your would need to set the visibility of the button in a post back of the page containing the button (which is in the other frame).
It may be better to remove the use of frames and use a master page to provide the log in portion of your page/site as this would allow you to change the visibility of the button in a post back for any page on your site.
For the attempts that you have tried, all three of these should be avoided because the controls are recreated every post back when the page is recreated and will also be disposed every post back in the unload of the page. Since the control and page would be disposed on the first request if you access it on a subsequent call to the server there is no guarantee that the state of the page or control is valid.
For more details on the life cycle of a page, look at the ASP.NET Page Life Cycle Overview:
http://msdn.microsoft.com/en-us/library/ms178472.aspx
I have a gridview, getting data from sql server, there is an Edit link to get the detailed information for example, for a user from database.
this link open a new page with detailed information and when I click the updated button,I want to go back to the same page with that users informaton.
I set the page size to 10, it means I can see only 10 users per page,and if I click the edit link on page 25,and update the users info, I want to go back to page 25.
Should I use viewstate or gridview has any commnad to go back to the same page? the code is written in ASP.net C# sqlserver,
Thanks in advance
The gridview control will not provide this functionality.
Viewstate will only help persist data between postbacks of the same page (primarily).
Session state could be used to save the pagesize/pagenumber details onclick of the grideview edit before forwarding to the edit page. This can be re-processed back on loading of the view page.
My preference would be to store the values in the querystring. So on clicking edit, the pagesize and number are passed to the edit page (i.e edit.aspx?itemid=1&psize=10&pindx=25).
Then on finishing edit, the page number and size are based back to the view page for processing (view.aspx?psize=10&pindx=25)