2013-05-12 86 views
0

我想事件處理程序分配給ASP按鈕點擊ASP.Net分配事件處理程序ASP按鈕點擊

<asp:Content runat="server" ID="BodyContent" ContentPlaceHolderID="MainContent"> 
    <div> 
     <asp:Table id="tb" runat="server" Height="239px" Width="417px" > 

     </asp:Table> 

      </div> 
    <table> 
      <tr> 
       <td></td><td><asp:Button ID="Votes" runat="server" Text="Vote" OnClick="Votes_Click" /></td> 
      </tr> 
     </table> 

</asp:Content> 

但調試項目時,點擊上面的按鈕,它執行Page_Load事件不Votes_Click事件

爲什麼它這樣做? 以及如何解決這個問題?

和代碼隱藏頁的手柄是

protected void Votes_Click(object sender, EventArgs e) 
     { 
      ClientScript.RegisterClientScriptBlock(this.GetType(), "btn", 

    "<script type = 'text/javascript'>alert('Button Clicked');</script>"); 
      int i = 0; 
      Response.Redirect("Default.aspx"); 

     } 
+2

頁面始終執行Page_Load處理程序 - 它是頁面生命週期的一部分。它在那之後執行控制事件。您可以在'Votes_Click'處理程序中放置斷點,並在*頁面加載後查看它是否已經到達*? – 2013-05-12 14:07:14

回答

3

這是由設計。如果您希望在發生回發時避免執行Page_Load事件中的代碼,則可以在條件語句中使用Page.IsPostBack屬性。

+0

它的作品!非常感謝你 – 2013-05-12 14:22:00

3

當您的頁面回,它總是會做的Page_Load()。它應該繼續到你的事件處理程序。如果您繼續調試,它是否會轉到您的單擊事件處理程序?

ASP.NET Page Life Cycle Overview

+0

感謝您的回答,但我已在page_load事件中創建了動態控件。如果它再次運行,它將產生具有相同ID的多個控件的錯誤。我必須做什麼? – 2013-05-12 14:15:46

相關問題