2017-06-16 47 views
-2

當我點擊LinkBut​​ton lbUpVoteUndo它應該禁用10秒。我已經在c#代碼隱藏中嘗試過了。有另一種方法可以做同樣的事情嗎?如何在10秒後啓用LinkBut​​ton Asp.net?

protected void lbUpVoteUndo_Click(object sender, EventArgs e) 
{ 
    lbUpVoteUndo.Enabled = false; 

    if(/* check for 10 seconds */) 
    { 
     lbUpVoteUndo.Enabled = true; 
    } 
} 
+0

我打算假設這是WebForms,si你沒有指定。如果您嘗試加載頁面,則10秒鐘後啓用按鈕,這對於服務器代碼是不可能的。您發佈的代碼將等待10秒鐘執行,然後頁面將加載啓用或禁用按鈕。 – Seano666

+0

它與'WebForms'無關。這是簡單的'linkbutton'我點擊。 – AsifAli72090

+3

如果可以的話,我建議用javascript來做,否則,你需要在UpdatePanel中包裝這個按鈕,我不確定你是否已經實現了。 –

回答

2

JavaScript可以爲您做到這一點。的這兩行代碼會爲你做它:

function DisableFor10Seconds() { 
     document.getElementById("<% lbUpVoteUndo.ClientID %>").disabled = true; 
     setTimeout(function(){document.getElementById("<% lbUpVoteUndo.ClientID %>").disabled = false;},10000); 
} 

它已經一段時間,因爲我工作的.NET Web表單,但在你的控制,我相信你可以做這樣的事情:

<asp:LinkButton ID="lbUpVoteUndo" OnClientClick="Disablefor10Seconds();" /> 

我d想補充說10秒鐘是很長時間的,你是否期望用戶等待10秒?例如,如果用戶點擊刷新,該按鈕將再次啓用。如果你想保持它禁用10秒不管發生什麼事情,那麼你應該在會話或緩存中存儲一​​個標誌,然後可以用定時器設置一個客戶端側的元素。

+0

它顯示'DisableFor10Seconds'函數錯誤,請你編輯它 – AsifAli72090

+0

錯誤是什麼? –

+0

Element'Style'缺少結束標籤erroe – AsifAli72090

1

使用JavaScript函數 -

在HTML中,添加以下代碼以您的按鈕控制 -

UseSubmitBehavior="false" OnClientClick="this.disabled='true'; this.value='Please wait...';" 

在.CS cdoe,在你點擊按鈕時使用此 -

System.Threading.Thread.Sleep(10000); 

謝謝:)

+0

我覺得你有.aspx頁面,你的代碼在服務器端意味着.cs文件。對 ? –

+0

是的,我想在'.cs'文件中處理它。 – AsifAli72090

+1

好的。您可以使用按鈕的UseSubmitBehavior =「false」。像這樣 - UseSubmitBehavior =「false」OnClientClick =「this.disabled ='true'; this.value ='請稍等......';」。並在您的.cs代碼中寫入代碼Thread.Sleep(3000); –

相關問題