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>

ただし、プロジェクトをデバッグして上記のボタンをクリックすると、Votes_Click イベントではなく page_load イベントが実行されます

なぜそれをするのですか?そして、この問題を解決する方法???

コードビハインドページのハンドルは

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 に答える