2009-06-08 99 views
4

由于某些原因,我放入文本框的任何内容都无法保存。有人能告诉我为什么会发生这种情况吗?下面是简化的代码我使用:文本框值不保存

的.aspx

<body> 
    <form id="form1" runat="server"> 
    <div> 
    Try this: 
     <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> 
     <asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" /> 
    </div> 
    </form> 
</body> 

.aspx.cs

protected void Page_Load(object sender, EventArgs e) 
{ 
    TextBox1.Text = "Test 1"; 
} 

protected void Button1_Click(object sender, EventArgs e) 
{ 
    Response.Write(TextBox1.Text); 
} 

的回复于总是出来是 “测试1” 不管我放进去。 感谢您的帮助!

+0

只是一个小注释:不要在你的事件处理程序使用的Response.Write() - 在页面还没有开始渲染,文本将最有可能在错误的地方结束。而是使用Label或Literal控件。 – 2009-06-08 01:14:22

回答

17

在设置之前,您需要检查您的Page_Load事件中的后期回放。否则,Page_Load将始终覆盖您在文本框中输入的内容。

protected void Page_Load(object sender, EventArgs e) 
{ 
    if(!IsPostBack) 
    { 
    TextBox1.Text = "Test 1"; 
    } 
}