[ASP.NET][ViewState] 在執行過程中產生物件並記錄該物件的值

摘要:[ASP.NET][Control][ViewState]在執行過程中產生物件並記錄該物件的值

 


======================================================
 pennychen 寫信:

再請教一下....產生出來的textbox如何在按下button後...怎麼把它的值存下來呢?? 

TextBox t=new TextBox();

t.Left=100;

t.Top=100;

t.Name="txt1";

Controls.Add(t); 

那我怎麼在程式中抓到txt1.text的值呢?? 

感謝

 ==============================================================

MyAnswer :

如果你用的Server Control....

因為是在Clint端向Server request 或 posback時動態編譯才會產生Control

(Server Control  --> Html Control & JavaScript)

所以在未編譯前沒有這個Control.....

須在Load完或事件發生後才能抓到Control

這時候Clint端的brower為Html Control

你若是要抓取Control屬性須使用Html的Control屬性

ex.

t.Text ( Server Contro l) --> txt1.Value ( Html Control ) 

因為Control不是Sever Control所以沒有ViewState屬性

可以在Code使用ViewState來保留Control的值或維持網頁的狀態

(.NET編譯後的隱藏欄位) 

ex.產生出來的textbox如何在按下button後...把它的值存下來


//產生Server Control

textBox t = new textBox();

t.ID = "text1";
t.Location = new Point(99, 99);

this.Controls.Add(t);


 

//-----------------------------------------

// 存入 ViewState 中

ViewState["text1"] = text1.Value;

// 從 ViewState 讀取string

string strText1 = (string)ViewState["text1"];  //ViewState轉換型別



Darren.NET