簡體   English   中英

單擊后禁用按鈕功能

[英]Button disable function after clicking on it

我有大約150頁的保存按鈕。 每當用戶單擊“保存”按鈕時,我應在單擊后禁用該按鈕。 這樣用戶就不會再次單擊保存按鈕。

   protected void Button1_Click(object sender, EventArgs e)
    {
      // right now once the  user  clicks the save button
       Button1.Enabled = "false"

    }

現在我正在這樣做。 有沒有更好的解決方案,您可以為我提供改善編碼的方法,那就太好了。

謝謝

我認為實現此目標的最佳選擇是使用javascript。 如果您使用的是jQuery(我什至可以開始推薦足夠多的jQuery),則可以將javascript放在您的母版頁中。 您只需要找到一種為保存按鈕創建選擇器的方法。 像這樣:

$(document).ready(function(){
        $('.saveButton').bind("click", function(e) {
                $(this).attr("disabled", "true");
            return true; //causes the client side script to run.
        });
    });

在此示例中,我假設所有保存按鈕都具有css類“ .saveButton”,但是您可以找到自己的選擇按鈕的方法。

干杯!

您也可以嘗試通過Javascript禁用它。

單擊鏈接后,您需要使用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,這樣您的代碼就更加簡潔(由於其命令鏈)。

您要做的是使用一些JavaScript,並在客戶端單擊它時將其禁用。

該Click事件在回發時觸發。

在用戶單擊后附加javascript以禁用按鈕的最簡單方法是(在頁面onLoad事件中):

myButton.Attributes.Add("onclick", " this.disabled = true; " + ClientScript.GetPostBackEventReference(btnSave, null) + ";");

但是,如果在許多頁面上重復執行按鈕,則可以創建嵌套的母版頁並在其中放置保存按鈕,或者從實現此禁用功能的類繼承您的頁面。 另外,單擊后您可以“掃描”要禁用的控件!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM