In this post, i have posted the code to detect if page is refreshed in asp.net. But before that, i would like to share the scenario where it is required.
Question
why there is need to detect if page refreshed in asp.net?.
Answer
Suppose you have a button "Save" on the page and on click of it, you are inserting a record in the database. Now if user click on Save, a record get inserted in the database but now if he/she refreshes the page, the Save Click event gets fire again and as a result same record get inserted again in the database. In order to handle this, we need to detect if page is refreshed, so that we can stop reinserting the record in the database.
PageRefresh.aspx
PageRefresh.aspx.cs
Question
why there is need to detect if page refreshed in asp.net?.
Answer
Suppose you have a button "Save" on the page and on click of it, you are inserting a record in the database. Now if user click on Save, a record get inserted in the database but now if he/she refreshes the page, the Save Click event gets fire again and as a result same record get inserted again in the database. In order to handle this, we need to detect if page is refreshed, so that we can stop reinserting the record in the database.
PageRefresh.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="PageRefresh.aspx.cs" Inherits="PageRefresh" %> <html> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <div> <asp:Button ID="btnSave" runat="server" OnClick="btnSave_Click" Text="Save" /> </div> </form> </body> </html>
PageRefresh.aspx.cs
using System; using System.Web.UI; public partial class PageRefresh : System.Web.UI.Page { protected void Page_PreRender(object sender, EventArgs e) { ViewState["IsPageRefreshed"] = Session["IsPageRefreshed"]; } protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { Session["IsPageRefreshed"] = Server.UrlDecode(System.DateTime.Now.ToString()); } } protected void btnSave_Click(object sender, EventArgs e) { if (Session["IsPageRefreshed"].ToString() == ViewState["IsPageRefreshed"].ToString()) { Session["IsPageRefreshed"] = Server.UrlDecode(System.DateTime.Now.ToString()); ScriptManager.RegisterClientScriptBlock(this, this.Page.GetType(), "abc", "alert('Save Clicked')", true); } else { ScriptManager.RegisterClientScriptBlock(this, this.Page.GetType(), "abc", "alert('Page Refreshed')", true); } }}