日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

探讨ASP.NET 2.0中的Web控件改进技术(2)

發布時間:2023/12/31 asp.net 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 探讨ASP.NET 2.0中的Web控件改进技术(2) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
我的觀點是:ViewState有可能成為你最好的朋友,也有可能成為你最壞的敵人—這要依賴于你使用它的方式來決定。如果你在以前曾經使用過ViewState,那么,你肯定會喜歡新的ControlState。 關于ViewState的最令人頭痛的問題之一就是,它的“all-or-nothing”狀態管理方法。頁面開發者可以很容易地決定在任何控 件級,頁面級或在整個站點級(經由web.config)上關閉ViewState。事實上,如果你在整個站點級上通過web.config關閉 ViewState的話,那么,你不妨猜測一下你還能夠在其它什么地方關閉它?答案是:還可以在machine.config中實現—在此情況下,它能夠 影響到同一服務器上的所有站點。如果一個頁面開發者決定關掉在ViewState中實現狀態管理的能力,那么,你的控件生成有可能出現部分不可用,或更有 甚者—完全不可用。 為此,在新版本中,微軟創建了ControlState—旨在解決這一問題。頁面開發者不能關掉ControlState,因此使用它進行屬性選擇更為安全。 使用ControlState與使用ViewState幾乎完全一致。然而,ControlState并沒有提供象ViewState這樣的一 個變量,而是提供了稱為SaveControlState和LoadControlState的方法以便于你的控件能夠進行重載。這些方法與 SaveViewState和LoadViewState方法的工作原理完全一致。 因為ControlState在屬性語句中沒有提供一個相應的變量,所以,你必須借助于ASP.NET開發者以前在他們的對象中所使用的成員變量(屬性語句)來實現相同的功能。
以下是引用片段:
  Protected?_MailServer?As?String?=?"First?name:"
  Public?Property?MailServer()?As?String
  Get
  Return?_?MailServer
  End?Get
  Set(ByVal?value?As?String)
  _MailServer?=?value
  End?Set
  End?Property
然而,因為我使用了一個標準的成員變量來保存值,所以我需要一種方法以便把數據存儲在ControlState中—這正是前面提到的方法“登 場”的原因。就象在它們相應的ViewState方法中那樣,ASP.NET將在頁面生命周期內調用這兩個方法。其中,SaveViewState方法返 回一個將被持久存儲的對象類型。通過返回一個對象數組,這個方法可以存儲多個值。并且,就象發生在SaveViewState方法中一樣,也是使用數組的 0下標元素來調用基類的SaveControlState方法。
以下是引用片段:
  Protected?Overrides?Function?SaveControlState()?As?Object
  Dim?state()?As?Object?=?New?Object(2)?{}
  state(0)?=?MyBase.SaveControlState()
  state(1)?=?_MailServer
  Return?state
  End?Function
注意:LoadControlState方法以一個對象作為參數—這個對象是以前在SaveControlState中返回的一個對象。在這個 方法中,我重新分配了成員變量—通過把該參數轉換為一個對象數組,然后獲得每個下標的值。與以前一樣,我使用數組的0下標來調用基類的 LoadControlState方法。
以下是引用片段:
  Protected?Overrides?Sub?LoadControlState(?_
  ByVal?savedState?As?Object)
  If?savedState?IsNot?Nothing?Then
  Dim?state()?As?Object?=?CType(savedState,?Object())
  MyBase.LoadControlState(state(0))
  _MailServer?=?CType(state(1),?String)
  End?If
  End?Sub
借助于這些方法來存儲數據,在頁面開發者關掉ViewState時,控件就不會出現前面那些麻煩。 你可能對ControlState的存儲位置感到驚訝;它對應于另一個生成到HTML頁面中的隱藏的文本框。就象在ViewState情況下數 據被存儲在__ViewState隱藏文本框中類似,ASP.NET 2.0使用__ControlState隱藏文本框來存儲ControlState數據。 遺憾的是,微軟沒有向開發者提供內在地使用ControlState的能力—就象在ViewState情況下那樣。所以,為了 ControlState使用,你需要注冊你的控件。你可以重載控件的OnInit事件并且調用Page對象的 RegisterRequiresControlState方法。
以下是引用片段:
  Protected?Overrides?Sub?OnInit(ByVal?e?As?System.EventArgs)
  MyBase.OnInit(e)
  If?Page?IsNot?Nothing?Then
  Page.RegisterRequiresControlState(Me)
  End?If
  End?Sub
