0

ボタンをクリックしたときに textbox1 を変更する必要がありますが、 textbox3が変更されないのはなぜですか?

        protected void Page_Load(object sender, EventArgs e)
        {
            TextBox3.Text = DateTime.Now.ToLongTimeString();
        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            TextBox1.Text = DateTime.Now.ToLongTimeString();
        }

<asp:ScriptManager ID="ScriptManager1" runat="server">
        </asp:ScriptManager>

        <asp:UpdatePanel ID="UpdatePanel1" runat="server">
            <ContentTemplate>
          <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button"/>
          <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>  
             </ContentTemplate>
    <br />
<asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
        </asp:UpdatePanel>

Button1をクリックすると、TextBox3が変更さ れるのはなぜですか?

4

1 に答える 1

3

ボタンをクリックすると、リクエストがサーバーに送信され、ラウンドトリップが発生し、Page_Load再度実行されるためです。IsPostBackプロパティを使用して、リクエストがポストバック サイクルの一部であるかどうかを検出することで、これを回避できます。

if (IsPostBack) {

}

または、ほとんどの場合と同様に、ポストバックではないときに何かを実行します。

if (!IsPostBack) {
  TextBox3.Text = DateTime.Now.ToLongTimeString();
}
于 2013-02-20T13:15:50.200 に答える