摘要:[ASP.NET][Control][ViewState]在執行過程中產生物件並記錄該物件的值
====================================================== pennychen 寫信: | |
|
==============================================================
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轉換型別