Manual Del Participante: Curso: ASP
Manual Del Participante: Curso: ASP
NET
Manual del Participante
Curso: ASP.NET
Tabla de Contenido
1 Overview: ....................................................................................................................... 3
2 Principios:....................................................................................................................... 4
3 ASP.NET 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 System.Web.UI.Page.................................................................................... 12
4.4.2 System.Web.HttpRequest............................................................................. 15
4.4.3 System.Web.HttpResponse .......................................................................... 17
4.4.4 Trabajando con HttpResponse y HttpRequest.............................................. 18
4.4.4.1 Cookies ..................................................................................................... 18
4.4.4.2 Manipulando el Response Stream ............................................................ 20
4.4.4.3 Recibiendo Archivos ................................................................................ 22
4.4.5 HttpSession................................................................................................... 24
4.4.6 System.Web.UI.WebControls.Button .......................................................... 27
4.4.7 System.Web.UI.WebControls.Label ............................................................ 27
4.4.8 System.Web.UI.WebControls.TextBox ....................................................... 27
4.4.9 System.Web.UI.WebControls.LinkButton................................................... 28
4.4.10 System.Web.UI.WebControls.ImageButton ................................................ 28
4.4.11 System.Web.UI.WebControls.DropDownList ............................................. 29
4.4.12 DataBinding.................................................................................................. 31
4.4.13 System.Web.UI.WebControls.ListBox ........................................................ 35
4.4.14 System.Web.UI.WebControls.DataGrid ...................................................... 35
4.4.15 System.Web.UI.WebControls.Repeater ....................................................... 37
4.4.16 System.Web.UI.WebControls.CheckBox .................................................... 40
4.4.17 System.Web.UI.WebControls.CheckBoxList .............................................. 41
4.4.18 System.Web.UI.WebControls.RadioButtonList........................................... 43
4.4.19 System.Web.UI.WebControls.Calendar....................................................... 43
4.4.20 System.Web.UI.WebControls.AdRotator .................................................... 44
4.4.21 Validators ..................................................................................................... 46
4.5 WebUserControls y WebCustomControls ........................................................... 49
Curso: ASP.NET
1 Overview:
ASP.NET es un framework de desarrollo construido sobre el CLR que sirve
para desarrollar aplicaciones Web, ASP.NET ofrece varias ventajas
importantes sobre modelos de desarrollo Web anteriores.
Curso: ASP.NET
2 Principios:
3 ASP.NET 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 ASP.NET tiene problemas, el runtime de ASP.NET
descarga el AppDomain y vuelve a cargar la aplicación en un nuevo
AppDomain.
Curso: ASP.NET
4 WebForms:
Los WebForms son archivos de texto plano con una extensión aspx. Cuando
un browser solicita un recurso aspx, el runtime de ASP.NET 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: ASP.NET
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)
{
Response.Write (string.Format (
"<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: ASP.NET
Algo que es importante hacer notar, es que a diferencia de ASP, ASP.NET
compila el código dentro de <% %> en vez de interpretarlo.
Ejemplo 3:
</HTML>
Curso: ASP.NET
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 ASP.NET 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: ASP.NET
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)
{
Response.Write ("Escribistes " + Nombre.Text);
}
</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: ASP.NET
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: ASP.NET
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
namespace Ejemplo6
{
public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Button Enviar;
protected System.Web.UI.WebControls.TextBox Nombre;
Curso: ASP.NET
4.4 Clases y WebControls
4.4.1 System.Web.UI.Page
La clase Page representa una pagina ASP.NET. 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: ASP.NET
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 System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
namespace EjemploPage
{
public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Button ErrorGenerator;
protected System.Web.UI.WebControls.Button FooButton;
Curso: ASP.NET
override protected void OnInit(EventArgs e)
{
InitializeComponent();
base.OnInit(e);
}
Curso: ASP.NET
4.4.2 System.Web.HttpRequest
Ejemplo HttpRequest:
Curso: ASP.NET
<%@ 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="RequestSender.html">Ir a Request
Sender</asp:hyperlink></form>
</body>
</HTML>
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
namespace EjemploHttpRequest
{
public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.HyperLink Link;
Curso: ASP.NET
Response.Write (string.Format ("<p>{0} =>
{1}</p>", Request.Params.GetKey (i), Request.Params[i]));
Response.Write ("<p>Listando valores y claves enviados
por GET</p>");
for (int i = 0; i < Request.QueryString.Count; i++)
Response.Write (string.Format ("<p>{0} =>
{1}</p>", Request.QueryString.GetKey (i), Request.QueryString[i]));
Response.Write ("Request Type " + Request.RequestType);
Response.Write ("<p>Listando las variables de
servidor</p>");
for (int i = 0; i < Request.ServerVariables.Count; i++)
Response.Write (string.Format ("<p>{0} =>
{1}</p>", Request.ServerVariables.GetKey (i),
Request.ServerVariables[i]));
Response.Write ("<p>Estas usando el navegador " +
Request.UserAgent + "</p>");
}
}
}
}
4.4.3 System.Web.HttpResponse
Curso: ASP.NET
4.4.4 Trabajando con HttpResponse y HttpRequest
4.4.4.1 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: ASP.NET
using System;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
namespace Cookies
{
public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.TextBox texto;
protected System.Web.UI.WebControls.Button Guardar;
Curso: ASP.NET
4.4.4.2 Manipulando el Response Stream
En el siguiente ejemplo se crea una pagina ASP.NET 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="ImageGen.aspx">
</BODY>
</HTML>
using System;
using System.Drawing;
using System.Drawing.Imaging;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
namespace DinamicImages
{
public class WebForm1 : System.Web.UI.Page
{
private void Page_Load(object sender, System.EventArgs e)
{
//Establecemos el MimeType
Response.ContentType = "image/jpeg";
//Obtenemos la cadena de la imagen a generar
string MD5 = "";
System.Security.Cryptography.MD5CryptoServiceProvider
Cryp;
Cryp = new
System.Security.Cryptography.MD5CryptoServiceProvider ();
Curso: ASP.NET
byte[] tmpBuffer =
System.Text.Encoding.Default.GetBytes (DateTime.Now.Ticks.ToString
().ToCharArray ());
byte[] tmpResC = Cryp.ComputeHash (tmpBuffer);
foreach (byte CharAct in tmpResC)
MD5+= ((CharAct < 16) ? "0" : "") +
CharAct.ToString("x");
MD5 = MD5.Substring (0, 8);
//Generamos la imagen
Bitmap Bmp = new Bitmap (160, 30);
Graphics Imagen = Graphics.FromImage (Bmp);
SolidBrush Brocha = new SolidBrush (Color.White);
Imagen.FillRectangle (Brocha, 0, 0, 160, 30);
Brocha.Color = Color.Black;
Font Fuente = new Font("Arial",24);
StringFormat Alineacion = new StringFormat();
Alineacion.Alignment = StringAlignment.Center;
Imagen.DrawString (MD5, new Font("Arial Black", 18),
Brocha, 80, 0, Alineacion);
//Imprimimos basura
Brocha.Color = Color.Brown;
Pen Lapiz = new Pen(Brocha,1);
Point Punto1 = new Point(0,0);
Point Punto2 = new Point(0,0);
Random RN = new Random (DateTime.Now.Millisecond);
int Inc = RN.Next (6) + 3;
for (int i = Inc; i <= 190; i += Inc)
{
Punto1.Y = 0;
Punto1.X = Punto2.X = i;
Punto2.Y = 30;
Imagen.DrawLine (Lapiz, Punto1, Punto2);
}
//Escribimos en el Response
Bmp.Save (Response.OutputStream, ImageFormat.Jpeg);
Imagen.Dispose ();
Bmp.Dispose ();
}
Curso: ASP.NET
4.4.4.3 Recibiendo Archivos
Curso: ASP.NET
using System;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
namespace Archivos
{
public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Button Enviar;
protected System.Web.UI.HtmlControls.HtmlInputFile archivo;
}
}
Curso: ASP.NET
4.4.5 HttpSession
Curso: ASP.NET
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 System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
namespace Sesiones
{
public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.TextBox Usuario;
protected System.Web.UI.WebControls.Button Enviar;
Curso: ASP.NET
<!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 System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
namespace Sesiones
{
public class Inicio : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Button Logout;
Curso: ASP.NET
4.4.6 System.Web.UI.WebControls.Button
4.4.7 System.Web.UI.WebControls.Label
4.4.8 System.Web.UI.WebControls.TextBox
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: ASP.NET
using System;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
namespace EjemploTextBox
{
public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.TextBox Caja;
4.4.9 System.Web.UI.WebControls.LinkButton
4.4.10 System.Web.UI.WebControls.ImageButton
Curso: ASP.NET
4.4.11 System.Web.UI.WebControls.DropDownList
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: ASP.NET
using System;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
namespace EjemploDropDown
{
public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.DropDownList Combo;
Curso: ASP.NET
4.4.12 DataBinding
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
namespace DropDownDB
{
public class WebForm1 : System.Web.UI.Page
{
protected System.Data.SqlClient.SqlConnection Coneccion;
protected System.Data.SqlClient.SqlDataAdapter Adaptador;
protected System.Data.SqlClient.SqlCommand sqlSelectCommand1;
protected System.Data.SqlClient.SqlCommand sqlInsertCommand1;
protected System.Data.SqlClient.SqlCommand sqlUpdateCommand1;
protected System.Data.SqlClient.SqlCommand sqlDeleteCommand1;
protected System.Data.DataSet Datos;
protected System.Web.UI.WebControls.DropDownList Combo;
Curso: ASP.NET
private void Page_Load(object sender, System.EventArgs e)
{
if (!IsPostBack)
{
Adaptador.Fill (Datos, "Empleados");
Combo.DataBind ();
}
}
((System.ComponentModel.ISupportInitialize)(this.Datos)).BeginInit(
);
this.Combo.SelectedIndexChanged += new
System.EventHandler(this.Combo_SelectedIndexChanged);
//
// Coneccion
//
this.Coneccion.ConnectionString = "pwd=PWD;data
source=HOST;initial catalog=DB;persist security info=F" +
"alse;user id=USER;workstation id=HOST;packet
size=4096";
//
// Adaptador
//
this.Adaptador.DeleteCommand = this.sqlDeleteCommand1;
this.Adaptador.InsertCommand = this.sqlInsertCommand1;
this.Adaptador.SelectCommand = this.sqlSelectCommand1;
this.Adaptador.TableMappings.AddRange(new
System.Data.Common.DataTableMapping[] {
Curso: ASP.NET
new System.Data.Common.DataTableMapping("Table", "Empleados", new
System.Data.Common.DataColumnMapping[] {
new System.Data.Common.DataColumnMapping("Nombre",
"Nombre"),
new System.Data.Common.DataColumnMapping("Puesto",
"Puesto")})});
this.Adaptador.UpdateCommand = this.sqlUpdateCommand1;
//
// sqlSelectCommand1
//
this.sqlSelectCommand1.CommandText = "SELECT Nombre,
Puesto FROM Empleados";
this.sqlSelectCommand1.Connection = this.Coneccion;
//
// sqlInsertCommand1
//
this.sqlInsertCommand1.CommandText = "INSERT INTO
Empleados(Nombre, Puesto) VALUES (@Nombre, @Puesto); SELECT Nombre, P" +
"uesto FROM Empleados WHERE (Nombre = @Nombre)";
this.sqlInsertCommand1.Connection = this.Coneccion;
this.sqlInsertCommand1.Parameters.Add(new
System.Data.SqlClient.SqlParameter("@Nombre",
System.Data.SqlDbType.VarChar, 50, "Nombre"));
this.sqlInsertCommand1.Parameters.Add(new
System.Data.SqlClient.SqlParameter("@Puesto",
System.Data.SqlDbType.VarChar, 50, "Puesto"));
//
// sqlUpdateCommand1
//
this.sqlUpdateCommand1.CommandText = "UPDATE Empleados
SET Nombre = @Nombre, Puesto = @Puesto WHERE (Nombre = @Original" +
"_Nombre) AND (Puesto = @Original_Puesto); SELECT
Nombre, Puesto FROM Empleados W" +
"HERE (Nombre = @Nombre)";
this.sqlUpdateCommand1.Connection = this.Coneccion;
this.sqlUpdateCommand1.Parameters.Add(new
System.Data.SqlClient.SqlParameter("@Nombre",
System.Data.SqlDbType.VarChar, 50, "Nombre"));
this.sqlUpdateCommand1.Parameters.Add(new
System.Data.SqlClient.SqlParameter("@Puesto",
System.Data.SqlDbType.VarChar, 50, "Puesto"));
this.sqlUpdateCommand1.Parameters.Add(new
System.Data.SqlClient.SqlParameter("@Original_Nombre",
System.Data.SqlDbType.VarChar, 50, System.Data.ParameterDirection.Input,
false, ((System.Byte)(0)), ((System.Byte)(0)), "Nombre",
System.Data.DataRowVersion.Original, null));
Curso: ASP.NET
this.sqlUpdateCommand1.Parameters.Add(new
System.Data.SqlClient.SqlParameter("@Original_Puesto",
System.Data.SqlDbType.VarChar, 50, System.Data.ParameterDirection.Input,
false, ((System.Byte)(0)), ((System.Byte)(0)), "Puesto",
System.Data.DataRowVersion.Original, null));
//
// sqlDeleteCommand1
//
this.sqlDeleteCommand1.CommandText = "DELETE FROM
Empleados WHERE (Nombre = @Original_Nombre) AND (Puesto = @Original_P" +
"uesto)";
this.sqlDeleteCommand1.Connection = this.Coneccion;
this.sqlDeleteCommand1.Parameters.Add(new
System.Data.SqlClient.SqlParameter("@Original_Nombre",
System.Data.SqlDbType.VarChar, 50, System.Data.ParameterDirection.Input,
false, ((System.Byte)(0)), ((System.Byte)(0)), "Nombre",
System.Data.DataRowVersion.Original, null));
this.sqlDeleteCommand1.Parameters.Add(new
System.Data.SqlClient.SqlParameter("@Original_Puesto",
System.Data.SqlDbType.VarChar, 50, System.Data.ParameterDirection.Input,
false, ((System.Byte)(0)), ((System.Byte)(0)), "Puesto",
System.Data.DataRowVersion.Original, null));
//
// Datos
//
this.Datos.DataSetName = "Datos";
this.Datos.Locale = new
System.Globalization.CultureInfo("es-MX");
this.Load += new System.EventHandler(this.Page_Load);
((System.ComponentModel.ISupportInitialize)(this.Datos)).EndInit();
Curso: ASP.NET
4.4.13 System.Web.UI.WebControls.ListBox
4.4.14 System.Web.UI.WebControls.DataGrid
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 System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
namespace EjemploDataGrid
{
/// <summary>
/// Summary description for WebForm1.
/// </summary>
public class WebForm1 : System.Web.UI.Page
{
protected System.Data.SqlClient.SqlConnection Coneccion;
protected System.Data.SqlClient.SqlDataAdapter Adaptador;
protected System.Data.SqlClient.SqlCommand sqlSelectCommand1;
protected System.Data.DataSet Datos;
Curso: ASP.NET
protected System.Web.UI.WebControls.DataGrid Grid;
((System.ComponentModel.ISupportInitialize)(this.Datos)).BeginInit(
);
//
// Coneccion
//
this.Coneccion.ConnectionString = "pwd=PWD;data
source=HOST;initial catalog=DB;persist security info=F" +
"alse;user id=sa;workstation id=HOST;packet
size=4096";
//
// Adaptador
//
this.Adaptador.SelectCommand = this.sqlSelectCommand1;
this.Adaptador.TableMappings.AddRange(new
System.Data.Common.DataTableMapping[] {
new System.Data.Common.DataColumnMapping("Nombre",
"Nombre"),
Curso: ASP.NET
new System.Data.Common.DataColumnMapping("Puesto",
"Puesto")})});
//
// sqlSelectCommand1
//
this.sqlSelectCommand1.CommandText = "SELECT Nombre,
Puesto FROM Empleados";
this.sqlSelectCommand1.Connection = this.Coneccion;
//
// Datos
//
this.Datos.DataSetName = "NewDataSet";
this.Datos.Locale = new
System.Globalization.CultureInfo("es-MX");
this.Load += new System.EventHandler(this.Page_Load);
((System.ComponentModel.ISupportInitialize)(this.Datos)).EndInit();
}
}
4.4.15 System.Web.UI.WebControls.Repeater
• <HeaderTempleate>
• <ItemTempleate>
• <SeparatorTemplate>
• <FooterTemplate>
Curso: ASP.NET
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><%# DataBinder.Eval
(Container.DataItem, "Nombre")%></td>
<td><%# DataBinder.Eval
(Container.DataItem, "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: ASP.NET
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
namespace EjemploRepeater
{
public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Repeater Repetidor;
}
}
}
}
}
Curso: ASP.NET
4.4.16 System.Web.UI.WebControls.CheckBox
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: ASP.NET
using System;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
namespace EjemploCheckBox
{
4.4.17 System.Web.UI.WebControls.CheckBoxList
Ejemplo CheckBoxList
Curso: ASP.NET
<%@ Page language="c#" Codebehind="Default.aspx.cs"
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="http://schemas.microsoft.com/intellisense/ie5">
</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 System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
namespace EjemploCheckBoxList
{
public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.CheckBoxList Lista;
Curso: ASP.NET
private void Lista_SelectedIndexChanged(object sender,
System.EventArgs e)
{
Response.Write ("<p>Alguien cambio la seleccion");
foreach (ListItem i in Lista.Items)
if (i.Selected)
Response.Write ("<p>" + i.Text + "-" +
i.Value + "</p>");
}
}
}
4.4.18 System.Web.UI.WebControls.RadioButtonList
4.4.19 System.Web.UI.WebControls.Calendar
Ejemplo:
<%@ Page language="c#" Codebehind="Default.aspx.cs"
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: ASP.NET
using System;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
namespace Calendario
{
4.4.20 System.Web.UI.WebControls.AdRotator
Curso: ASP.NET
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="adv.xml"></asp:AdRotator>
</form>
</body>
</HTML>
Curso: ASP.NET
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: ASP.NET
<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="http://([\w-
]+\.)+[\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 System.Web;
Curso: ASP.NET
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
namespace Validadores
{
public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.RequiredFieldValidator
RequiredFieldValidator1;
protected System.Web.UI.WebControls.CompareValidator
CompareValidator1;
protected System.Web.UI.WebControls.RangeValidator
RangeValidator1;
protected System.Web.UI.WebControls.TextBox t1;
protected System.Web.UI.WebControls.TextBox t2;
protected System.Web.UI.WebControls.TextBox t3;
protected System.Web.UI.WebControls.TextBox t4;
protected System.Web.UI.WebControls.ValidationSummary
Resumen;
protected System.Web.UI.WebControls.Button Ok;
protected
System.Web.UI.WebControls.RegularExpressionValidator
RegularExpressionValidator1;
Curso: ASP.NET
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 ASP.NET. Los Web User Controls son compilados
dinámicamente al momento de ejecución, y no pueden ser agregados a la barra
de herramientas de VS.NET. 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: ASP.NET