共用方式為


開發複合控制項

您可以藉著使用類別撰寫以結合現有控制項來撰寫新的控制項。複合控制項呈現可重複使用現有控制項功能的使用者介面。複合控制項可以從其子控制項的屬性來合成屬性,並處理其子控制項引發的事件。它也可以公開自訂屬性和事件。

複合控制項必須:

  • 覆寫繼承自 Control 的保護的 CreateChildControls 方法,建立子控制項的執行個體 (Instance),並將它們加入至其 Controls 集合。
  • 實作 System.Web.UI.INamingContainer 介面。INamingContainer 是沒有方法的資料標記介面。當控制項實作 INamingContainer 時,ASP.NET 網頁架構會在該控制項之下建立新命名範圍 (Scope),從而確保子控制項在控制項的階層式樹狀結構中具有唯一名稱。這特別重要,當複合控制項公開樣板屬性、提供資料繫結 (Data Binding),或需要轉送事件至其子控制項時。

您不一定要覆寫 Render 方法,因為子控制項會提供呈現的邏輯。注意,您可以將事件從子控制項向上反昇至容器,並將它們公開為容器的最上層事件。如需詳細資訊,請參閱反昇事件事件反昇控制項範例

如需複合控制項的範例,請參閱複合伺服器控制項範例

複合控制項相當於宣告性撰寫的使用者控制項 (User Control)。然而,在複合控制項和使用者控制項的設計階段行為和保存性 (Persistence) 格式之間有著顯著的差異。如需兩者差異的概觀,請參閱複合控制項和使用者控制項的比較

如果您想要最佳化控制項的效能,您可以考慮直接呈現來代替撰寫,如撰寫和呈現的比較中所描述。

請參閱

複合伺服器控制項範例 | 複合控制項和使用者控制項的比較 | 撰寫和呈現的比較 | 反昇事件 | 事件反昇控制項範例