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>