共用方式為


轉換 Web Form 網頁為使用者控制項

如果您已經開發 Web Form 網頁並決定要在您應用程式的各處存取它的功能,您可以對檔案做一些次要的改變,將它變更為使用者控制項。既然使用者控制項中不包括 <html><body><form> 項目,您必須包括這些項目在包含 Web Form 網頁之內。

**警告   **如果您正在程式碼後置類別中開發使用者控制項,您必須擴充 UserControl 類別,而非 Page 類別。如需詳細資訊,請參閱在程式碼後置的檔案中開發使用者控制項

轉換 Web Form 網頁為使用者控制項

  1. 從網頁移除所有 <html><body><form> 項目。下列範例說明這個轉換。

    最初的 Web Form 網頁:

    <html>
    <script language="VB" runat=server>
    Sub EnterBtn_Click(Sender as Object, E as EventArgs)
       Label1.Text = "Hi " & Name.Text & " welcome to ASP.NET!"
    End Sub
    </script>
    <body>
    <h3>Web Forms Page</h3>
    <form>
        Enter Name: <asp:textbox id="Name" runat=server/>
        <asp:button Text="Enter" OnClick="EnterBtn_Click"
             runat=server/>
    <br><br>
    <asp:label id="Label1" runat=server/>
    </form>
    </body>
    </html>
    
    [C#]
    <html>
    <script language="C#" runat=server>
    void EnterBtn_Click(Object Sender, EventArgs E){
       Label1.Text = "Hi " + Name.Text + " welcome to ASP.NET!";
    }
    </script>
    <body>
    <h3>Web Forms Page</h3>
    <form>
        Enter Name: <asp:textbox id="Name" runat=server/>
            <asp:button Text="Enter" OnClick="EnterBtn_Click"
                runat=server/>
        <br><br>
        <asp:label id="Label1" runat=server/>
    </form>
    </body>
    </html>
    

    轉換之後的使用者控制項:

    <h3> <u>User Control</u> </h3>
    <script language="VB" runat=server>
    Sub EnterBtn_Click(Sender as Object, E as EventArgs)
        Label1.Text = "Hi " & Name.Text & " welcome to ASP.NET!"
    End Sub
    </script>
        Enter Name: <asp:textbox id="Name" runat=server/>
        <asp:button Text="Enter" OnClick="EnterBtn_Click"
            runat=server/>
        <br><br>
        <asp:label id="Label1" runat=server/>
    
    [C#]
    <h3>User Control</h3>
    <script language="C#" runat=server>
    void EnterBtn_Click(Object Sender, EventArgs E){
        Label1.Text = "Hi " + Name.Text + " welcome to ASP.NET!";
    }
    </script>
        Enter Name: <asp:textbox id="Name" runat=server/>
        <asp:button Text="Enter" OnClick="EnterBtn_Click"
            runat=server/>
        <br><br>
        <asp:label id="Label1" runat=server/>
    
  2. 如果 Web Form 網頁中有 @ Page 指示詞,將它變更為 @ Control 指示詞。

    **注意   **若要避免在您轉換網頁至使用者控制項時發生剖析器 (Parser) 錯誤,請移除 @ Page 指示詞所支援,但不為 @ Control 指示詞所支援的任何屬性。如需詳細資訊,請參閱指示詞語法

  3. className 屬性包含於 @ Control 指示詞中。這允許使用者控制項在它以程式設計方式加入至網頁或其他伺服器控制項時,成為強型別 (Strongly Typed)。

  4. 為控制項指定檔案名稱以反應您打算要如何使用它,並將副檔名從 .aspx 變更至 .ascx。

請參閱

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