ASP.NET - Controles de servidor

Los controles de servidor son etiquetas comprensibles por el servidor.

Limitaciones de Classic ASP

A continuación, se lista el código copiado de la sección anterior:

<html>
<body style="background-color:#e5eecc; text-align:center;">
<h2>Hello CodeW3C.com!</h2>
<p><%Response.Write(now())%></p>
</body>
</html>

El código anterior refleja las limitaciones de Classic ASP: los bloques de código deben colocarse en las ubicaciones donde se necesita la salida.

A través de Classic ASP, no podemos separar el código ejecutable del HTML en sí. Esto hace que las páginas sean difíciles de leer y mantener.

ASP.NET - Controles de servidor

A través de los controles de servidor, ASP.NET ha resuelto el problema del "código a la italiana" descrito anteriormente.

Los controles de servidor son etiquetas comprensibles por el servidor.

Hay tres tipos de controles de servidor:

  • Controles de servidor HTML - etiquetas HTML tradicionales
  • Los controles de servidor web son nuevas etiquetas ASP.NET
  • Controles de servidor de validación - para la validación de entrada

ASP.NET - Controles de servidor HTML

Los controles de servidor HTML son etiquetas HTML comprensibles por el servidor.

Los elementos HTML en ASP.NET se tratan como texto. Para que estos elementos sean programables, es necesario agregar Propiedad runat="server"Esta propiedad indica que este elemento es un control de servidor. Además, debe agregar la propiedad id para identificar el control de servidor. Este id se puede usar para operar con el control de servidor en tiempo de ejecución.

Notas:Todos los controles de servidor HTML deben estar dentro de una etiqueta <form> con la propiedad runat="server". La propiedad runat="server" indica que el formulario debe procesarse en el servidor. También indica que los controles incluidos pueden ser accedidos por scripts del servidor.

En el siguiente ejemplo, declaramos un control de servidor HtmlAnchor en el archivo .aspx. Luego operamos con la propiedad HRef del HtmlAnchor en un gestor de eventos. El evento Page_Load es uno de los tipos de eventos comprensibles por ASP.NET:

Notas:Un gestor de eventos (event handler) es un subproceso que ejecuta código para un evento dado.

<script runat="server">
Sub Page_Load
link1.HRef="http://www.codew3c.com"
End Sub
</script>
<html>
<body>
<form runat="server">
<a id="link1" runat="server">¡Visita CodeW3C.com!</a>
</form>
</body>
</html>

Consejo:El código ejecutable se ha movido fuera del HTML.

ASP.NET - Controles de servidor web

Los controles de servidor web son etiquetas ASP.NET que son comprensibles por el servidor.

Al igual que los controles de servidor HTML, los controles de servidor web también se crean en el servidor, necesitan la propiedad runat="server" para activarse. Sin embargo, los controles de servidor web no necesitan mapear ningún elemento HTML existente, representan elementos más complejos.

La sintaxis para crear un control de servidor web es:

<asp:control_name id="some_id" runat="server" />

En el siguiente ejemplo, declaramos un control de servidor Button en el archivo .aspx. Luego creamos un gestor de eventos para el evento Click, que puede modificar el texto del botón:

<script runat="server">
Sub submit(Source As Object, e As EventArgs)
button1.Text="¡Has hecho clic en mí!"
End Sub
</script>
<html>
<body>
<form runat="server">
<asp:Button id="button1" Text="¡Haz clic en mí!" runat="server" OnClick="submit"/>
</form>
</body>
</html>

ASP.NET - Control de servidor de validación

El control de servidor de validación se utiliza para verificar la entrada del usuario. Si la entrada del usuario no pasa la validación, se mostrará un mensaje de error al usuario.

Cada控件 validation realiza un tipo específico de validación (por ejemplo, validar un valor específico o un rango de valores).

Por defecto, al hacer clic en un控件 Button, ImageButton o LinkButton, se ejecuta la validación de la página. Puede evitar que se realice la validación al hacer clic en un控件 Button estableciendo la propiedad CausesValidation en false.

La sintaxis para crear un控件 Validation servidor es:

<asp:control_name id="some_id" runat="server" />

En el siguiente ejemplo, declaramos un控件 TextBox, un控件 Button y un控件 RangeValidator en el archivo .aspx. Si la validación falla, el texto "¡El valor debe estar entre 1 y 100!" se mostrará en el控件 RangeValidator:

<html>
<body>
<form runat="server">
<p>Ingrese un número entre 1 y 100:
<asp:TextBox id="tbox1" runat="server" />
<br /><br />
<asp:Button Text="Enviar" runat="server" />
</p>
<p>
<asp:RangeValidator
ControlToValidate="tbox1"
MinimumValue="1"
MaximumValue="100"
Type="Integer"
Text="¡El valor debe estar entre 1 y 100!"
runat="server" />
</p>
</form>
</body>
</html>

Mostrar este ejemplo