2010-06-15 174 views
0

我有表單數據,當用戶單擊提交按鈕時,我插入到數據庫中。問題在於,如果用戶刷新頁面後原始提交,表單數據將被重新提交併因此第二次插入到數據庫中。我怎樣才能解決這個問題?如何停止刷新頁面上的事件刷新

回答

0

使用合適的機制來檢測雙張貼後提交按鈕事件。 我更願意使用以下內容來檢測底層請求是否加倍發佈。

private bool refreshState; 
private bool isDoublePosted; 

protected bool IsInDoublePosting 
{ 
    get 
    { 
     return isDoublePosted; 
    } 
} 

protected override void LoadViewState(object savedState) 
{ 
    object[] states = (object[])savedState; 
    base.LoadViewState(states[0]); 
    refreshState = Convert.ToBoolean(states[1]); 
    isDoublePosted = (refreshState == Convert.ToBoolean(Session["IsInDoublePosting"])); 
} 

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

在您的按鈕單擊事件處理程序:

if (!this.IsInDoublePosting) 
    { 
     // your code goes here 
    } 
0

嘗試詢問(在事件處理函數中)關於發件人的信息。

0

從你的服務器端給予的Response.Redirect(「yourpage」)處理您的請求

+0

看到此鏈接http://www.codeproject.com/kb/aspnet/SyncControl.aspx 標記爲答案,如果你的作品。 – renjucool 2010-06-15 09:53:58