Información general sobre los controles de servidor ASP.NET

En este artículo se presentan los controles de servidor de ASP.NET, como los controles de servidor HTML, los controles de servidor Web, los controles de lista, etc.

Versión del producto original:   ASP.NET
Número de KB original:   306459

Este artículo hace referencia a los siguientes espacios de nombres de la biblioteca de clases de Microsoft .NET Framework:

  • System.Web.UI.HtmlControls.HtmlControl
  • System.Web.UI.WebControls.WebControl

Controles de servidor en el marco de trabajo de páginas de ASP.NET

El marco de la página de ASP.NET incluye una serie de controles de servidor integrados que se han diseñado para proporcionar un modelo de programación más estructurado para la Web. Estos controles proporcionan las siguientes características:

  • Administración automática de estado.
  • Acceso sencillo a los valores de objeto sin tener que usar el Request objeto.
  • Capacidad de reaccionar ante eventos en código del lado servidor para crear aplicaciones que están mejor estructuradas.
  • Método común para crear interfaces de usuario para páginas Web.
  • La salida se personaliza automáticamente según las funciones del explorador.

Además de los controles integrados, el marco de la página de ASP.NET también proporciona la capacidad de crear controles de usuario y controles personalizados. Los controles de usuario y los controles personalizados pueden mejorar y ampliar los controles existentes para crear una interfaz de usuario mucho más rica.

Controles de servidor HTML

Los controles de servidor HTML son elementos HTML que incluyen un runat=server atributo. Los controles de servidor HTML tienen el mismo resultado HTML y las mismas propiedades que sus etiquetas HTML correspondientes. Además, los controles de servidor HTML proporcionan administración de estado automática y eventos del servidor. Los controles de servidor HTML ofrecen las siguientes ventajas:

  • Los controles de servidor HTML se asignan uno a uno con sus etiquetas HTML correspondientes.
  • Cuando se compila la aplicación ASP.NET, los controles de servidor HTML con el runat=server atributo se compilan en el ensamblado.
  • La mayoría de los controles incluyen un OnServerEvent para el evento usado con mayor frecuencia para el control. Por ejemplo, el <input type=button> control tiene un OnServerClick evento.
  • Las etiquetas HTML que no se implementan como controles de servidor HTML específicos se pueden seguir usando en el lado servidor; sin embargo, se agregan al ensamblado como HtmlGenericControl .
  • Cuando se vuelve a enviar la página ASP.NET, los controles de servidor HTML conservan sus valores.

La System.Web.UI.HtmlControls.HtmlControl clase base contiene todas las propiedades comunes. Los controles de servidor HTML derivan de esta clase.

Para usar un control de servidor HTML, use la sintaxis siguiente (que usa el HtmlInputText control como ejemplo):

<input type="text" value="hello world" runat=server />

Para obtener más información acerca de los controles de servidor HTML individuales que están disponibles en ASP.NET, vea los siguientes sitios web:

Controles de servidor Web

Los controles Web son similares a los controles de servidor HTML como Button, TextBox e HYPERLINK, excepto en que los controles Web tienen un conjunto estándar de nombres de propiedad. Los controles de servidor Web ofrecen las siguientes ventajas:

  • Facilite a los fabricantes y a los desarrolladores la creación de herramientas o aplicaciones que generen automáticamente la interfaz de usuario.
  • Simplificar el proceso de creación de formularios Web interactivos, lo que requiere menos conocimiento del funcionamiento de los controles HTML y hace que la tarea de usarlos menos propensos a errores.

La System.Web.UI.WebControls.WebControl clase base contiene todas las propiedades comunes. La mayoría de los controles de servidor Web se derivan de esta clase.

Para usar un control de servidor Web, use la sintaxis siguiente (que usa el control TextBox como ejemplo):

<asp:textbox text="hello world" runat=server />

Los controles de servidor Web se pueden dividir en cuatro categorías:

  • Controles Web básicos
  • Controles de validación
  • Controles de lista
  • Controles enriquecidos

Controles Web básicos

Los controles Web básicos proporcionan la misma funcionalidad que sus homólogos de control de servidor HTML. Sin embargo, los controles Web básicos incluyen métodos, eventos y propiedades adicionales que se pueden programar.

Para obtener más información acerca de los controles Web individuales que están disponibles en ASP.NET, vea los siguientes sitios web:

Controles de validación

