Compartir a través de


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 página

El marco de ASP.NET página incluye una serie de controles de servidor integrados 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 del estado.
  • Acceso sencillo a los valores de objeto sin tener que usar el Request objeto .
  • Capacidad de reaccionar a eventos en 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 ASP.NET página 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 completa.

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 estado 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 un OnServerEvent para 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 reposte 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 sobre los controles de servidor HTML individuales que están disponibles en ASP.NET, consulte los siguientes sitios web:

Controles de servidor web

Los controles web son similares a los controles de servidor HTML, como Button, TextBox y Hyperlink, excepto que los controles web tienen un conjunto estandarizado de nombres de propiedad. Los controles de servidor web ofrecen las siguientes ventajas:

  • Facilitar a los fabricantes y desarrolladores la creación de herramientas o aplicaciones que generan automáticamente la interfaz de usuario.
  • Simplifique el proceso de creación de formularios web interactivos, lo que requiere menos conocimiento de cómo funcionan los controles HTML y hacer que la tarea de usarlos sea menos propenso 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 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 especificados 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 la 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 se debe realizar la validación 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, se adelantará la validación del lado servidor 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:

Controles de lista

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 un 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, aparece una página de ejemplo de .NET de Visual C# como se indica a continuación:

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

Aparece una página de ejemplo de .NET de Visual Basic como se indica a continuación:

<%@ 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 tiene el siguiente aspecto:

  • uno
  • dos
  • tres

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

Controles enriquecidos

Además de los controles anteriores, el marco de ASP.NET página proporciona algunos controles específicos de tareas denominados controles enriquecidos. Los controles enriquecidos se crean 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 quiera reutilizar la interfaz de usuario del formulario web sin tener que escribir ningún código adicional. ASP.NET le 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 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 Controles de usuario de formularios Web Forms.

Controles personalizados

Además de los controles web integrados, ASP.NET también 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 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: