簡體   English   中英

OnClientClick事件未觸發

[英]OnClientClick event not firing

在我正在構建的網頁中,默認情況下需要隱藏一個div,當用戶單擊鏈接按鈕時該div才會顯示。 這是鏈接按鈕和以下div的代碼:

    <asp:LinkButton runat="server" Text="Words & stuff go here"
        OnClientClick="button_Click"></asp:LinkButton>

    <div id="Calculator" runat="server" visible="false">
        //CODE GOES IN HERE 
    </div>

這是cs文件中鏈接按鈕的代碼:

void button_Click(object sender, EventArgs e)
    {
        if (Calculator.Visible)
            Calculator.Visible = false;

        else if (!Calculator.Visible)
            Calculator.Visible = true;
    }

我在后面的代碼中有一個斷點,當我調試時,從未到達斷點,我也不知道為什么。

在客戶端點擊時用於客戶端事件。 您必須使用onClick =“ button_Click”使其起作用。

OnClientClick希望button_Click事件在頁面上的javascript中定義,而不是在后面的代碼中的C#中定義。

看到這個

ASP .NET控件的OnClientClick屬性引用一個客戶端函數,這意味着它將嘗試調用JavaScript函數。

您有兩種方法可以修復代碼。

選項1:
如果希望按鈕執行回發並在.cs文件中調用button_Click函數,則只需將按鈕代碼更改為:

<asp:LinkButton runat="server" Text="Words & stuff go here" OnClick="button_Click"></asp:LinkButton>

選項2:
如果希望使用OnClientClick ,則可以執行以下操作(在.aspx文件中):

<script type="text/javascript">
function button_Click() {
  var calculator_id = '<%= Calculator.ClientID %>';
  var calculator = document.getElementById(calculator_id);
  if (calculator.style.display == 'none') {
    calculator.style.display = 'block';
  } else {
    calculator.style.display = 'none';
  }
}
</script>

暫無
暫無

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

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