共用方式為


以程式設計方式建立使用者控制項的執行個體

正如您可以用程式設計方式在 Web Form 網頁上建立任何 ASP.NET 伺服器控制項的執行個體 (Instance),您也可以使用包含網頁的 LoadControl 方法,以使用者控制項來做同樣的事。然而,首先,您必須使用 @ Control 指示詞的 className 屬性,將強型別與使用者控制項產生關聯。這是必要的,因為 LoadControl 方法傳回 Control 類別的型別,而您必須轉換使用者控制項至適當強型別,以便能夠在控制項上設定個別屬性。

下列範例使用 className 屬性,將儲存在檔案 MyUserControl.ascx 中的使用者控制項轉換為強型別。

<%@ Control className="MyUserControl" %>

若要以程式設計方式建立使用者控制項的執行個體

  1. 在包含 Web Form 網頁的頂端以 @ Reference 指示詞註冊使用者控制項。以程式設計方式建立使用者控制項時,只有在您建立使用者控制項的強型別之參考後,Web Form 網頁才能使用它。例如,下列程式碼建立 MyUserControl.ascx 檔案中所建立的使用者控制項的參考。

    <%@ Reference Control="MyUserControl.ascx" %>
    

    **注意   **在 Web Form 網頁上宣告性建立使用者控制項的執行個體時,請使用 @ Register 指示詞。

  2. 在程式碼後置的類別檔案中,或者在包含 .aspx 檔案的程式碼宣告區塊中,建立使用者控制項的執行個體。視需要指派屬性值,並使用 Add 方法加入控制項至包含網頁的 ControlCollection 物件。這可提供給網頁的繼承的 Control.Controls 屬性來使用。下列範例中,將 MyUserControl.ascxBackColor 屬性設定為 beige 而建立它的執行個體。

    Dim c1 As UserControl = LoadControl("MyUserControl.ascx")
    CType(c1, MyUserControl).BackColor = "beige"
    Page.Controls.Add(c1)
    [C#]
    Control c1 = LoadControl("MyUserControl.ascx");
    ((MyUserControl)c1).BackColor = "beige";
    Page.Controls.Add(c1);
    

    **注意   **當您使用 Add 方法加入控制項至 ControlCollection 物件時,它們會依照被處理的順序放在集合中。如果您想要加入控制項至集合中的特定位置,請使用 AddAt 方法,並指定您想要儲存控制項的索引位置。

請參閱

Web Form 使用者控制項 | 建立使用者控制項 | 在另一個 Web Form 網頁中包含使用者控制項 | Web Form 網頁中的伺服器事件處理 | 處理使用者控制項事件