成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

ASP.NET復合控件的呈現引擎

開發 后端
本文介紹ASP.NET復合控件的呈現引擎。復合控件是適合用于構建復雜組件的工具,在復合控件中,多個子控件聚合到一起,并在彼此之間以及與外部之間進行交互。

復合控件是適合用于構建復雜組件的工具,在復合控件中,多個子控件聚合到一起,并在彼此之間以及與外部之間進行交互。呈現控件則只用于只讀式控件聚合,其輸出不包括交互元素(例如下拉框或文本框)。

如果您對事件處理和回發數據感興趣,我強烈建議您選擇復合控件。如果使用子控件,則生成復雜的控件樹會更加輕松,而且最終結果也更清晰簡潔。此外,只有需要提供附加功能時才需要處理回發接口。

呈現控件不但需要實現附加接口,還要將含有屬性值的標記靜態部分縫合到一起。

復合控件的優點還表現在可以呈現多個同類項,這與在 DataGrid 控件中的情況類似。將每個構成項作為活動對象啟用使您可以引發創建事件并以編程方式訪問它們的屬性。在 ASP.NET 2.0 中,對于要完全實現實際的數據綁定復合控件(上述控件只是隨便的舉例)所需的樣板代碼,絕大部分都隱藏在新基類的折疊部分中:CompositeDataBoundControl。

ASP.NET復合控件的呈現引擎

在深入探討 ASP.NET 2.0 編碼技術之前,讓我們回顧一下復合控件的內部例行過程。我們提到過,復合控件的呈現是集中圍繞 CreateChildControls 方法進行的,該方法從 Control 基類繼承而來。您可能會認為,要使服務器控件呈現其內容,替換 Render 方法是必不可少的一步。正如我們先前所看到的,如果 CreateChildControls 被替換,則并不總是需要執行這一步。但是,何時在控件調用棧中調用 CreateChildControls 呢?

如圖中所示,在頁面***次顯示時,會在預呈現階段調用 CreateChildControls。

在預呈現階段調用 CreateChildControls

ASP.NET復合控件:在預呈現階段調用 CreateChildControls

特別是,請求處理代碼(在 Page 類中)在將 PreRender 事件引發至頁面和每個子控件之前會直接調用 EnsureChildControls。換言之,如果控件樹還未完全生成,則不會呈現任何控件。

以下代碼段例示了 EnsureChildControls(在 Control 基礎上定義的另一種方法)的偽代碼。

  1. protected virtual void EnsureChildControls()  
  2. {  
  3. if (!ChildControlsCreated)  
  4.    {  
  5. try {  
  6. CreateChildControls();  
  7.        }  
  8. finally {  
  9. ChildControlsCreated = true;  
  10.        }  
  11.    }  
  12. }  

此方法可能會在頁面和控件的生命周期內反復調用。為避免控件重復,ChildControlsCreated 屬性被設為 true。如果此屬性返回 true,則該方法會立即退出。

當頁面回發時,ChildControlsCreated 會在周期前期調用。如圖 4 所示,它在已發布數據處理階段調用。

發生回發時在已發布數據處理階段調用

ASP.NET復合控件:發生回發時在已發布數據處理階段調用

當 ASP.NET 頁面開始處理從客戶端發布的數據時,它會嘗試查找一個其 ID 與已發布字段的名稱相匹配的服務器控件。在執行此步驟期間,頁面代碼會調用 Control 類中的 FindControl 方法。反之,該方法需要確保在進行操作之前控件樹已完全生成,因此它調用 EnsureChildControls 并按需要生成控件層次結構。

那么要在 CreateChildControls 方法內部執行的代碼是怎樣的呢?盡管沒有正式的指南可供遵循,但通常認為 CreateChildControls 至少必須完成以下任務:清除 Controls 集合,生成控件樹,并清除子控件的視圖狀態。并不嚴格要求必須從 CreateChildControls 方法內部設置 ChildControlsCreated 屬性。實際上,ASP.NET 頁面框架始終通過 EnsureChildControls(此方法可自動設置布爾標記)來調用 CreateChildControls。

【編輯推薦】

  1. ASP.NET復合控件簡介及要點一覽
  2. ASP.NET控件開發基礎之復合控件事件處理淺析
  3. ASP.NET服務器控件之RenderContents應用示例
  4. ASP.NET自定義控件屬性淺析
  5. ASP.NET控件開發基礎之復合控件淺析
責任編輯:yangsai 來源: MSDN
相關推薦

2009-08-07 15:40:10

CompositeCo復合控件

2009-08-06 18:18:27

ASP.NET控件開發ASP.NET復合控件

2009-08-07 15:45:26

ASP.NET復合控件數據綁定

2009-07-30 16:52:38

復合控件ASP.NET服務器控

2009-08-04 12:59:42

ASP.NET控件開發

2009-08-07 14:55:15

ASP.NET復合控件

2009-08-06 18:32:00

ASP.NET控件開發ASP.NET復合控件

2009-07-27 13:52:36

Panel控件ASP.NET

2009-07-24 15:35:00

ASP.NET Gri

2009-09-11 09:09:00

ASP.NETAdRotator控件

2009-07-20 13:32:24

ScriptManagASP.NET

2009-08-04 11:29:14

HTML代碼ASP.NET控件

2009-07-27 16:19:59

ASP.NET報表控件

2009-08-17 09:24:25

ASP.NET控件

2009-07-27 17:25:53

ASP.NET驗證控件

2009-08-03 15:08:00

SqlDataSour

2009-07-21 15:11:14

ASP.NET Rou

2012-05-09 13:29:42

ASP.NET

2009-07-29 13:50:26

UpdatePanelASP.NET

2009-08-05 15:57:03

ASP.NET控件ID
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美综合一区 | 在线欧美视频 | 久久综合久 | 成人精品一区二区三区中文字幕 | 亚洲不卡在线观看 | 久视频在线观看 | 国产精品免费小视频 | 欧美在线高清 | 午夜黄色影院 | 国产91九色| 久久久久久精 | 国产jizz女人多喷水99 | 欧美男人亚洲天堂 | 国产一区二区在线免费观看 | 综合久久一区 | 国产福利91精品一区二区三区 | 久久免费观看一级毛片 | 黄色在线观看网站 | 欧美极品视频在线观看 | 久久精品国产久精国产 | 久久人爽 | 亚洲第一视频网 | 天天看天天干 | 涩涩导航| 久久久久久久久蜜桃 | 国产真实乱对白精彩久久小说 | 久久欧美高清二区三区 | 久久av在线播放 | 亚洲 一区 | 精品综合在线 | 日本一区二区三区在线观看 | 久久久xxx| 日本精品999 | 日韩欧美亚洲 | 18av在线播放 | 成人一区二| 欧产日产国产精品国产 | 日韩欧美三级电影在线观看 | 黄色毛片在线播放 | 99久久99 | 欧美色综合天天久久综合精品 |