C# día 20: páginas Web
Bueno, me hubiera gustado terminar el día 6, pero han llegado los sanfermines y me ha pillado el toro. En fin. Veamos como se crea una página web con ASP.NET y C#. Por un lado se usan etiquetas especiales para los "componentes HTML" como las cajas de texto, botónes y etiquetas. Por otro se puede meter código C# dentro de etiquetas script, pero se ejecutan en el servidor claro. Y también se puede asociar una clase C# a la página, pero eso se escapa de esta introdución.
Veamos un ejemplo tipo hello World.
<%@ Page Language="C#" %>
<html>
<head>
<script runat="server">
// Este código de C# se ejecuta en el servidor,
// es como si lo metieramos entre <% %>
protected void btnBoton_Pulsa(object Origen, EventArgs e)
{
// Establecemos la etiqueta de saludo
lblSaludo.Text="nano dice: hola nena!";
// Establecemos el título de página
lblTitulo.Text = "Ejemplo de ASP.NET";
}
</script>
<title><asp:Label id="lblTitulo" runat="server" /></title>
</head>
<body>
<h1>El hello World del ASP.NET</h1>
<form runat=server>
<asp:Button id="btnBoton" runat="server" Text="Pulsa este botón" onclick="btnBoton_Pulsa" />
Venga, pincha y muestrame el saludo
<br>
<br>
<asp:Label id="lblSaludo" runat="server" />
</form>
</body>
</hmtl>
Merece la pena ver como .NET ha transformado esa página en una página web en el lado cliente,
echale un ojo en el navegador.
Y otro ejemplo algo más complejo.
<%@ Page Language="C#" %>
<html>
<head>
<script runat="server">
// Vamos a comprobar que se han introducido datos y que los dos passwords
// son idénticos
protected void btnBotonComprueba_Pulsa(object Origen, EventArgs e)
{
lblErrores.Text = "";
// Recoge los datos de formulario
// Para estas validacion ya existen unas clases específicas
// pero lo haremos a pelo
if (txtLogin.Text == "")
{
lblErrores.Text = "Escribe algo en el login";
return;
}
if (txtPassword.Text == "" || txtPassword2.Text == "")
{
lblErrores.Text = "No dejes los campos password en vacío";
return;
}
if (txtPassword.Text == txtPassword2.Text)
{
lblErrores.Text = "Ok, campos llenos y los password coinciden";
}
else
{
lblErrores.Text = "Error, los campos password NO coinciden";
return;
}
lblErrores.Text += "<br>Tu login es: <b>" + txtLogin.Text + "</b>";
}
</script>
</head>
<body>
<h1>Formulario de ASP.NET</h1>
<form runat=server>
<table>
<tr>
<td>Login</td>
<td><asp:TextBox id="txtLogin" runat="server" Text="" /></td>
</tr>
<tr>
<td>Password</td>
<td><asp:TextBox id="txtPassword" TextMode="Password" runat="server" Text="" /></td>
</tr>
<tr>
<td>Repite Password</td>
<td><asp:TextBox id="txtPassword2" TextMode="Password" runat="server" Text="" /></td>
</tr>
<tr>
<td colspan="2">
<asp:Button id="btnBotonComprueba" runat="server" Text="Comprueba datos" onclick="btnBotonComprueba_Pulsa" />
</td>
</tr>
</table>
Venga, pincha y muestrame el saludo
<br>
<br>
<asp:Label id="lblErrores" runat="server" />
</form>
</body>
</hmtl>
pello.io