2012-02-29 43 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