Introducción a los controles de servidor ASP.NET
Cuando cree páginas de formularios Web Forms, puede utilizar estos tipos de controles:
Controles de servidor HTML Elementos HTML expuestos al servidor para que se puedan programar. Los controles de servidor HTML exponen un modelo de objeto que se relacionan muy estrechamente con los elementos HTML que procesan.
Controles de servidor Web Controles con más funciones incorporadas que los controles de servidor HTML. Los controles de servidor Web incluyen no sólo controles de tipo formulario como botones y cuadros de texto, sino también controles con fines especiales como un calendario. Los controles de servidor Web son más abstractos que los controles de servidor HTML pues su modelo de objetos no refleja necesariamente la sintaxis HTML.
Controles de validación Controles que incorporan lógica para permitir comprobar entradas del usuario. Los controles de validación se asocian a los controles de entrada para comprobar qué escribe exactamente el usuario. Los controles de validación se proporcionan como forma de comprobar, en un campo necesario, su adecuación a un valor o un modelo de caracteres concreto, para comprobar que un valor se encuentra en un intervalo predefinido, etc.
Controles de usuario Controles que crea como página de formularios Web Forms. Se pueden incrustar controles de usuario de formularios Web Forms en otras páginas de formularios Web Forms; se trata de una forma sencilla de crear menús, barras de herramientas y otros elementos reutilizables.
Nota También puede crear resultados para dispositivos móviles. Para hacerlo así, se utiliza el mismo marco de trabajo de páginas ASP.NET, pero se crean formularios Mobile Web Forms en lugar de páginas de formularios Web Forms y se utilizan controles diseñados específicamente para dispositivos portátiles. Para obtener información detallada, vea Crear aplicaciones Web de ASP.NET Mobile.
En la misma página puede utilizar todos los tipos de controles. En las siguientes secciones se proporciona información más detallada sobre los controles de servidor ASP.NET. Para obtener más información sobre controles de validación, vea Validación de formularios Web Forms. Para obtener información sobre los controles de usuario, vea Introducción a los controles de usuario Web.
Nota En algunas situaciones, el correcto funcionamiento de los controles de servidor requiere secuencias de comandos de cliente. Si un usuario ha deshabilitado las secuencias de comandos en el explorador, el funcionamiento de los controles podría no ser el esperado. Para obtener detalles, vea Controles de servidor ASP.NET y funciones del explorador.
Controles de servidor HTML
Los controles de servidor HTML son elementos HTML que contienen atributos que los hacen visibles (y programables) en un servidor. De forma predeterminada, el servidor no tiene acceso a los elementos HTML de una página de formularios Web Forms: se tratan como texto opaco que se pasa al explorador. Sin embargo, cuando se convierten en controles de servidor HTML, los elementos HTML quedan expuestos como elementos programables en el servidor.
El modelo de objetos de los controles de servidor HTML se relaciona estrechamente con el de los elementos correspondientes. Por ejemplo, los atributos HTML se exponen en controles de servidor HTML como propiedades.
Cualquier elemento HTML de una página se puede convertir en control de servidor HTML. La conversión es un proceso simple que afecta a unos pocos atributos. Como mínimo, un elemento HTML se convierte en control agregando el atributo RUNAT="SERVER". Esto le indica al marco de trabajo de la página de ASP.NET durante el análisis que debe crear una instancia del control para su uso durante el procesamiento de la página en el servidor. Si desea hacer referencia al control como un miembro dentro del código, también deberá asignarle un atributo ID al control.
El marco de trabajo de páginas proporciona controles de servidor HTML predefinidos para los elementos HTML que se utilizan más habitualmente de forma dinámica en una página: formularios, elementos HTML <INPUT> (cuadro de texto, casilla de verificación, botón Enviar, etc.), cuadros de lista (<SELECT>), tablas, imágenes, etc. Estos controles de servidor HTML predefinidos comparten las propiedades básicas del control genérico y, además, cada control normalmente proporciona su propio conjunto de propiedades y su propio evento.
Los controles de servidor HTML ofrecen las funciones siguientes:
- Un modelo de objetos que pueda volver a programar en el servidor con las técnicas habituales orientadas a objetos. Los controles de servidor exponen propiedades que permiten manipular los atributos HTML del control mediante programación en el código del servidor.
- Un conjunto de eventos para los que pueda escribir controles de eventos de la misma forma que lo haría en un formulario basado en cliente, con la excepción de que un evento se controla en código del servidor.
- La capacidad de controlar eventos en una secuencia de comandos de cliente.
- Mantenimiento automático del estado del control. Si el formulario realiza una acción de ida y vuelta al servidor, los valores que el usuario escriba en los controles de servidor HTML se mantendrán automáticamente cuando la página se envíe de vuelta al explorador.
- Interacción con controles de validación que permiten comprobar con gran facilidad si el usuario ha escrito la información adecuada en un control.
- Enlace de datos a una o varias de las propiedades del control.
- Compatibilidad con estilos HTML 4.0 si la página de formularios Web Forms se muestra en un explorador que admite hojas de estilos en cascada.
- Paso a través de atributos personalizados. Pueden agregarse los atributos que se necesiten a un control de servidor HTML: el marco de trabajo de páginas los leerá y los procesará sin ningún cambio en la funcionalidad. Esto permite agregar atributos específicos del explorador a los controles.
Para obtener información detallada sobre cómo convertir un elemento HTML en un control de servidor HTML, vea Agregar controles de servidor HTML a una página de formularios Web Forms.
Controles de servidor Web
Los controles de servidor Web son un segundo conjunto de controles diseñado con otro enfoque. No se asignan uno a uno a controles de servidor HTML. En lugar de ello, se definen como controles abstractos, en los que el HTML real procesado por el control puede ser muy diferente al modelo con respecto al que se han programado. Por ejemplo, un control RadioButtonList de servidor Web podría procesarse en una tabla o como un texto en línea con otro HTML.
Los controles de servidor Web incluyen controles de formulario tradicionales como botones y cuadros de texto, además de controles complejos, como, por ejemplo, las tablas. También incluyen controles que proporcionan funcionalidad de formulario de uso frecuente, como la presentación datos en cuadrícula, la elección de fechas, etc.
Los controles de servidor Web ofrecen todas las funciones descritas anteriormente para los controles de servidor HTML (excepto la asignación uno a uno a elementos HTML) y estas funciones adicionales:
- Un modelo de objetos enriquecido que proporciona capacidades de programación de tipo seguro.
- Detección automática del explorador. Los controles pueden detectar capacidades del explorador y crear el resultado apropiado para exploradores básicos y enriquecidos (HTML 4.0).
- Para algunos controles, la capacidad de definir su propia apariencia para el control mediante plantillas.
- Para algunos controles, la capacidad de especificar si un evento del control provoca un envío inmediato al servidor o, en su lugar, se almacena en caché y se activa cuando se envía el formulario.
- Capacidad para pasar eventos de un control anidado (como un botón en una tabla) al control contenedor.
Cuando la vista HTML está en tiempo de diseño, los controles aparecen en la página con un formato como el siguiente:
<asp:button attributes runat="server"/>
En este caso los atributos no son los de los elementos HTML. En lugar de ello, son propiedades del control Web.
Cuando se ejecuta la página de formularios Web Forms, el control de servidor Web se procesa en la página utilizando el HTML apropiado, que con frecuencia no sólo depende del tipo de explorador sino también de la configuración que haya realizado para el control. Por ejemplo, un control TextBox podría procesarse como una etiqueta <INPUT> o una etiqueta <TEXTAREA>, dependiendo de sus propiedades.
Para cada control independiente existe documentación de referencia y de funcionamiento detallado. Para obtener más información, vea Controles que se pueden usar en páginas de formularios Web Forms.
Vea también
Páginas de formularios Web Forms | Recomendaciones relacionadas con los controles de servidor ASP.NET | Controles de servidor ASP.NET por función | Validación de formularios Web Forms | Introducción a los controles de usuario Web