在asp.net中不理解

时间:2013-02-20 13:14:08

标签: asp.net ajax

我希望当我点击按钮时,我的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 会发生变化 的为什么

1 个答案:

答案 0 :(得分:3)

因为当您单击按钮时,您向服务器提交请求,这会导致往返,从而导致Page_Load再次执行。您可以通过使用IsPostBack属性检测请求是否属于回发周期来避免这种情况:

if (IsPostBack) {

}

或者,就像大多数情况一样,当回发时做一些事情:

if (!IsPostBack) {
  TextBox3.Text = DateTime.Now.ToLongTimeString();
}