introducción a los controles de servidor de ASP.NET

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

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

En este artículo se 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 ASP.NET marco de trabajo de página

El marco de trabajo de página ASP.NET incluye una serie de controles de servidor integrados que están diseñados 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 estados.
  • Acceso sencillo a los valores de objeto sin tener que usar el Request objeto .
  • Capacidad de reaccionar ante eventos en el código del lado servidor para crear aplicaciones que estén mejor estructuradas.
  • Enfoque común para crear interfaces de usuario para páginas web.
  • La salida se personaliza automáticamente en función de las funcionalidades del explorador.

Además de los controles integrados, el marco de trabajo de página 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 enriquecida.

Controles de servidor HTML

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

  • Los controles del servidor HTML 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 para OnServerEvent el evento más usado 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 todavía se pueden usar en el lado servidor; sin embargo, se agregan al ensamblado como HtmlGenericControl.
  • Cuando se vuelve a publicar la página ASP.NET, los controles del servidor HTML mantienen 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 sobre 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, salvo que los controles web tienen un conjunto estandarizado de nombres de propiedad. Los controles de servidor web ofrecen las siguientes ventajas:

  • Facilite a los fabricantes y desarrolladores la creación de herramientas o aplicaciones que generen automáticamente la interfaz de usuario.
  • Simplifique el proceso de creación de formularios web interactivos, lo que requiere menos conocimientos sobre cómo funcionan los controles HTML y hacer que la tarea de usarlos sea menos propensa a errores.

La System.Web.UI.WebControls.WebControl clase base contiene todas las propiedades comunes. La mayoría de los controles de servidor web 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 con los que se puede programar.

Para obtener más información sobre los controles web individuales que están disponibles en ASP.NET, consulte los siguientes sitios web:

Controles de validación

Los controles de validación se usan para validar los valores que se escriben en otros controles de la página. Los controles de validación realizan la validación del lado cliente, la validación del lado servidor o ambas, en función de las funcionalidades 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 a cada control que quiera 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 cliente o en el lado servidor.

Nota:

Una validación del lado cliente detecta errores antes de que se complete una operación de postback. Por lo tanto, si tiene combinaciones de controles de validación del lado cliente y del lado servidor en una sola página, la validación del lado servidor se adelantará si se produce un error en la validación del lado cliente. Para obtener más información sobre 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 formato personalizado de plantilla. Todos los controles de lista exponen las propiedades DataSource y DataMember, que se usan para enlazar a colecciones.

Los controles de lista solo se pueden enlazar a colecciones que admiten 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>

Una página de ejemplo de .NET de Visual Basic aparece como sigue:

<%@ 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>

La salida aparece como sigue:

  • Ninguno
  • Dos
  • three

Para obtener más información sobre 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 trabajo de página ASP.NET proporciona algunos controles específicos de la tarea denominados controles enriquecidos. Los controles enriquecidos se compilan con varios elementos HTML y contienen una funcionalidad enriquecida. Algunos ejemplos de controles enriquecidos son el control Calendar y el control AdRotator.

Para obtener más información sobre los controles enriquecidos individuales que están disponibles en ASP.NET, consulte los siguientes sitios web:

Controles de usuario

A menudo, es posible que desee reutilizar la interfaz de usuario del formulario web sin tener que escribir ningún código adicional. ASP.NET permite hacer esto mediante la conversión de la Web Forms en controles de usuario. Los controles de usuario, que tienen la extensión de archivo.ascx, se pueden usar varias veces dentro de un único formulario web.

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

  1. Quite todas las <html>etiquetas , <head>, <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 fuertemente al crear una instancia de él.
  4. Asigne al control un nombre de archivo descriptivo y cambie la extensión de archivo de .aspx a .ascx.

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

Controles personalizados

Además de los controles web integrados, ASP.NET también permite crear sus propios controles personalizados. Puede ser ú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 de cualquiera de los controles que existen actualmente.

Para obtener más información sobre el desarrollo de controles personalizados, consulte los temas siguientes: