在允許頁面繼續回發之前,您需要使用JavaScript來修改鏈接,以防止將來點擊處理。一個天真的嘗試是,
<asp:LinkButton runat="server" id="button" OnClientClick="this.href='#'">
Click - doesn't quite work
</asp>
這成功地避免連續點擊觸發從回發,但它也可以防止第一次點擊從觸發回發。需要多一點邏輯才能使其正常工作。在代碼隱藏中,我抓取了實際的回發JavaScript代碼片段並將其用於某些邏輯。
protected void Page_PreRender(object sender, EventArgs e)
{
button1.OnClientClick = string.Format(
"if(this.getAttribute('disabled')) return false; {0}; this.setAttribute('disabled','disabled'); return false;",
Page.ClientScript.GetPostBackEventReference(button1, null));
}
在HTML模板:
<asp:LinkButton runat="server" id="button" >
Click - does not allow multiple postbacks
</asp>
你可以用一些CSS美化這個了,在這一點上我會建議包括jQuery的,所以你的代碼更簡潔(由於其命令鏈接)。
您認爲目前的解決方案有什麼問題? – pmarflee 2009-10-17 19:02:53