2014-04-22 88 views
-1

Page ViewState,Control ViewState和ControlState有什麼不同?爲什麼ASP.Net有三種不同的東西?Page ViewState,Control ViewState和ControlState

+1

嘗試谷歌的這些問題.... –

+0

@AbdulRahmanAnsari我已經試過......但沒有得到任何滿意的答覆:-( – John

回答

1

A Page是Control,因此繼承ViewState屬性。保存ViewState時,ASP.NET遍歷控件樹,將每個Control的ViewState保存到一個持久性介質(默認情況下是呈現的HTML中的隱藏字段)。

ViewState招致的開銷,這可能是昂貴的,特別是對於數據綁定控件如RepeaterDataGrid等,這是因此通常希望禁用視圖狀態,而是再生在每次回發控制。

但是,在.NET 1.x中,這造成了一些問題,因爲當ViewState被禁用時,一些控件無法正常工作 - 例如DataGrid中的分頁和排序。

ControlState因此在.NET 2中引入,以使控件能夠保存它們在回發時需要運行的最小狀態數據。

1
  • View state是,ASP.NET頁面框架用來 保留往返之間的頁面和控件值的方法。當呈現頁面的HTML 標記時,在回發過程中必須保留的頁面當前狀態和 值將被序列化爲 base64編碼的字符串。然後將這些信息放入視圖 狀態的隱藏字段中。

Link 1

Link 2

  • Control state,在ASP.NET 2.0版中引入,類似於 view state但功能獨立的view state。頁面 開發人員可以爲頁面禁用view state或爲個人控制 。但是,不能禁用control stateControl state設計用於存儲控制的基本數據 (例如尋呼控制的頁碼),必須在 回發上可用,以使控制功能即使在view state的 被禁用時也可以使用。

Link 1

  • Control ViewState獲取狀態信息的字典,這些 允許你保存和恢復跨多個請求的服務器控制 的視圖狀態在同一頁。

Link 1

希望這有助於有點