Curso Completo de ASP.NET para Desarrolladores
Curso Completo de ASP.NET para Desarrolladores
NET
Manual del Participante
Curso: [Link]
Tabla de Contenido
1 Overview: ....................................................................................................................... 3
2 Principios:....................................................................................................................... 4
3 [Link] vs ASP: .......................................................................................................... 4
4 WebForms: ..................................................................................................................... 5
4.1 <% y %> ................................................................................................................. 6
4.2 WebControls........................................................................................................... 8
4.3 Code Behind ........................................................................................................... 9
4.4 Clases y WebControls .......................................................................................... 12
4.4.1 [Link].................................................................................... 12
4.4.2 [Link]............................................................................. 15
4.4.3 [Link] .......................................................................... 17
4.4.4 Trabajando con HttpResponse y HttpRequest.............................................. 18
[Link] Cookies ..................................................................................................... 18
[Link] Manipulando el Response Stream ............................................................ 20
[Link] Recibiendo Archivos ................................................................................ 22
4.4.5 HttpSession................................................................................................... 24
4.4.6 [Link] .......................................................... 27
4.4.7 [Link] ............................................................ 27
4.4.8 [Link] ....................................................... 27
4.4.9 [Link]................................................... 28
4.4.10 [Link] ................................................ 28
4.4.11 [Link] ............................................. 29
4.4.12 DataBinding.................................................................................................. 31
4.4.13 [Link] ........................................................ 35
4.4.14 [Link] ...................................................... 35
4.4.15 [Link] ....................................................... 37
4.4.16 [Link] .................................................... 40
4.4.17 [Link] .............................................. 41
4.4.18 [Link]........................................... 43
4.4.19 [Link]....................................................... 43
4.4.20 [Link] .................................................... 44
4.4.21 Validators ..................................................................................................... 46
4.5 WebUserControls y WebCustomControls ........................................................... 49
Curso: [Link]
1 Overview:
[Link] es un framework de desarrollo construido sobre el CLR que sirve
para desarrollar aplicaciones Web, [Link] ofrece varias ventajas
importantes sobre modelos de desarrollo Web anteriores.
Curso: [Link]
2 Principios:
3 [Link] vs ASP:
• Código compilado significa que las aplicaciones corren mas rápido y se
detectan mas errores al momento del desarrollo
• Las metáforas similares a las App GUI hacen mas sencilla la transición
• Un conjunto rico de controles y librerías permiten el desarrollo rápido
de aplicaciones.
• El caché mejora el rendimiento
• Si la aplicación de [Link] tiene problemas, el runtime de [Link]
descarga el AppDomain y vuelve a cargar la aplicación en un nuevo
AppDomain.
Curso: [Link]
4 WebForms:
Los WebForms son archivos de texto plano con una extensión aspx. Cuando
un browser solicita un recurso aspx, el runtime de [Link] parsea y compila
el archivo en una clase de .NET. Esta clase puede ser usada para procesar
dinámicamente solicitudes entrantes. El aspx es solo compila una ves, en las
siguientes peticiones se rehúsa la clase ya compilada.
Ejemplo 1:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>WebForm1</title>
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<input type="text" name="nombre"> <input type="submit"
value="Enviar">
</form>
</body>
</HTML>
Curso: [Link]
4.1 <% y %>
Ejemplo 2:
<%@ Page language="c#"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>WebForm1</title>
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<div align="center">
<%
int i = 7;
bool Forward = true;
while (i != 8)
{
[Link] ([Link] (
"<p><font size={0}>Texto en {0}</h{0}></p>", i));
if (Forward)
{
i--;
if (i == -1)
{
Forward = false;
i = 1;
}
}
else
i++;
}
%>
</div>
</form>
</body>
</HTML>
Curso: [Link]
Algo que es importante hacer notar, es que a diferencia de ASP, [Link]
compila el código dentro de <% %> en vez de interpretarlo.
Ejemplo 3:
</HTML>
Curso: [Link]
4.2 WebControls
Los WebControls son clases re-usable que ofrecen cierta funcionalidad, tiene
propiedades, métodos y eventos. Los WebControls generan código HTML que
los representa cuando la pagina debe ser rendereada. Los WebControls
permiten manejar una pagina [Link] de una manera sencilla desde código,
como si se estuviese trabajando con controles de una GUI.
Ejemplo 4
<%@ Page language="c#" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>WebForm1</title>
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
Nombre:
<asp:TextBox id="Nombre" runat="server"></asp:TextBox>
Wisdom Level:
<asp:DropDownList id="Tipo" runat="server">
<asp:ListItem Value="Newby">Newby</asp:ListItem>
<asp:ListItem Value="Kiddie">Kiddie</asp:ListItem>
<asp:ListItem Value="So so">So so</asp:ListItem>
<asp:ListItem Value="Hacker">Hacker</asp:ListItem>
<asp:ListItem Value="Guru">Guru</asp:ListItem>
<asp:ListItem Value="Wizard">Wizard</asp:ListItem>
</asp:DropDownList>
<asp:Button id="Button1" runat="server" Text="Just Send
It!"></asp:Button>
</form>
</body>
</HTML>
Curso: [Link]
Ejemplo 5:
<%@ Page language="c#"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>WebForm1</title>
<script language="c#" runat="server">
void Enviar_Click (object sender, EventArgs args)
{
[Link] ("Escribistes " + [Link]);
}
</script>
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<asp:TextBox id="Nombre" runat="server"></asp:TextBox>
<asp:Button id="Enviar" runat="server" Text="Enviar"
OnClick="Enviar_Click"></asp:Button>
</form>
</body>
</HTML>
Curso: [Link]
La clase además debe de modificar el comportamiento del método OnInit,
donde se suscribirá a todos los eventos requeridos. Por cada WebControl en
una pagina aspx, debe de existir una variable del tipo de webcontrol que le
corresponda para poder manipularlos, el nombre de la variable deberá ser el id
del WebControl.
Ejemplo 6:
<%@ Page language="c#" Inherits="Ejemplo6.WebForm1" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>WebForm1</title>
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<asp:TextBox id="Nombre" runat="server"></asp:TextBox>
<asp:Button id="Enviar" runat="server"
Text="Enviar"></asp:Button>
</form>
</body>
</HTML>
Curso: [Link]
using System;
using [Link];
using [Link];
using [Link];
using [Link];
using [Link];
using [Link];
using [Link];
using [Link];
using [Link];
namespace Ejemplo6
{
public class WebForm1 : [Link]
{
protected [Link] Enviar;
protected [Link] Nombre;
Curso: [Link]
4.4 Clases y WebControls
4.4.1 [Link]
La clase Page representa una pagina [Link]. A continuación una lista de las
propiedades, métodos y eventos principales con las que cuenta esta clase.
• Evento Load: Este evento ocurre cuando se carga una pagina debido a
una petición de un cliente. Este evento se ejecuta siempre antes que
cualquier otro evento de algún control.
• Propiedad IsPostBack: Esta propiedad devuelve verdadero cuando la
pagina se esta cargando debido a un PostBack (se disparo algún evento
del lado del cliente), es útil en el cuerpo del evento Load, para realizar
acciones de inicialización solamente la primera vez que se carga la
pagina.
• Propiedad Response: Esta propiedad regresa la instancia de
HttpResponse asignada a la pagina actual. Este objeto representa la
respuesta que se le dará al cliente por su petición y será visto mas
adelante.
• Propiedad Request: Esta propiedad retorna un objeto HttpRequest
asignado a la pagina actual. Este representa la petición del cliente y
será revisado mas adelante.
• Propiedad Session: Retorna una instancia de HttpSessionState que
representa la sesión con el cliente, su uso y utilidad será detallado mas
adelante.
• Propiedad Controls: Regresa una colección de todos los WebControls
contenidos en la pagina actual.
• Evento Error: Se lanza cuando se propaga cualquier unhandled
exception.
• Propiedad IsValid: Devuelve true si todos los validadores activados
devuelven true. Los controles validadores serán vistos mas adelante.
• Metodo MapPath: Devuelve la ubicación en el sistema de archivos de
un PATH absoluto o relativo del servidor Web.
• Metodo ResolveUrl : Devuelve un PATH absoluto al WebServer del
PATH relativo dado.
• Propiedad Validators: Devuelve una colección de WebControls
Validators de la pagina, estos controles serán estudiados mas adelante.
Curso: [Link]
Ejemplo Page:
<%@ Page language="c#" Inherits="EjemploPage.WebForm1" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>WebForm1</title>
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<asp:Button id="FooButton" runat="server"
Text="Click!"></asp:Button>
<asp:Button id="ErrorGenerator" runat="server"
Text="RaiseError"></asp:Button>
</form>
</body>
</HTML>
using System;
using [Link];
using [Link];
using [Link];
using [Link];
using [Link];
using [Link];
using [Link];
using [Link];
using [Link];
namespace EjemploPage
{
public class WebForm1 : [Link]
{
protected [Link] ErrorGenerator;
protected [Link] FooButton;
Curso: [Link]
override protected void OnInit(EventArgs e)
{
InitializeComponent();
[Link](e);
}
Curso: [Link]
4.4.2 [Link]
Ejemplo HttpRequest:
Curso: [Link]
<%@ Page language="c#" Inherits="EjemploHttpRequest.WebForm1" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>WebForm1</title>
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<asp:hyperlink id="Link" runat="server"
NavigateUrl="[Link]">Ir a Request
Sender</asp:hyperlink></form>
</body>
</HTML>
using System;
using [Link];
using [Link];
using [Link];
using [Link];
using [Link];
using [Link];
using [Link];
using [Link];
using [Link];
namespace EjemploHttpRequest
{
public class WebForm1 : [Link]
{
protected [Link] Link;
Curso: [Link]
[Link] ([Link] ("<p>{0} =>
{1}</p>", [Link] (i), [Link][i]));
[Link] ("<p>Listando valores y claves enviados
por GET</p>");
for (int i = 0; i < [Link]; i++)
[Link] ([Link] ("<p>{0} =>
{1}</p>", [Link] (i), [Link][i]));
[Link] ("Request Type " + [Link]);
[Link] ("<p>Listando las variables de
servidor</p>");
for (int i = 0; i < [Link]; i++)
[Link] ([Link] ("<p>{0} =>
{1}</p>", [Link] (i),
[Link][i]));
[Link] ("<p>Estas usando el navegador " +
[Link] + "</p>");
}
}
}
}
4.4.3 [Link]
Curso: [Link]
4.4.4 Trabajando con HttpResponse y HttpRequest
[Link] Cookies
Ejemplo Cookies:
<%@ Page language="c#" Inherits="Cookies.WebForm1" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>WebForm1</title>
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<asp:TextBox id="texto" runat="server"></asp:TextBox>
<asp:Button id="Guardar" runat="server" Text="Guardar
Cookie"></asp:Button>
</form>
</body>
</HTML>
Curso: [Link]
using System;
using [Link];
using [Link];
using [Link];
using [Link];
using [Link];
namespace Cookies
{
public class WebForm1 : [Link]
{
protected [Link] texto;
protected [Link] Guardar;
Curso: [Link]
[Link] Manipulando el Response Stream
En el siguiente ejemplo se crea una pagina [Link] que regresa una imagen
aleatoria generada al vuelo.
Ejemplo DinamicImages:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 7.0">
<TITLE></TITLE>
</HEAD>
<BODY>
<img src="[Link]">
</BODY>
</HTML>
using System;
using [Link];
using [Link];
using [Link];
using [Link];
using [Link];
using [Link];
using [Link];
namespace DinamicImages
{
public class WebForm1 : [Link]
{
private void Page_Load(object sender, [Link] e)
{
//Establecemos el MimeType
[Link] = "image/jpeg";
//Obtenemos la cadena de la imagen a generar
string MD5 = "";
[Link].MD5CryptoServiceProvider
Cryp;
Cryp = new
[Link].MD5CryptoServiceProvider ();
Curso: [Link]
byte[] tmpBuffer =
[Link] ([Link]
().ToCharArray ());
byte[] tmpResC = [Link] (tmpBuffer);
foreach (byte CharAct in tmpResC)
MD5+= ((CharAct < 16) ? "0" : "") +
[Link]("x");
MD5 = [Link] (0, 8);
//Generamos la imagen
Bitmap Bmp = new Bitmap (160, 30);
Graphics Imagen = [Link] (Bmp);
SolidBrush Brocha = new SolidBrush ([Link]);
[Link] (Brocha, 0, 0, 160, 30);
[Link] = [Link];
Font Fuente = new Font("Arial",24);
StringFormat Alineacion = new StringFormat();
[Link] = [Link];
[Link] (MD5, new Font("Arial Black", 18),
Brocha, 80, 0, Alineacion);
//Imprimimos basura
[Link] = [Link];
Pen Lapiz = new Pen(Brocha,1);
Point Punto1 = new Point(0,0);
Point Punto2 = new Point(0,0);
Random RN = new Random ([Link]);
int Inc = [Link] (6) + 3;
for (int i = Inc; i <= 190; i += Inc)
{
Punto1.Y = 0;
Punto1.X = Punto2.X = i;
Punto2.Y = 30;
[Link] (Lapiz, Punto1, Punto2);
}
//Escribimos en el Response
[Link] ([Link], [Link]);
[Link] ();
[Link] ();
}
Curso: [Link]
[Link] Recibiendo Archivos
Curso: [Link]
using System;
using [Link];
using [Link];
using [Link];
using [Link];
using [Link];
namespace Archivos
{
public class WebForm1 : [Link]
{
protected [Link] Enviar;
protected [Link] archivo;
}
}
Curso: [Link]
4.4.5 HttpSession
Curso: [Link]
Ejemplo Sesiones:
<%@ Page language="c#" Inherits="Sesiones.WebForm1" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>WebForm1</title>
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<asp:TextBox id="Usuario" runat="server"></asp:TextBox>
<asp:Button id="Enviar" runat="server"
Text="Login"></asp:Button>
</form>
</body>
</HTML>
using System;
using [Link];
using [Link];
using [Link];
using [Link];
using [Link];
namespace Sesiones
{
public class WebForm1 : [Link]
{
protected [Link] Usuario;
protected [Link] Enviar;
Curso: [Link]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>Inicio</title>
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Inicio" method="post" runat="server">
<asp:Button id="Logout" runat="server" Text="Cerrar
cesion"></asp:Button>
</form>
</body>
</HTML>
using System;
using [Link];
using [Link];
using [Link];
using [Link];
using [Link];
namespace Sesiones
{
public class Inicio : [Link]
{
protected [Link] Logout;
Curso: [Link]
4.4.6 [Link]
4.4.7 [Link]
4.4.8 [Link]
Este control es una caja de texto, se puede asignar o leer su contenido con
la propiedad Text. Su evento principal es TextChanged, se debe de
recordar que este evento es lanzado cuando en el lado del cliente se
modifica el contenido y se pierde el foco, es decir, no se lanza por cada
pulsación en el campo, y esto solamente si AutoPostBack es true. La
representación del control es <asp:TextBox>
Ejemplo TextBox:
<%@ Page language="c#" Inherits="EjemploTextBox.WebForm1" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>WebForm1</title>
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<asp:TextBox id="Caja" runat="server"
AutoPostBack="True"></asp:TextBox>
</form>
</body>
</HTML>
Curso: [Link]
using System;
using [Link];
using [Link];
using [Link];
using [Link];
using [Link];
namespace EjemploTextBox
{
public class WebForm1 : [Link]
{
protected [Link] Caja;
4.4.9 [Link]
4.4.10 [Link]
Curso: [Link]
4.4.11 [Link]
Ejemplo DropDownList:
<%@ Page language="c#" Inherits="EjemploDropDown.WebForm1" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>WebForm1</title>
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<asp:dropdownlist id="Combo" runat="server"
AutoPostBack="True"></asp:dropdownlist></form>
</body>
</HTML>
Curso: [Link]
using System;
using [Link];
using [Link];
using [Link];
using [Link];
using [Link];
namespace EjemploDropDown
{
public class WebForm1 : [Link]
{
protected [Link] Combo;
Curso: [Link]
4.4.12 DataBinding
using System;
using [Link];
using [Link];
using [Link];
using [Link];
using [Link];
using [Link];
using [Link];
using [Link];
using [Link];
namespace DropDownDB
{
public class WebForm1 : [Link]
{
protected [Link] Coneccion;
protected [Link] Adaptador;
protected [Link] sqlSelectCommand1;
protected [Link] sqlInsertCommand1;
protected [Link] sqlUpdateCommand1;
protected [Link] sqlDeleteCommand1;
protected [Link] Datos;
protected [Link] Combo;
Curso: [Link]
private void Page_Load(object sender, [Link] e)
{
if (!IsPostBack)
{
[Link] (Datos, "Empleados");
[Link] ();
}
}
(([Link])([Link])).BeginInit(
);
[Link] += new
[Link](this.Combo_SelectedIndexChanged);
//
// Coneccion
//
[Link] = "pwd=PWD;data
source=HOST;initial catalog=DB;persist security info=F" +
"alse;user id=USER;workstation id=HOST;packet
size=4096";
//
// Adaptador
//
[Link] = this.sqlDeleteCommand1;
[Link] = this.sqlInsertCommand1;
[Link] = this.sqlSelectCommand1;
[Link](new
[Link][] {
Curso: [Link]
new [Link]("Table", "Empleados", new
[Link][] {
new [Link]("Nombre",
"Nombre"),
new [Link]("Puesto",
"Puesto")})});
[Link] = this.sqlUpdateCommand1;
//
// sqlSelectCommand1
//
[Link] = "SELECT Nombre,
Puesto FROM Empleados";
[Link] = [Link];
//
// sqlInsertCommand1
//
[Link] = "INSERT INTO
Empleados(Nombre, Puesto) VALUES (@Nombre, @Puesto); SELECT Nombre, P" +
"uesto FROM Empleados WHERE (Nombre = @Nombre)";
[Link] = [Link];
[Link](new
[Link]("@Nombre",
[Link], 50, "Nombre"));
[Link](new
[Link]("@Puesto",
[Link], 50, "Puesto"));
//
// sqlUpdateCommand1
//
[Link] = "UPDATE Empleados
SET Nombre = @Nombre, Puesto = @Puesto WHERE (Nombre = @Original" +
"_Nombre) AND (Puesto = @Original_Puesto); SELECT
Nombre, Puesto FROM Empleados W" +
"HERE (Nombre = @Nombre)";
[Link] = [Link];
[Link](new
[Link]("@Nombre",
[Link], 50, "Nombre"));
[Link](new
[Link]("@Puesto",
[Link], 50, "Puesto"));
[Link](new
[Link]("@Original_Nombre",
[Link], 50, [Link],
false, (([Link])(0)), (([Link])(0)), "Nombre",
[Link], null));
Curso: [Link]
[Link](new
[Link]("@Original_Puesto",
[Link], 50, [Link],
false, (([Link])(0)), (([Link])(0)), "Puesto",
[Link], null));
//
// sqlDeleteCommand1
//
[Link] = "DELETE FROM
Empleados WHERE (Nombre = @Original_Nombre) AND (Puesto = @Original_P" +
"uesto)";
[Link] = [Link];
[Link](new
[Link]("@Original_Nombre",
[Link], 50, [Link],
false, (([Link])(0)), (([Link])(0)), "Nombre",
[Link], null));
[Link](new
[Link]("@Original_Puesto",
[Link], 50, [Link],
false, (([Link])(0)), (([Link])(0)), "Puesto",
[Link], null));
//
// Datos
//
[Link] = "Datos";
[Link] = new
[Link]("es-MX");
[Link] += new [Link](this.Page_Load);
(([Link])([Link])).EndInit();
Curso: [Link]
4.4.13 [Link]
4.4.14 [Link]
Ejemplo de DataGrid:
<%@ Page language="c#" Inherits="EjemploDataGrid.WebForm1" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>WebForm1</title>
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<asp:DataGrid id=Grid runat="server" DataSource="<%#
Datos %>">
</asp:DataGrid>
</form>
</body>
</HTML>
using System;
using [Link];
using [Link];
using [Link];
using [Link];
using [Link];
using [Link];
using [Link];
using [Link];
using [Link];
namespace EjemploDataGrid
{
/// <summary>
/// Summary description for WebForm1.
/// </summary>
public class WebForm1 : [Link]
{
protected [Link] Coneccion;
protected [Link] Adaptador;
protected [Link] sqlSelectCommand1;
protected [Link] Datos;
Curso: [Link]
protected [Link] Grid;
(([Link])([Link])).BeginInit(
);
//
// Coneccion
//
[Link] = "pwd=PWD;data
source=HOST;initial catalog=DB;persist security info=F" +
"alse;user id=sa;workstation id=HOST;packet
size=4096";
//
// Adaptador
//
[Link] = this.sqlSelectCommand1;
[Link](new
[Link][] {
new [Link]("Nombre",
"Nombre"),
Curso: [Link]
new [Link]("Puesto",
"Puesto")})});
//
// sqlSelectCommand1
//
[Link] = "SELECT Nombre,
Puesto FROM Empleados";
[Link] = [Link];
//
// Datos
//
[Link] = "NewDataSet";
[Link] = new
[Link]("es-MX");
[Link] += new [Link](this.Page_Load);
(([Link])([Link])).EndInit();
}
}
4.4.15 [Link]
• <HeaderTempleate>
• <ItemTempleate>
• <SeparatorTemplate>
• <FooterTemplate>
Curso: [Link]
Ejemplo de Repeater:
<%@ Page language="c#" Inherits="EjemploRepeater.WebForm1" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>WebForm1</title>
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<asp:Repeater id="Repetidor" runat="server">
<ItemTemplate>
<tr>
<td><%# [Link]
([Link], "Nombre")%></td>
<td><%# [Link]
([Link], "Puesto")%></td>
</tr>
</ItemTemplate>
<HeaderTemplate>
<table>
<tr>
<td>NOMBRE</td>
<td>Puesto</td>
</tr>
</HeaderTemplate>
<FooterTemplate>
</table>
FIN
</FooterTemplate>
<SeparatorTemplate>
<tr bgcolor="yellow">
<td colspan="2">--</td>
</tr>
</SeparatorTemplate>
</asp:Repeater>
</form>
</body>
</HTML>
Curso: [Link]
using System;
using [Link];
using [Link];
using [Link];
using [Link];
using [Link];
using [Link];
using [Link];
using [Link];
using [Link];
using [Link];
namespace EjemploRepeater
{
public class WebForm1 : [Link]
{
protected [Link] Repetidor;
}
}
}
}
}
Curso: [Link]
4.4.16 [Link]
Ejemplo CheckBox:
<%@ Page language="c#" Inherits="EjemploCheckBox.WebForm1" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>WebForm1</title>
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<asp:CheckBox id="Check" runat="server" Text="Siguen
despiertos?" AutoPostBack="True"></asp:CheckBox>
</form>
</body>
</HTML>
Curso: [Link]
using System;
using [Link];
using [Link];
using [Link];
using [Link];
using [Link];
namespace EjemploCheckBox
{
4.4.17 [Link]
Ejemplo CheckBoxList
Curso: [Link]
<%@ Page language="c#" Codebehind="[Link]"
AutoEventWireup="false" Inherits="EjemploCheckBoxList.WebForm1" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>WebForm1</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio 7.0">
<meta name="CODE_LANGUAGE" Content="C#">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema"
content="[Link]
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<asp:CheckBoxList id="Lista" runat="server"
AutoPostBack="True">
<asp:ListItem Value="C">Coding</asp:ListItem>
<asp:ListItem Value="A">Anime &
Manga</asp:ListItem>
<asp:ListItem Value="M">Cine</asp:ListItem>
</asp:CheckBoxList>
</form>
</body>
</HTML>
using System;
using [Link];
using [Link];
using [Link];
using [Link];
using [Link];
namespace EjemploCheckBoxList
{
public class WebForm1 : [Link]
{
protected [Link] Lista;
Curso: [Link]
private void Lista_SelectedIndexChanged(object sender,
[Link] e)
{
[Link] ("<p>Alguien cambio la seleccion");
foreach (ListItem i in [Link])
if ([Link])
[Link] ("<p>" + [Link] + "-" +
[Link] + "</p>");
}
}
}
4.4.18 [Link]
4.4.19 [Link]
Ejemplo:
<%@ Page language="c#" Codebehind="[Link]"
AutoEventWireup="false" Inherits="Calendario.WebForm1" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>WebForm1</title>
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<asp:Calendar id="Calendario" runat="server"
SelectionMode="DayWeekMonth"></asp:Calendar>
</form>
</body>
</HTML>
Curso: [Link]
using System;
using [Link];
using [Link];
using [Link];
using [Link];
using [Link];
namespace Calendario
{
4.4.20 [Link]
Curso: [Link]
Ejemplo:
<%@ Page language="c#" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>WebForm1</title>
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<asp:AdRotator id="Rot" runat="server"
AdvertisementFile="[Link]"></asp:AdRotator>
</form>
</body>
</HTML>
Curso: [Link]
4.4.21 Validators
Cada validator tiene una propiedad llamada Text, que será el indicador de
error, ErrorMessage que será el mensaje de error mostrado, y
ControlToValidate que será el control a evaluar. Además de los validators se
necesita un ValidationSummary, que es el control donde se mostraran los
ErrorMessages de todos los validators de la pagina.
Ejemplo:
<%@ Page language="c#" Inherits="Validadores.WebForm1" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>WebForm1</title>
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<table>
<tr>
<td>Valor</td>
<td>
<asp:TextBox id="t1"
runat="server"></asp:TextBox>
<asp:RequiredFieldValidator
id="RequiredFieldValidator1" runat="server" ErrorMessage="Debes de dar un
valor" EnableClientScript="False"
ControlToValidate="t1">*</asp:RequiredFieldValidator> </td>
</tr>
<tr>
<td>Repite el valor</td>
Curso: [Link]
<td>
<asp:TextBox id="t2"
runat="server"></asp:TextBox>
<asp:CompareValidator
id="CompareValidator1" runat="server" ErrorMessage="Los valores no son
iguales" EnableClientScript="False" ControlToValidate="t2"
ControlToCompare="t1">*</asp:CompareValidator></td>
</tr>
<tr>
<td>Numero entre 1 y 10</td>
<td>
<asp:TextBox id="t3"
runat="server"></asp:TextBox>
<asp:RangeValidator
id="RangeValidator1" runat="server" ErrorMessage="Numero en rango
invalido" EnableClientScript="False" ControlToValidate="t3"
MaximumValue="10" MinimumValue="1"
Type="Integer">*</asp:RangeValidator></td>
</tr>
<tr>
<td>Dame tu pagina</td>
<td>
<asp:TextBox id="t4"
runat="server"></asp:TextBox>
<asp:RegularExpressionValidator
id="RegularExpressionValidator1" runat="server" ErrorMessage="Esa no es
una pagina" ControlToValidate="t4" ValidationExpression="[Link]
]+\.)+[\w-]+(/[\w-
./?%&=]*)?">*</asp:RegularExpressionValidator></td>
</tr>
<tr>
<td colspan="2" align="right">
<asp:Button id="Ok" runat="server"
Text="OK"></asp:Button>
</td>
</tr>
<tr>
<td colspan="2">
<asp:ValidationSummary id="Resumen"
runat="server" EnableClientScript="False"></asp:ValidationSummary>
</td>
</tr>
</table>
</form>
</body>
</HTML>
using System;
using [Link];
Curso: [Link]
using [Link];
using [Link];
using [Link];
using [Link];
namespace Validadores
{
public class WebForm1 : [Link]
{
protected [Link]
RequiredFieldValidator1;
protected [Link]
CompareValidator1;
protected [Link]
RangeValidator1;
protected [Link] t1;
protected [Link] t2;
protected [Link] t3;
protected [Link] t4;
protected [Link]
Resumen;
protected [Link] Ok;
protected
[Link]
RegularExpressionValidator1;
Curso: [Link]
4.5 WebUserControls y WebCustomControls
Los Web User contros son fáciles de hacer, pero pueden ser menos
convenientes en ciertos escenarios. Los Web User Controls se desarrollan casi
como una pagina [Link]. Los Web User Controls son compilados
dinámicamente al momento de ejecución, y no pueden ser agregados a la barra
de herramientas de [Link]. Además solo funciona en un solo proyecto, para
rehusarlo se necesita crear una copia de el, con los problemas de
mantenimiento que esto representa.
Los Web Custom Controls son código compilado, que los hace mas sencillos
de usar pero mas difíciles de crear. Además los Web Custom Controls pueden
ser instalados en el GAC.
Curso: [Link]