2010-06-15 138 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