現在,你可以使用ControlState來存儲你認為足夠重要的數據—如果不把它存儲起來,那么你的控件可能生成一些無用的內容。 記住,你在設計時刻對屬性的修改將被硬編碼到該控件的ASPX聲明中,從而在相鄰的再次回寄之間自動地存儲。然而,如果表單上的一個行為改變了 一個控件的屬性,那么,這將會激活狀態管理機制的使用。如果不把該屬性存儲在一個狀態中,那么,在下一次回寄時它將恢復到“硬編碼”狀態。 現在,總的來看,我們應該把與外觀相關的屬性存儲在ViewState中,而把與行為相關的屬性存儲在ControlState中。通過這種方式,如果一個頁面開發者關掉ViewState,那么你的控件盡管可能看起來樣子別扭,但是仍能正確工作。

總結

以上是生活随笔為你收集整理的探讨ASP.NET 2.0中的Web控件改进技术(2)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 天堂网久久 | 青青国产在线观看 | 亚洲色图久久 | 美日韩成人 | 免费的黄色的网站 | 国产中文视频 | 少妇人妻偷人精品无码视频新浪 | 4438x在线观看| 亚洲视频高清 | 亚洲 小说 欧美 激情 另类 | 老司机性视频 | 欧美一区二区三区在线播放 | h无码动漫在线观看 | 91网址入口 | 综合av第一页 | 亚洲黄色小说视频 | 中国在线观看免费高清视频播放 | 综合色站导航 | 国产一区二区欧美 | 国产男女裸体做爰爽爽 | 毛片大全| 午夜视频福利在线 | 岛国精品一区 | 国产第113页 | 亚洲精品ww | 性色AV无码久久一区二区三 | 91蜜桃网站 | 国产第一福利 | 女人扒开双腿让男人捅 | www超碰| 国产精自产拍久久久久久蜜 | 免费吃奶摸下激烈视频 | 天天网综合 | 青草青青视频 | 丰满熟妇乱又伦 | 精品少妇v888av | 国产一级黄| 精品69| 久久国产精品久久国产精品 | 91黑人精品一区二区三区 | 成年人视频网 | 国产成人在线观看网站 | 美日韩久久 | 97在线观视频免费观看 | av手机免费在线观看 | 天天干天天摸天天操 | 成人mv | wwwjavhd| 天堂网8 | 美女搡bbb又爽又猛又黄www | 爱爱视频在线免费观看 | 爱爱一区二区三区 | 黄色片视频免费 | 国产精品天美传媒沈樵 | 亚洲 欧美 综合 | 精品视频一二 | 日韩免费毛片 | 美女被c出水| 在线视频这里只有精品 | 亚洲久久一区二区 | 亚洲天堂8| 中文字幕黑丝 | 韩日欧美 | 国产成人无码精品久久久久 | 久久久久久久国产精品毛片 | 午夜粉色视频 | 91亚洲精品久久久蜜桃 | av影片在线看 | 天堂av2018| 精品在线视频一区二区三区 | 亚洲精品影视 | 无码人妻精品一区二区三区99v | 精品国产鲁一鲁一区二区三区 | 男男一级淫片免费播放 | 中日韩在线 | 国产欧美激情 | 在线观看一区二区三区视频 | 911香蕉视频 | 捆绑少妇玩各种sm调教 | 欧美肉大捧一进一出免费视频 | 欧美黄色大全 | 久久911| 欧美视频一二区 | 日韩一区在线看 | 人人射影院 | 午夜欧美视频 | 2018天天操| 日本a v在线播放 | 日本激情久久 | 一区二区人妻 | 免费看aaaaa级少淫片 | 日本高清视频免费看 | 中文字幕乱妇无码av在线 | 一级免费黄色片 | 亚洲精品91| 特级西西444www高清大胆 | 日韩高清一二三区 | 粗大的内捧猛烈进出视频 | 午夜家庭影院 |