使用asp.net,在刷新頁面的時候會自動觸發伺服器端的事件。舉個簡單的例子,如:一個註冊頁面,我們填寫完註冊資訊之後,如果按F5刷新之後,會自動觸發到Button事件上,這樣就造成了又註冊了一次的麻煩。
我先前的解決方案:用關鍵字查詢,如有相同,則提示已有此使用者。
但是這種方案不能在沒有表識的情況下使用,他會重新提交。有鑑於此,我尋找了一種新的解決方案,很慶幸,在朋友的提點下,迸發了這樣的解決方案,肯定有更好的解決方案,不吝賜教。
解決想法:刷新時,捕捉KeyPress,讓他觸發其他無用的事件。
1.捕捉F5事件的JavaScript
window.document.onkeydown = KeyStroke;
function KeyStroke()
{
var key = event.keyCode;
event.srcElement.releaseCapture();
if(key == 116)
{
document.getElementById("Button1").click();
event.keyCode=0;
event.returnValue=false;
}
}
2、aspx頁面放置一個Button
<asp:Button id="Button1" style="Z-INDEX: 102; LEFT: 344px; POSITION: absolute; TOP: 408px; WIDTH: 0px;" runat="server"
Text="Button"></asp:Button>
3、Button事件
private void Button1_Click(object sender, System.EventArgs e)
{
Response.Write( "You have pressed the key F5");
}
這個「舍車保帥」的方案,能解決刷新自動觸發事件的解決方案這個小問題,如果誰有更好的方案,希望告訴我一聲,不勝感激!