How to avoid page realod using Page.IsPostBack?

I have a confirmation page that when it loads up the first time it executes some code. What I'm trying to prevent is when you refresh that page it should not execute the code anymore and hence should do something else e.g. redirect to another page.

The code is as follows:

If Page.IsPostBack = False Then

//code to be executed when loaded the first time

Else

//code to redirect to another page

End If

The problem I'm having is when you initially get to the page (for the first time) it executes the code in the if condition, but when I refresh the page it again executes the code in the if statement, where as it should execute the code in the else statement.

Can anyone see where I'm going wrong?

Thanks
LVL 2
Gary2SevenAsked:
Who is Participating?
 
Guy Hengel [angelIII / a3]Connect With a Mentor Billing EngineerCommented:
the "postback" is ONLY true when you have a postback, ie via a button.
if you use F5 (in IE) to refresh the page, it will not be a postback.

to solve that, you have to set a session variable, for example, on the IsPostBack = false, and check on that one.
If Page.IsPostBack = False Then
  If Session("page_loaded") = "YES" Then
    //code to redirect to another page
    // -> in that other page, the session "page_loaded" needs to be cleared again!!
  Else
    //code to be executed when loaded the first time
   
    Session("page_loaded") = "YES"
  End If
Else
 //code to redirect to another page
End If

Open in new window

0
All Courses

From novice to tech pro — start learning today.