ASP.NET Web Forms - Controles de servidor
Los controles de servidor son etiquetas que el servidor puede entender.
Limitaciones del ASP clásico
El código que se muestra a continuación está copiado del capítulo anterior:
<body bgcolor="yellow">
<center>
<h2>Hello Ejemplo!</h2>
<p><%Response.Write(now())%></p>
</center>
</body>
</html>
El código anterior refleja la limitación del ASP clásico: los bloques de código deben colocarse en el lugar donde se desea mostrar la salida.
Con el ASP clásico, es imposible separar el código ejecutable de las páginas HTML. Esto hace que las páginas sean difíciles de leer y de mantener.
ASP.NET - Controles de servidor
ASP.NET ha resuelto el problema del "código espagueti" mencionado anteriormente mediante los controles de servidor.
Los controles de servidor son etiquetas que el servidor puede entender.
Hay tres tipos de controles de servidor:
- Controles de servidor HTML: etiquetas HTML creadas
- Controles de servidor Web: nuevas etiquetas de ASP.NET
- Controles de servidor de validación: se utilizan para la validación de entradas
ASP.NET - Controles de servidor HTML
Los controles de servidor HTML son etiquetas HTML que el servidor puede entender.
Los elementos HTML en archivos ASP.NET se procesan como texto de forma predeterminada. Para que estos elementos sean programables, debe agregar el atributo runat="server" al elemento HTML. Este atributo indica que el elemento se procesará como un control de servidor. También debe agregar el atributo id para identificar el control de servidor. La referencia de id se puede utilizar para manipular el control de servidor en tiempo de ejecución.
Nota:Todos los controles de servidor HTML deben estar dentro de la etiqueta <form> con el atributo runat="server". El atributo runat="server" indica que el formulario debe procesarse en el servidor. También indica que los controles contenidos en él pueden ser accedidos por scripts del servidor.
En el siguiente ejemplo, declaramos un control de servidor HtmlAnchor en un archivo .aspx. Luego manipulamos la propiedad HRef del control HtmlAnchor en un controlador de eventos (un controlador de eventos es una subrutina que ejecuta código para un evento determinado). El evento Page_Load es uno de los muchos eventos que ASP.NET puede entender:
Sub Page_Load
link1.HRef="http://www.example.com"
End Sub
</script>
<html>
<body>
<form runat="server">
Visit EJEMPLO!
</form>
</body>
</html>
El código ejecutable en sí ya se ha movido fuera del HTML.
ASP.NET - Controles de servidor Web
Los controles de servidor Web son etiquetas ASP.NET especiales que el servidor puede entender.
Al igual que los controles de servidor HTML, los controles de servidor Web se crean en el servidor y también necesitan el atributo runat="server" para funcionar. Sin embargo, los controles de servidor Web no necesitan asignarse a ningún elemento HTML existente; pueden representar elementos más complejos.
La sintaxis para crear un control de servidor Web es:
En el siguiente ejemplo, declaramos un control de servidor Button en un archivo .aspx. Luego creamos un controlador de eventos para el evento Click que cambia el texto del botón:
Sub submit(Source As Object, e As EventArgs)
button1.Text="You clicked me!"
End Sub
</script>
<html>
<body>
<form runat="server">
<asp:Button id="button1" Text="Click me!"
runat="server" OnClick="submit"/>
</form>
</body>
</html>
ASP.NET - Controles de servidor de validación
Los controles de servidor de validación se utilizan para validar la entrada del usuario. Si la entrada del usuario no pasa la validación, se mostrará un mensaje de error al usuario.
Cada control de validación realiza un tipo específico de validación (por ejemplo, validar un valor específico o un rango de valores).
De forma predeterminada, la validación de la página se ejecuta cuando se hace clic en los controles Button, ImageButton o LinkButton. Puede establecer CausesValidation en false para evitar que se realice la validación cuando se hace clic en un control de botón.
La sintaxis para crear un control de servidor de validación es:
En el siguiente ejemplo, declaramos un control TextBox, un control Button y un control RangeValidator en un archivo .aspx. Si la validación falla, el texto "The value must be from 1 to 100!" se mostrará en el control RangeValidator:
Ejemplo
<body>
<form runat="server">
<p>Enter a number from 1 to 100:
<asp:TextBox id="tbox1" runat="server" />
<br /><br />
<asp:Button Text="Submit" runat="server" />
</p>
<p>
<asp:RangeValidator
ControlToValidate="tbox1"
MinimumValue="1"
MaximumValue="100"
Type="Integer"
Text="The value must be from 1 to 100!"
runat="server" />
</p>
</form>
</body>
</html>