Los controles de validación se usan para validar los valores que se especifican en otros controles de la página. Los controles de validación realizan la validación del lado cliente, la validación del servidor o ambas, en función de las funciones del explorador en el que se muestra la página. Los controles de validación ofrecen las siguientes ventajas:

  • Puede asociar uno o varios controles de validación con cada control que desee validar.
  • La validación se realiza cuando se envía el formulario de página.
  • Puede especificar mediante programación si se debe realizar la validación, lo que resulta útil si desea proporcionar un botón Cancelar para que el usuario pueda salir sin tener que rellenar datos válidos en todos los campos.
  • Los controles de validación detectan automáticamente si la validación debe realizarse en el lado del cliente o en el servidor.

Nota

Una validación del cliente detecta errores antes de que se complete una operación de devolución de los mismos. Por lo tanto, si tiene combinaciones de controles de validación del lado cliente y del servidor en una sola página, la validación del lado del servidor se adelantará si se produce un error en la validación del cliente. Para obtener más información acerca de los controles de validación individuales que están disponibles en ASP.NET, consulte los siguientes sitios web:

Enumerar controles

Los controles de lista son controles de servidor Web especiales que admiten el enlace a colecciones. Puede usar controles de lista para mostrar filas de datos en el formato de una plantilla personalizada. Todos los controles de lista exponen las propiedades DataSource y DataMember, que se usan para enlazar a colecciones.

Los controles de lista solo pueden enlazarse a colecciones que admitan las interfaces IEnumerable, ICollection o IListSource. Por ejemplo, una página de ejemplo de Visual C# .NET aparece como sigue:

<%@ Page Language="C#" %>
<script runat="server">
    Public void Page_Load()
    {
        String[] myStringArray = new String[] {"one","two","three"};
        rptr.DataSource = myStringArray;
        rptr.DataBind();
    }
</script>
<html>
    <body>
        <asp:repeater id=rptr runat="server">
            <itemtemplate><%# Container.DataItem %><br></itemtemplate>
        </asp:repeater>
    </body>
</html>

Se muestra una página de ejemplo de Visual Basic .NET de la siguiente manera:

<%@ Page Language="vb" %>
<script runat="server">
    public sub Page_Load()
        Dim myStringArray as String()
        myStringArray = new String() {"one","two","three"}
        rptr.DataSource = myStringArray
        rptr.DataBind()
    end sub
</script>
<html>
    <body>
        <asp:repeater id=rptr runat="server">
            <itemtemplate><%# Container.DataItem %><br></itemtemplate>
        </asp:repeater>
    </body>
</html>

El resultado aparece de la siguiente manera:

  • Ninguno
  • two
  • three

Para obtener más información acerca de los controles de lista individuales que están disponibles en ASP.NET, vea los siguientes sitios web:

Controles enriquecidos

Además de los controles anteriores, el marco de páginas de ASP.NET proporciona algunos controles específicos de tareas denominados controles enriquecidos. Los controles enriquecidos se crean con varios elementos HTML y contienen funciones enriquecidas. Algunos ejemplos de controles enriquecidos son el control Calendar y el control AdRotator.

Para obtener más información acerca de los controles enriquecidos individuales disponibles en ASP.NET, vea los siguientes sitios web:

Controles de usuario

A menudo, es posible que desee volver a usar la interfaz de usuario del formulario web sin tener que escribir código adicional. ASP.NET permite hacerlo convirtiendo los formularios Web en controles de usuario. Los controles de usuario, que tienen la extensión de archivo. ascx, se pueden usar varias veces en un único formulario Web Forms.

Para convertir un formulario web en un control de usuario, siga estos pasos:

  1. Quite todas <html> las <head> etiquetas,, <body> y <form> .
  2. Si la @ Page directiva aparece en la página, cámbiela a @ Control .
  3. Incluya un className atributo en la @ Control Directiva para que el control de usuario se escriba de forma segura al crear una instancia del mismo.
  4. Asigne al control un nombre de archivo descriptivo y cambie la extensión del archivo de. aspx a. ascx.

Para obtener más información acerca de los controles de usuario, vea controles de usuario de formularios Web Forms.

Controles personalizados

Además de los controles Web integrados, ASP.NET también le permite crear sus propios controles personalizados. Puede resultar útil desarrollar controles personalizados si se enfrenta a uno de estos escenarios:

  • Debe combinar la funcionalidad de dos o más controles Web integrados.
  • Debe ampliar la funcionalidad de un control integrado.
  • Necesita un control que sea diferente a cualquiera de los controles que existen actualmente.

Para obtener más información acerca del desarrollo de controles personalizados, vea los siguientes temas: