Compartir a través de


Convertir una página de formularios Web Forms en un control de usuario

Si ha desarrollado una página de formularios Web Forms y decide que le gustaría tener acceso a sus funciones en toda la aplicación, puede realizar algunos pequeños cambios en el archivo para convertirla en un control de usuario. Dado que los elementos <html>, <body> y <form> no están incluidos en los controles de usuario, debe introducirlos en la página de formularios Web Forms contenedora.

PRECAUCIÓN   Si desarrolla un control de usuario en una clase de código subyacente, debe ampliar la clase UserControl en lugar de la clase Page. Para obtener más información, vea Desarrollar controles de usuario en un archivo de código subyacente.

Para convertir una página de formularios Web Forms en un control de usuario

  1. Quite todos los elementos <html> <body> y <form> de la página. El siguiente ejemplo ilustra esta conversión:

    Página de formularios Web Forms inicial:

    <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> <u>Web Forms Page</u> </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> <u>Web Forms Page</u> </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>
    

    El control de usuario, después de la conversión:

    <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> <u>User Control</u> </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. Si hay una directiva @ Page en la página de formularios Web Forms, cámbiela a una directiva @ Control.

    Nota   Para evitar errores de análisis al convertir una página en un control de usuario, quite todos los atributos admitidos por la directiva @ Page que no sean compatibles con la directiva @ Control. Para obtener más información, vea Sintaxis de directivas.

  3. Incluya un atributo className en la directiva @ Control. De esta forma, el control de usuario será un control con establecimiento inflexible de tipos cuando se agregue a una página o a otros controles de servidor mediante programación.

  4. Asigne al control un nombre de archivo que refleje el modo en que piensa utilizarlo y cambie la extensión de nombre de archivo de .aspx a .ascx.

Vea también

Controles de usuario de formularios Web Forms | Incluir un control de usuario en una página de formularios Web Forms | Crear un control de usuario | Control de eventos de servidor en páginas de formularios Web Forms | Controlar eventos de control de usuario