0

我正在尝试将事件处理程序分配给 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");

        }
4

2 回答 2

3

当您的页面回发时,它总是会执行 Page_Load()。然后它应该继续到您的事件处理程序。如果您继续调试,它会到达您的点击事件处理程序吗?

请参阅ASP.NET 页面生命周期概述

于 2013-05-12T14:07:04.533 回答
3

这是设计使然。如果要避免在回发事件中执行 Page_Load 事件中的代码,可以Page.IsPostBack在条件语句中使用该属性。

于 2013-05-12T14:07:31.230 回答