Compartir a través de


Desarrollar controles personalizados: conceptos clave

Este tema ofrece información detallada de los distintos elementos de programación que intervienen en el desarrollo de un control de servidor ASP.NET. En ella se pretende servir de guía de programación general; la información más detallada se ofrece en otra parte de la sección. El control se puede crear en cualquier lenguaje de programación que sea compatible con Common Language Specification como se describe en ¿Qué es Common Language Specification?.

Un control de servidor ASP.NET es una clase derivada directa o indirectamente de System.Web.UI.Control. Las dos clases siguientes son las clases base para los controles de servidor ASP.NET.

  • System.Web.UI.Control

    La clase Control define las propiedades, métodos y eventos que comparten todos los controles de servidor ASP.NET. Incluyen los métodos y eventos que regulan el ciclo de vida de ejecución del control y propiedades como ID, UniqueID, Parent, ViewState y Controls (la colección de controles secundarios). Control no tiene características específicas de interfaz de usuario. Si va a crear un control que no tiene una interfaz de usuario o que combina otros controles que generan sus propias interfaces de usuario, derive de Control.

  • System.Web.UI.WebControls.WebControl

    La clase WebControl deriva de Control y ofrece propiedades y métodos adicionales para la funcionalidad de interfaz de usuario. Entre dichas propiedades se encuentran ForeColor, BackColor, Font, BorderStyle, Height y Width. WebControl es la clase base de la familia de controles de servidor Web de ASP.NET. Si su control genera interfaz de usuario, derive de WebControl.

Según la funcionalidad del control, posiblemente tenga que implementar una o varias de las siguientes interfaces.

  • System.Web.UI.INamingContainer

    InamingContainer es una interfaz de marcador (vacía) que no tiene ningún método. Cuando se implementa mediante un control, el marco de trabajo para páginas ASP.NET crea un nuevo ámbito de asignación de nombres bajo ese control. Esto garantiza que los controles secundarios tengan identificadores únicos en el árbol jerárquico de controles. Si el control es un control compuesto (contiene controles secundarios) que proporciona enlace de datos, si está basado en plantilla, o si necesita enrutar eventos a sus controles secundarios, deberá implementarse la interfaz INamingContainer. Sirva de ejemplo el control Repeater y otros controles enlazados a datos. Para obtener más información, vea Desarrollar un control compuesto

  • System.Web.UI.IPostBackDataHandler

    Si el control debe examinar los datos de devolución y actualizar su estado o provocar eventos en el servidor según los cambios realizados a los datos, deberá implementarse la interfaz IPostBackDataHandler. Sirva de ejemplo el control TextBox, que examina el valor devuelto del texto y actualiza su propiedad Text, al tiempo que provoca un evento TextChanged cuando se modifica el texto. Para obtener más información, vea Procesar datos de devolución.

  • System.Web.UI.IPostBackEventHandler

    Si el control captura un evento de devolución en el cliente y responde al mismo controlándolo o provocando eventos en el servidor, deberá implementarse la interfaz IPostBackEventHandler. Sirva de ejemplo el control Button, que captura un envío de formulario y provoca un evento Click en el servidor. Para obtener más información, vea Capturar eventos Postback.

Es posible reemplazar las propiedades, métodos y eventos heredados de una clase base, así como agregar propiedades, métodos y eventos nuevos al control personalizado. Para obtener más información, vea Propiedades de los controles de servidor ASP.NET, Métodos de los controles de servidor ASP.NET y Eventos de los controles de servidor ASP.NET.

ASP.NET permite a los controles obtener acceso a los estilos y exponerlos, tal como se describe en Estilos de los controles de servidor. Se puede programar un control de servidor ASP.NET que permita a los programadores de páginas personalizar su interfaz de usuario mediante plantillas en línea. Para obtener más información, vea Desarrollar un control basado en plantilla.

Para crear un control enlazado a datos con propiedades complejas enlazadas a datos, vea Desarrollar un control de enlace de datos basado en plantilla.

Para realizar los pasos que crean un control personalizado sencillo, vea Desarrollar un control de servidor ASP.NET sencillo.

Vea también

Desarrollar un control de servidor ASP.NET sencillo Jerarquía de controles de servidor ASP.NET