textBox在回发时丢失值?

时间:2012-02-29 21:33:32

标签: c# asp.net page-lifecycle

我有asp.net页面(Form = runat server)

2个文本框:

<input type="text" id="tb1" />
<asp:TextBox ID="tb2" runat="server" />

和按钮提交。

但是,当我在其中添加一些值时 - 按下按钮 - 只有tb2从服务器返回其值。

我认为输入字段值从客户端到服务器并且始终返回!

在什么情况下(在页面生命周期中)tb1是否会失去其值?

3 个答案:

答案 0 :(得分:4)

<input type="text" id="tb1" />是文字HTML 没有服务器端代码将值重新放入。

该功能是服务器端控件的一部分。

答案 1 :(得分:2)

POST将包含在tb1中输入的信息 - 因此可以从请求中读取

如果您将其更改为

<input type="text" id="tb1"  runat="server" /> 

它会按你的意愿工作。

没有runat = server它不会“丢失”它的值 - 它永远不会被填充 - 因为它只是POST中的数据而没有连接到服务器端控件。

最后一点 - 明确回答您的一些评论 - POST数据在PreLoad事件之前处理 - 可以从http://msdn.microsoft.com/en-us/library/ms178472.aspx

找到

答案 2 :(得分:1)

tb1不是服务器端控件,它是一个普通的html dom对象。

您应该在Request.Form值集合中的帖子后找到它的值。