共用方式為


在程式碼後置的檔案中開發使用者控制項

正如您可以使用程式碼後置檔建立 Web Form 網頁 - 將 UI 語法 (在 .aspx 檔中) 與網頁執行的邏輯 (程式碼後置的檔案) 分開 - 您也可以做同樣的事情來建立使用者控制項。技術是相同的,僅有一些次要的差異。

**注意   **如果您使用快速應用程式開發 (Rapid Application Development,RAD) 工具 (例如 Visual Studio .NET) 來建立您的 ASP.NET 應用程式,工具的預設值為使用程式碼後置 (Code_Behind) 技術來建置 (Build) 使用者控制項和 Web Form 網頁。在使用 Visual Studio .NET 建立 Web 應用程式時,應用程式中的所有網頁和使用者控制項必須是以相同的程式語言設計的。

若要在程式碼後置的檔案中開發使用者控制項

  1. 建立程式碼後置的檔案,包括您使用者控制項所需存取的命名空間 (Namespace)。最低限度上,您應該包括 SystemSystem.Web.UI 命名空間,連同您的使用者控制項需要的任何其他命名空間。

    Imports System
    Imports System.Web.UI
    Imports System.Web.UI.WebControls
    [C#]
    using System;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    
  2. 宣告繼承 UserControl 類別的類別,並撰寫程式碼以賦予它您想要的功能。包含您為使用者控制項撰寫的任何事件處理方法。同樣的,宣告您打算要在使用者控制項中使用的 ASP.NET 伺服器控制項的公用執行個體。

    Public Class MyCodeBehind
    Inherits UserControl
    
        Public Name As TextBox
        Public Result As Label
    
        Public Sub SubmitBtn_Click(sender As Object, e As EventArgs)
            Result.Text = "Hi, " & Name.Text & ", welcome to ASP.NET!"
        End Sub
    End Class
    [C#]
    public class MyCodeBehind : UserControl {
        public TextBox   Name;
        public Label   Result;
    
        public void SubmitBtn_Click(Object sender, EventArgs e) {
            Result.Text = "Hi, " + Name.Text + ", welcome to ASP.NET!";   
        }
    }
    
  3. 命名程式碼後置的檔案,務必包括副檔名以反映您開發檔案所用的語言。如果您不這麼做,編譯器 (Compiler) 錯誤將發生。在這個範例中,以 Visual Basic 開發的使用者控制項命名為 UserControl.vb,而以 C# 開發的則命名為 UserControl.cs

  4. 建立 .ascx 檔,使用 @ Control 指示詞以指示使用者控制項所繼承類別的名稱,和您在步驟 1 中建立的原始程式檔 (Source File) 路徑。納入伺服器控制項和您想要使用者控制項顯示的任何文字。當您在各個伺服器控制項上宣告 ID 屬性時,請確定它符合您在程式碼後置的檔案中建立的執行個體的名稱。例如,下面 <asp:textbox/> 項目中的 ID 屬性為 Name,對應至步驟 2 中的 Name TextBox 伺服器控制項。

    <%@ control inherits = "MyCodeBehind" src = "UserControl.vb" %>
    <p>Name: <asp:textbox id="Name" runat="server"/> <br>
    <asp:button text="Click Me" OnClick="SubmitBtn_Click" runat="server"/><br>
    <asp:label id="Result" runat = "server" />
    [C#]
    <%@ control inherits = "MyCodeBehind" src = "UserControl.cs" %>
    <p>Name: <asp:textbox id="Name" runat="server"/> <br>
    <asp:button text="Click Me" OnClick="SubmitBtn_Click" runat="server"/><br>
    <asp:label id="Result" runat = "server" />
    
  5. 將使用者控制項包含於您想要它的功能在其中出現的 Web Form 網頁。如需詳細資訊,請參閱在 Web Form 網頁中包含使用者控制項

請參閱

Web Form 使用者控制項的簡介 | Web Form 程式碼模型 | 在 Web Form 網頁中包含使用者控制項 | @ Control | UserControl