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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

【转帖】OnPreRender Render的区别

發布時間:2023/11/27 生活经验 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【转帖】OnPreRender Render的区别 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉自:http://hi.baidu.com/trip008/blog/item/d6139ab77b5414f130add1e9.html

protected override void OnPreRender(EventArgs e)
protected override void Render(HtmlTextWriter writer)
這兩個的區別。可否告知

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

asp.net頁面在觸發各個子控件的事件之后,會遞歸調用控件的OnpreRender,然后(注意)遞歸地將控件的ViewState序列化成一個字符串,最后遞歸調用控件的Render輸出結果(在最高層控件即page控件的Render就會把那個ViewState序列化字符串寫到輸出的html的隱藏字段中)。

因此,在Render中創建、改變的內容即使寫入ViewState,其實也無法在頁面回發之后被恢復,葉面回發之后回填的ViewState仍然是OnPreder或者之前的時候得值。

因此通常,控件的OnPrerender用來最控件的最后最后一次改變(動態生成),而在Render中僅僅用來輸出html而并不改變控件自身。

另外,控件在vs設計器中的時候,并不是page對象驅動頁面顯示的。雖然在設計其上看上去很像asp.net應用程序處理頁面的結果。起碼,設計器并不調用OnPrerender,而是根據Designer標簽中說明的方法來調用顯示邏輯。這樣你就可以讓控件在設計器中表現為與運行時不同的結果。例如表格控件在設計器中就不顯示所有綁定數據,而是顯示自己創建的一組示例數據,以便讓你有一個簡潔的方式設計界面布局,同時也讓連接數據庫等等只有在運行時才需要的費時、可能失敗的行為在設計時避免執行。

這里我想到一個常見現象。很多人已經會寫自定義控件了。但是其實只了解運行時的控制機制,寫出的自定義控件并不支持vs設計器的控制機制。例如這個OnPreRender在設計時并不被調用是很多人不知道的。精通編寫自定義控件的人,也許僅僅讓其以程序代碼的方式被使用,其編寫的自定義控件使用在RAD方式的時候并不好用,這是常見的。

轉載于:https://www.cnblogs.com/ziling8163/archive/2009/02/17/1392255.html

總結

以上是生活随笔為你收集整理的【转帖】OnPreRender Render的区别的全部內容,希望文章能夠幫你解決所遇到的問題。

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