2010-08-25 87 views

回答

0

不確定有關aspxbutton具體,但一般來說,你會在控件的onclick屬性上有這樣的東西。

onclick="this.disabled=true;" 
1

在客戶端,您可以在單擊它時將其禁用。

在服務器端,我最喜歡的方法通常是發送一個隨機數與表單數據,然後拒絕重複的隨機數。

與往常一樣,客戶端以快速(希望)友好的方式進行驗證,即使客戶端代碼遇到一些意外的瀏覽器問題,或者有人故意搞砸,服務器端也會進行確認。

+0

如果您在點擊時禁用客戶端,則不會再觸發服務器端的「OnClick」方法。 – 2013-01-07 08:23:15

+0

@UweKeim與往常一樣,客戶端以快速和(希望)友好的方式進行驗證,即使客戶端代碼遇到一些意外的瀏覽器問題,或者有人故意將事情搞亂,服務器端也會進行確認。 – 2013-01-07 09:47:11

+0

我的觀點是,如果你禁用ASPxButton控件的客戶端,你會打破控件的功能:-) – 2013-01-07 09:52:21

2

這可以用下面的代碼來完成:

var buttonClicked = false; 

function MyBtnClick(s,e){ 
    if(buttonClicked) return; 
    buttonClicked = true; 
    // do something 
} 

<ASPxButton id="btn" runat="server"> 
    <ClientSideEvents Click="function(s,e) { MyBtnClick(s,e); } "/> 
</ASPxButton> 
0

在運行更新查詢簡單地添加到代碼的啓動代碼:

ButtonNameOrID.Enabled = False // add ; to end if C# 

然後,在結束代碼,請添加:

ButtonNameOrID.Enabled = True // add ; to end if C# 

這將禁用/啓用C#或VB代碼中的按鈕。

+1

這不起作用,因爲請求是在客戶端更新之前在服務器上處理的。所以這個按鈕不會在客戶端被禁用。 – Hanno 2013-01-07 08:31:39