2012-02-29 104 views
3

我有asp.net页面(表= RUNAT服务器)textBox在回发中丢失值?

2文本框:

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

和一个按钮提交。

但是,当我把一些值 - 按下按钮 - 只有tb2正在从服务器获取其价值。

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

什么事件(页面生命周期中)tb1是否会失去它的价值?

+0

找到如何(如果)你找TB1的价值? – 2012-02-29 21:35:16

+0

@HenkHolterman我想在屏幕上看到它 – 2012-02-29 21:36:49

回答

2

的POST将包含在TB1输入的信息 - 所以它可以从请求

读,如果你将其更改为

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

,将工作,只要你想。

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

最后一个要点 - 明确地回答大家的一些意见 - 只是预载事件之前的POST数据进行处理 - 这可以从http://msdn.microsoft.com/en-us/library/ms178472.aspx

+0

我知道我可以通过request.form读取它,但是在asp.net生命周期的哪个阶段 - 它将值返回到tb2(而不是tb1)? – 2012-02-29 21:39:07

+2

@royi - 停止比较tb1和tb2。他们完全不同。 – 2012-02-29 21:40:55

+0

其他帖子是正确的 - 它不会被重新输入,因为这不是服务器端控件(除非你输入runat = server) – dice 2012-02-29 21:40:59

4

<input type="text" id="tb1" />是字面的HTML。
没有服务器端代码将值返回。

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

+0

什么事件(在页面生命周期中)tb1是否会失去它的价值? – 2012-02-29 21:37:17

+0

@RoyiNamir这个问题没有意义。 'tb1'不是服务器端控件,它完全不涉及服务器端页面生命周期。 – asawyer 2012-02-29 21:40:08

+0

tb1的值永远不会被设置为服务器端的控件,因此它永远不会失去它的价值。如果您愿意,您可以通过'Request'属性访问该值。 – 2012-02-29 21:41:27

1

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

但是,您应该在Request.Form值集合中找到其后的值。

+0

我知道我可以通过request.form读取它,但是在asp.net生命周期的哪个阶段 - 它将值返回到tb2(而不是tb1) – 2012-02-29 21:40:03

+0

@RoyiNamir请参阅我的其他响应。 – asawyer 2012-02-29 21:40:39