1. 程式人生 > >ASP.NET中ViewState

ASP.NET中ViewState

1、ViewState跟Session有什麼不同?


   ViewState只存在當前頁面
   比如說你在A.aspx頁面裡用ViewState["哈"]="哈羅";
   你在B.aspx裡就用不了ViewState["哈"];因為ViewState["哈"]只存在A.aspx頁面
   Session在內在的變數地址不同,每個使用者都有一個,比如登入頁面,A使用者登入後,用Session物件把登入資訊新增進去,
   你就可以在A.aspx和B.aspx頁面都能取到Session物件裡面的東西,有人建議存進去的東西不要大於100k,不然IIS程序會什麼回收,
   具體說法我忘記了,那東西回收之後,Session物件內的東西就容易丟失,大概就這麼個意思保持當前頁面的一些控制元件的狀態和值


2、簡述ViewState的作用


   保持當前頁面的一些控制元件的狀態和值


   例如textbox的值,label的值,即使他們是visiable=false


3、asp.net所有的控制元件都可以禁用viewstate嗎


   伺服器端元件多數都有 viewstate 屬性,這個屬性是儲存控制元件狀態的屬性,如果禁用了將會出現不能回到上一次狀態。


4、viewstate用法


   在一個aspx頁面中,在第一個點選事件中獲得了很多ID,想在第二個點選事件中呼叫這些ID去資料庫查詢,
   問題是不知道將這些ID傳過去,下面是用viewstate實現的。


   儲存時:直接ViewState["idlist"] = 你的idlist
   讀取時 List<int> idlist=(List<int>)ViewState["idlist"] (假設你的id list存在List<int>中)