Compartir a través de


Crear instancias de controles de usuario mediante programación

Del mismo modo que puede crear mediante programación una instancia de cualquier control de servidor ASP.NET en una página de formularios Web Forms, puede hacer lo mismo con controles de usuario utilizando el método LoadControl de la página contenedora. Primero, no obstante, debe asociar un tipo inflexible al control de usuario mediante el atributo className en la directiva @ Control. Esto es necesario porque el método LoadControl devuelve un tipo de la clase Control, y necesitará convertir el control de usuario en el tipo inflexible correspondiente para poder establecer propiedades individuales en el control.

En el ejemplo siguiente se utiliza el atributo className para asignar un tipo inflexible a un control de usuario guardado en el archivo MyUserControl.ascx.

<%@ Control className="MyUserControl" %>

Para crear una instancia de un control de usuario mediante programación

  1. Registre el control de usuario al comienzo de la página de formularios Web Forms con la directiva @ Reference. Al crear controles de usuario mediante programación, el tipo inflexible del control de usuario sólo está disponible en la página de formularios Web Forms cuando se crea una referencia a él. Por ejemplo, el código siguiente genera una referencia a un control de usuario creado en el archivo MyUserControl.ascx.

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

    Nota   Cuando cree instancias de un control de usuario de forma declarativa en una página de formularios Web Forms, utilice la directiva @ Register.

  2. Cree una instancia del control de usuario en el archivo de clase de código subyacente o en el bloque de declaración de código del archivo .aspx contenedor. Asigne los valores de propiedades que sean necesarios y agregue el control al objeto ControlCollection de la página contenedora utilizando el método Add. Éste pasa a estar disponible en la propiedad Control.Controls heredada de la página. En el siguiente ejemplo, se crea una instancia de MyUserControl.ascx con su propiedad BackColor establecida en 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);
    

    Nota   Cuando se agregan controles al objeto ControlCollection mediante el método Add, éstos se colocan en la colección en el orden en que se procesan. Si desea agregar un control en una posición específica de la colección, utilice el método AddAt y especifique la ubicación de índice en la que desea almacenar el control.

Vea también

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