iman
iman

Reputation: 173

server side alert message that shows unwanted when get back and reload the page

I have a submit button and below is the code in the onClick event :

protected void btnSubmit_Click(object sender, EventArgs e)
{
...
ScriptManager.RegisterClientScriptBlock(this, GetType(), "alertMessage", "alert('Submitted')", true);
}

This code works.

But the problem is when user go to next page by this:

Response.Redirect("page2.aspx");

and when click backspace to get back to page1 and,

before the reload,

the following message box appears!!

this problem happened again when we refresh(F5) the page1 after submiting

how will I solve this?

I tried:

 1. if(isPostback)// before the alert
 2. string message = "Submitted";
    System.Text.StringBuilder sb = new System.Text.StringBuilder();
    sb.Append("<script type = 'text/javascript'>");
    sb.Append("window.onload=function(){");
    sb.Append("alert('");
    sb.Append(message);
    sb.Append("')};");
    sb.Append("</script>");
    ClientScript.RegisterClientScriptBlock(this.GetType(), "alert", sb.ToString());

Upvotes: 1

Views: 86

Answers (1)

Rahul R G
Rahul R G

Reputation: 113

In such case, you can implement a special code block to detect browser refresh as

private bool refreshState;
private bool isRefresh;

protected override void LoadViewState(object savedState)
{
    object[] AllStates = (object[])savedState;
    base.LoadViewState(AllStates[0]);
    refreshState = bool.Parse(AllStates[1].ToString());
    if (Session["ISREFRESH"] != null && Session["ISREFRESH"] != "")
        isRefresh = (refreshState == (bool)Session["ISREFRESH"]);
}

protected override object SaveViewState()
{
    Session["ISREFRESH"] = refreshState;
    object[] AllStates = new object[3];
    AllStates[0] = base.SaveViewState();
    AllStates[1] = !(refreshState);
    return AllStates;
}

In the button submit you can do it as

protected void btn3_Click(object sender, EventArgs e)
{
    if (isRefresh == false)
        {
            Insert Code here
        }
}

Upvotes: 1

Related Questions