Compartir a través de


Crear un control compuesto

Es posible crear controles nuevos combinando controles existentes mediante una mezcla de clases. Los controles compuestos generan una interfaz de usuario que reutiliza la funcionalidad de los controles existentes. Pueden sintetizar propiedades a partir de las propiedades de sus controles secundarios y controlar los eventos generados por dichos controles secundarios. También pueden exponer propiedades y eventos personalizados.

Los controles compuestos deben hacer lo siguiente:

  • Reemplazar el método CreateChildControls protegido que se hereda de Control para crear instancias de controles secundarios y agregarlas a su colección Controls.
  • Implementar la interfaz System.Web.UI.INamingContainer. INamingContainer es una interfaz de marcador que no tiene métodos. Cuando un control implementa INamingContainer, el marco de trabajo de páginas ASP.NET crea un ámbito de asignación nuevo bajo dicho control, garantizando así que los controles secundarios tengan nombres únicos en el árbol jerárquico de controles. Esto es especialmente importante cuando un control compuesto expone propiedades de plantillas, proporciona enlace de datos o debe enrutar eventos a sus controles secundarios.

No es necesario reemplazar el método Render, ya que los controles secundarios proporcionan lógica de procesamiento. Los eventos se pueden ejecutar desde los controles secundarios hasta el contenedor y exponerlos como eventos de nivel superior en éste. Para obtener más información, vea Ejecutar un evento y Ejemplo de control de ejecución de eventos.

Para ver un ejemplo de control compuesto, vea Ejemplo de control de servidor compuesto.

Los controles compuestos son equivalentes a controles de usuario creados de manera declarativa. No obstante, existen grandes diferencias entre el comportamiento en tiempo de diseño y el formato de persistencia de los controles compuestos y los controles de usuario. Para obtener información general sobre estas diferencias, vea Control compuesto frente a control de usuario.

Para optimizar el rendimiento de un control, considere el procesamiento directo en lugar de la composición, como se describe en Composición frente a procesamiento.

Vea también

Ejemplo de control de servidor compuesto | Control compuesto frente a control de usuario Composición frente a procesamiento Ejecutar un evento | Ejemplo de control de ejecución de eventos