Está en la página 1de 74

Descargado de: www.detodoprogramacion.

com

2
Fernando Giardina
NV Te origen argenWinoH inici Vu carrera TeVarro-
llanTo en lenguaje C X Oracle programaTor IVRV
con experiencia en la auWomaWiYacin Te proce-
VoV X ViVWemaV Te CRM. ATemVH Ve eVpecialiY en
!a"aH #erlH #H# X .NNT para el TeVarrollo Te apli-
cacioneV $e%.
Sobre el autor
Descargado de: www.detodoprogramacion.com


3
Gua de ASP.NET:
Desarrollo de sitios y aplicaciones web din!icas
Versin 1 / abril 2011
Nivel& In'erme(io
)a *u+a A,#.NNT Ve encuenWra en l+nea en!
-WWp!II$$$.maeVWroVTel$e%.comIeTiWorialIWuWoria-TeVarrollo$e%-aVp-neWI
-n proXecWo Te MaeVWroV Tel #e%
NTicin! ,Wep-anie .alla Aroc-e
MiVe/o X Tiagramacin! I"n MenToYa
NVWe Wra%ajo Ve encuenWra %ajo una licencia CreaWi"e CommonV
AWri%ucin-NoComercial-ComparWirIgual 0.1 -nporWeT 2CC 34-NC-,A 0.15
Contacto
-WWp!II$$$.maeVWroVTel$e%.comIViWioIcorreoI
Redes sociales
.ace%oo6! -WWp!II$$$ . 7ace%oo6.comImaeVWroVTel$e%
T$iWWer! -WWp!II$$$ . W$iWWer.comImaeVWroV
Sobre la "ua
Descargado de: www.detodoprogramacion.com

#
$ndice
%. InTice ..................................................................................................................... #
2. InWroTuccin a A,#.NNT........................................................................................... &
3. NueVWra primera pgina $e% ................................................................................. '
#. NjecuWar cTigo !a"a,cripW en A,#.NNT ................................................................. %&
&. Arc-i"oV *lo%al.aVax X #e%.Con7ig...................................................................... 22
(. ConWroleV Te Ver"iTor X e"enWoV ......................................................................... 2'
). -WiliYacin Te eVWiloV en A,#.NNT 2C,,5 ................................................................ 3*
'. AcceVo a TaWoVH conVulWar X guarTar in7ormacin TeVTe #e%.ormV ................... #'
*. NVWrucWura Te claVeV X o%jeWoV .............................................................................. &)
%+. -WiliYacin Te MaVWer #ageV.................................................................................. (%
%%. -WiliYacin Te Ajax................................................................................................ (*
%2. OWraV gu+aV ............................................................................................................ )3
$ndice
Descargado de: www.detodoprogramacion.com

$ntroducci,n a
ASP.NET
%
Descargado de: www.detodoprogramacion.com


(
Gua ASP.NET -aestros del web
.aptulo $
$ntroducci,n a ASP.NET
A,#.NNT eV un moTelo Te TeVarrollo $e% uni7icaTo creaTo por MicroVo7W para el TeVarrollo Te ViWioV X
aplicacioneV $e% TinmicaV con un m+nimo Te cTigoH 7orma parWe Te .NNT .rame$or6 8ue conWiene
%
laV li%rer+aV neceVariaV para la coTi7icacin. ,e pueTen uVar TiVWinWoV lenguajeV Te programacin
para
realiYar aplicacioneV $e% en A,#.NNTH pero noV "amoV a en7ocar en el lenguaje C9 2C ,-arp5 el mV
uWili-
YaTo para eVWe Wipo Te TeVarrolloV.
Requisitos para el desarrollo en ASP.NE
-n eTiWor Te cTigo.
NNT .rame$or6.
-n Ver"iTor #e% como II, 2,er"icioV Te InWerneW In7ormaWion ,er"er5.
ATicionalmenWe a la programacin $e% eV neceVario Wener alg:n Wipo Te VoporWe para el
almacena-
mienWo Te TaWoV 2,4) ,er"erH OracleH eWc.5 pero para eVWa gu+a "amoV a manWener la
in7ormacin en
VoporWeV 8ue eVW;n al alcance Te WoToV.
Editor de cdi!o
,e re8uiere Te un eTiWor Te WexWo eVWnTar 2NoWepaTH NoWepaT<<5 pero exiVWen -erramienWaV
con un
enWorno Te TeVarrollo inWegraTo 2IMN5 8ue noV 7aciliWa el acceVo a laV li%rer+aV Tel
.rame$or6 X noV
%rinTa un enWorno amiga%le para la creacin Te aplicacioneV $e% en A,#.NNT como el ViVual ,WuTio.
Nn el WranVcurVo Te la *u+a A,#.NNT uWiliYaremoV IMN para a%orTar loV ejemploV. MeVcarga la
"erVin
NxpreVV .
2
.NE "ra#e$or%
NV un conjunWo Te claVeV 8ue acWuarn como VoporWe Te laV aplicacioneV A,#.NNT inVWalaTaV en
nueVWro
e8uipo. NV Te TiVWri%ucin graWuiWa X Ve pueTe TeVcargar TeVTe la pgina Te MicroVo7W. 2IncluiTo al
ViVual
= -WWp!II$$$.microVo7W.comIneWI
> -WWp!II$$$.microVo7W.comIexpreVVIMo$nloaTVI
Descargado de: www.detodoprogramacion.com
)
Gua ASP.NET -aestros del web
,WuTio .NNT5.
Servidores &eb
-na aplicacin A,#.NNT aTemV Te conWar con el .NNT .rame$or6 inVWalaTo neceViWa Te un
,er"iTor
#e%. -WiliYaremoV el II, 2InWerneW In7ormaWion ,er"er5 8ue "iene como complemenWo Te
inVWalacin Te
#inTo$V. ,i TenWro Te nueVWroV Ver"icioV en ejecucin no conWamoV con InWerneW In7ormaWion
,er"er
Te%emoV agregarlo al e8uipo TonTe inVWalaremoV nueVWraV aplicacioneV.
Descargado de: www.detodoprogramacion.com

Nuestra pri!era
p"ina web
2
Descargado de: www.detodoprogramacion.com
*
Gua ASP.NET -aestros del web
.aptulo 2
Nuestra pri!era p"ina web
Nn la inWroTuccin Te la *u+a A,#.NNT explicamoV loV re8uiViWoV %VicoV neceVarioV para el
TeVarrolloH
a-ora 8ue cuenWaV con un e8uipo II,H .NeW .rame$or6 X un enWorno Te TeVarrollo proceTeremoV a
crear
nueVWra primera aplicacin $e% en A,#.NNT.
-i pri!era aplicaci,n ASP.NET
<%--Directiva--%>
<%@ Page Language=C# %>
<%--Codigo en linea--%>
<script runat=server>
protected void btnAceptar_Click(object sender, EventArgs e){
lblResultado.Text = txtNombre.Text;
txtNombre.Text = string.Empty;
}
</script>
<%--HTML para dibujar los controles en pantalla--%>
<html xmlns=http://www.w3.org/1999/xhtml>
<head runat=server><title>Mi primera aplicacion - Maestros del Web</
title></head>
<body>
<form id=form1 runat=server>
<div>
<asp:TextBox ID=txtNombre runat=server></asp:TextBox>
<asp:Button ID=btnAceptar runat=server Text=Aceptar
onclick=btnAceptar_Click/> <br/>
<asp:Label ID=lblResultado runat=server Text=[Resultado]></
asp:Label
</div>
</form>
</body>
Descargado de: www.detodoprogramacion.com


Paso a paso
%+
1 2
b a
</html>
'C#o proba#os nuestra pri#era aplicacin(
%. A%rimoV el 3loc Te NoWaV X copiamoV el cTigo Te arri%a Te la ViguienWe 7orma!
2. *uarTamoV el arc-i"o con el nom%re Me7aulW.aVpx.
3. CreamoV nueVWro eVpacio "irWual en el II,
a. A%rimoV el II, X creamoV un nue"o TirecWorio "irWual.
b. IngreVamoV el nom%re 8ue WenTr nueVWra aplicacin $e%.
c. InTicamoV el TirecWorio TonTe Ve guarTa nueVWra pgina $e% Me7aulW.aVpx.
d. ,eguimoV laV inVWruccioneV para crear nueVWro TirecWorio "irWual. Al 7inaliYarH WenemoV nueVWra
primera aplicacin A,#.NNT inVWalaTa para pro%ar. A-ora a%rimoV el na"egaTor X eVcri%imoV en
la %arra Te Tireccin! -WWp!IIlocal-oVWIMi#rimeraAplicacion#e%IMe7aulW.aVpx
Descargado de: www.detodoprogramacion.com



Paso a paso
%%
c
En pantalla ve#os tres ob)etos
%. -n TexW3ox llamaTo WxWNom%re 2para ingre-
Var un nom%re5.
2. -n %oWn llamaTo %WnAcepWar con el e"enWo
OnClic6 Te7iniTo 2ejecuWamoV la accin Te
pegar conWeniTo5.
3. -n la%el Te reVulWaToV llamaTo l%lReVulWaTo
2moVWramoV loV reVulWaToV luego Te ejecuWar
el e"enWo Tel %oWn5.
Descargado de: www.detodoprogramacion.com
%2
Gua ASP.NET -aestros del web
Estructura de nuestra aplicacin $eb
)a eVWrucWura Te nueVWra primera aplicacin eV muX Vimple.
%. ConWiene una TirecWi"a!
<%@ Page Language=C# %>
)e eVWamoV inTicanTo 8ue la pgina uVar lenguaje C9 2C ,-arp5.
2. CTigo en l+nea!
<script runat=server>
protected void btnAceptar_Click(object sender, EventArgs e)
{
lblResultado.Text = txtNombre.Text;
txtNombre.Text = string.Empty;
}
</script>
Nl Wag VcripW eVW inTicanTo 8ue el cTigo Ve ejecuWar Tel laTo Tel Ver"iTor. Nn eVWa porcin Tel
cTigo
"an laV accioneV 8ue ejecuWaremoV en nueVWra aplicacinH en eVWe caVo Vlo WenemoV una
accin aVociaTa
al %o'n ?acep'ar@.
3. CTigo HTM) para la creacin Te o%jeWoV en panWalla.
<html xmlns=http://www.w3.org/1999/xhtml>
<head runat=server><title>Mi primera aplicacion - Maestros del Web</title></
head>
<body>
<form id=form1 runat=server>
<div>
<asp:TextBox ID=txtNombre runat=server></asp:TextBox>
<asp:Button ID=btnAceptar runat=server Text=Aceptar
onclick=btnAceptar_Click/>
<br/><asp:Label ID=lblResultado runat=server Text=[Resultado]></
asp:Label>
Descargado de: www.detodoprogramacion.com


Paso a paso
%3
</div>
</form>
</body></html>
.reaci,n de un proyecto ASP.NET con /isual Studio
%. A%rimoV ViVual ,WuTio .NNT X creamoV un nue"o proXecWo $e%.
2. ,eleccionamoV el Wipo Te proXecWo 8ue TeVeamoV realiYar.
a. ,eleccionamoV A,#.NNT #e% ,iWe.
b. InTicamoV la ruWa TonTe "amoV a guarTar el proXecWo! c!AMaeVWroVMel#e%A*uiaA,#NNT
c. MeWerminamoV el lenguaje 8ue "amoV a uWiliYar! ViVual C9.
d. #or :lWimo preVionamoV el %oWn OO para crear la Volucin.
1
3
2
Descargado de: www.detodoprogramacion.com

Paso a paso
%#
3. -na "eY creaTa la Volucin el IMN genera el primer WemplaWe.
Nn la panWalla Te eTicin Te cTigo copiamoV X pegamoV el cTigo anWeriorH a-ora
WenemoV nueVWra
primera pgina $e% TenWro Tel enWorno Te TeVarrollo inWegraTo.
#ara ejecuWar la aplicacin TenWro Tel enWorno Te TeVarrollo preVionamoV la Wecla .B X noV
pregunWa Vi
(eCeamoC Da%ili'ar el mo(o (e ?(e%ug@. #reCionamoC OE.
A con'inuacin Ce a%re nueC'ro na"ega(or pre(e'ermina(o ejecu'an(o la aplicacin en mo(o ?(e%ug@.
Al Wra%ajar con un enWorno Te TeVarrollo no eV neceVario crear un eVpacio "irWual en el II, Xa 8ue
la
miVma aplicacin Ve encarga Te preparar el am%ienWe.
Descargado de: www.detodoprogramacion.com

E0ecutar c,di"o
1a2aScript en
ASP.NET
3
Descargado de: www.detodoprogramacion.com
%(
Gua ASP.NET -aestros del web
.aptulo 3
E0ecutar c,di"o 1a2aScript en ASP.NET
)uego Te crear la primera aplicacin $e% a-ora "amoV a ejecuWar cTigo !a"a,cripW en A,#.NNT
agre-
ganTo 7uncionaliTaT !a"a,cripW a la Xa coTi7icaTa en C9. -na 7orma Vencilla eV agreganTo un
aWri%uWo al
conWrol Tel Ver"iTor 8ue TeVeamoV ejecuWe una 7uncin !a"a,cripW.
MenWro Tel TA* HNAM eVcri%imoV lo ViguienWe!
<%--Codigo JavaScript--%>
<script language=javascript type=text/javascript>
function fnAceptar() {
alert(`El Contenido del TextBox es: ` + document.getElementById(txtNombre).
value);
document.getElementById(txtNombre).value = `';
}
</script>
A-ora neceViWamoV inTicarle a A,#.NNT 8ue neceViWamoV ejecuWar eVa 7uncin TeVTe el %oWn.
<script runat=server>
protected void Page_Load(object sender, EventArgs e)
{
this.btnAceptar.Attributes.Add(OnClick, javascript:return fnAceptar(););
}
</script>
AVignamoV la 7uncin 7nAcepWar al e"enWo OnClic6 Tel %oWn. Nl cTigo compleWo Te%e
8ueTar Te la
ViguienWe 7orma!
Descargado de: www.detodoprogramacion.com
%)
Gua ASP.NET -aestros del web
<%--Directiva--%>
<%@ Page Language=C# %>
<%--Codigo en linea--%>
<script runat=server>
protected void Page_Load(object sender, EventArgs e)
{
this.btnAceptar.Attributes.Add(OnClick, javascript:return fnAceptar(););
}
</script>
<%--HTML para dibujar los controles en pantalla--%>
<html xmlns=http://www.w3.org/1999/xhtml>
<head id=Head1 runat=server>
<title>Mi primera aplicacion - Maestros del Web</title>
<%--Codigo JavaScript--%>
<script language=javascript type=text/javascript>
function fnAceptar() {
alert(`El Contenido del TextBox es: ` + document.
getElementById(txtNombre).value);
document.getElementById(txtNombre).value = `';
}
</script>
</head>
<body>
<form id=form1 runat=server>
<div>
<asp:TextBox ID=txtNombre runat=server></asp:TextBox>
<asp:Button ID=btnAceptar runat=server Text=Aceptar/>
<br/>
<asp:Label ID=lblResultado runat=server ></asp:Label>
</div>
</form>
</body>
</html>
Descargado de: www.detodoprogramacion.com
%'
Gua ASP.NET -aestros del web
Re"iVemoV la manera en la 8ue con"i"en loV cTigoV C9 X !a"a,cripW en un miVmo arc-i"o .aVpx .
A-oraH
VeparemoV el cTigo en TiVWinWoV arc-i"oV para mejorar el manWenimienWo X lecWuraH
agreganTo un
arc-i"o !a"a,cripW a nueVWro proXecWo A,#NNTH neceViWamoV mo"er el cTigo !a"a,cripW al
arc-i"o X re7e-
renciarlo TeVTe nueVWra pgina .aVpx.
)lamaremoV a nueVWro arc-i"o !,CoTe.jV a%rimoV el arc-i"o X copiamoV el cTigo !a"a,cripW 8ue
inicial-
menWe eVcri%imoV en nueVWra pgina .aVpx.
A-ora eliminamoV el cTigo !a"a,cripW Te la pgina .aVpx X -acemoV re7erencia al arc-i"o .jV TenWro
Tel
Wag HNAM Te eVWa 7orma e"iWamoV llenar nueVWro .aVpx con cTigo 8ue -ace Ti7+cil la lecWura.
Tam%i;nH Ve
pueTe Veparar el cTigo C9 Te una 7orma Vimilar al 8ue aca%amoV Te "er con !a"a,cripWH pero lo "ere-
Descargado de: www.detodoprogramacion.com
%*
Gua ASP.NET -aestros del web
moV en unoV cap+WuloV mV aTelanWe.
ClientScript.Re!isterStartupScript
-na 7orma Te uVar cTigo !a"a,cripW TeVTe una pgina A,#.NNT eV uWiliYanTo el m;WoTo
RegisterS-
tartupScript
Te la claVe
ClientScript
H 8ue noV permiWe regiVWrar un VcripW en Wiempo Te ejecu-
cin para Vu poVWerior uWiliYacin.
E)e#plo* Crea#os la +uncin en C,
private void RegistrarScript()
{
const string ScriptKey = ScriptKey;
if (!ClientScript.IsStartupScriptRegistered(this.GetType(), ScriptKey))
{
StringBuilder fn = new StringBuilder();
fn.Append(function fnAceptar() { );
fn.Append(alert(`El Contenido del TextBox es: ` + document.getElementById
fn.Append(document.getElementById(\txtNombre\).value = `';);
fn.Append(});
ClientScript.RegisterStartupScript(this.GetType(),
ScriptKey, fn.ToString(), true);
}
}
NV la miVma 7uncin uVaTa anWeriormenWe
fnAceptar()
a-ora regiVWrnTola TeVTe A,#.NNT. )uego
-acemoV la llamaTa a la 7uncin TeVTe el
Page_Load()
.
RegistrarScript();
,in neceViTaT Te un arc-i"o
.js
ni eVcri%ir el cTigo !a"a,cripW en la Veccin Te HTM). CTigo compleWo!
Descargado de: www.detodoprogramacion.com
2+
Gua ASP.NET -aestros del web
<%--Directiva--%>
<%@ Page Language=C# %>
<%--Codigo en linea--%>
<script runat=server>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
this.btnAceptar.Attributes.Add(OnClick, javascript:return fnAceptar();
RegistrarScript();
}
}
private void RegistrarScript()
{
const string ScriptKey = ScriptKey;
if (!ClientScript.IsStartupScriptRegistered(this.GetType(), ScriptKey))
{
StringBuilder fn = new StringBuilder();
fn.Append(function fnAceptar() { );
fn.Append(alert(`El Contenido del TextBox es: ` + document.
getElementById(\txtNombre\
fn.Append(document.getElementById(\txtNombre\).value = `';);
fn.Append(});
ClientScript.RegisterStartupScript(this.GetType(),
ScriptKey, fn.ToString(), true);
}
}
</script>
Descargado de: www.detodoprogramacion.com
2%
Gua ASP.NET -aestros del web
<%--HTML para dibujar los controles en pantalla--%>
<html xmlns=http://www.w3.org/1999/xhtml>
<head id=Head1 runat=server>
<title>Mi primera aplicacion - Maestros del Web</title>
</head>
<body>
<form id=form1 runat=server>
<div>
<asp:TextBox ID=txtNombre runat=server></asp:TextBox>
<asp:Button ID=btnAceptar runat=server Text=Aceptar/>
<br/>
<asp:Label ID=lblResultado runat=server ></asp:Label>
</div>
</form>
</body>
</html>
Descargado de: www.detodoprogramacion.com

Arc3i2os
Global.asa4 y
5eb..on6i"
#
Descargado de: www.detodoprogramacion.com
23
Gua ASP.NET -aestros del web
.aptulo #
Arc3i2os Global.asa4 y 5eb..on6i"
Nl arc-i"o *lo%al.aVax eV opcional X noV permiWe manejar e"enWoV Te aplicacin X Te ,eVVion en
nueVWra
aplicacinH el arc-i"o *lo%al.aVax reViTe en el TirecWorio ra+Y Te una aplicacin Te A,#.NNT. NVWe
arc-i"o
Ve compila en Wiempo Te ejecucinH no eV acceVi%le por -R) X Te%e u%icarVe en el TirecWorio ra+Y Te
la
Volucin.
e#plate -lobal.asa.*
<%@ Application Language=C# %> <script runat=server>
void Application_Start(object sender, EventArgs e) {
// Codigo que se ejectura cuando inicia la aplicacion
}
void Application_End(object sender, EventArgs e) {
//=Codigo=que=se=ejectura=cuando=finaliza=la=aplicacion
}
void Application_Error(object sender, EventArgs e) {
// Codigo que se ejectura cuando ocurre algun error en la aplicacion
}
void Session_Start(object sender, EventArgs e) {
// Codigo que se ejectura cuando se inicia la sesion.
}
void Session_End(object sender, EventArgs e) {
//=Codigo=que=se=ejectura=cuando=finaliza=la=sesion.
}
</script>
Nl uVo clVico eV el conWaTor Te "iViWaV 8ue Te%e Vumar por caTa uVuario 8ue ingreVe al ViWio $e%H
el
e"enWo 8ue Ve ejecuWa por caTa ingreVo eV ,eVVionF,WarW.
Descargado de: www.detodoprogramacion.com
2#
Gua ASP.NET -aestros del web
E)e#plo* cdi!o en -obal.asa.
InicialiYamoV una "aria%le en 1 2cero5 al iniciar la aplicacin X luego por caTa inicio Te VeVin la incre-
menWamoV X la cargamoV a una "aria%le Te VeVin para acceTer a ella TeVTe el reVWo Te la
aplicacin.
private int cnt; void Application_Start(object sender, EventArgs e) { // Codigo
que se cnt = 0;
} void Session_Start(object sender, EventArgs e) { // Codigo que se ejectura
cuando se Session[cv] = cnt++;
} Codigo de la pagina aspx a la que llamaremos ContadorVisitas.aspx <%@ Page
Langua
protected void Page_Load(object sender, EventArgs e) {
Response.Write(Session[cv]); </script>
}
<html xmlns=http://www.w3.org/1999/xhtml> <head runat=server>
<title></title> </head>
<body> <form id=form1 runat=server> <div>
</div>
</form> </body>
</html>
)a "enWaja Te manejarlo Te eVWa 7orma eV 8ue "amoV a lograr un conWaTor Te "iViWaV realeVH eV
TecirH Vlo
Vumar caTa inicio Te VeVin en lugar Te Vumar caTa VoliciWuT a la pgina. #ara pro%arlo copiamoV el
arc-i"o
ContadorVisitas.aspx
X
Global.asax
al TirecWorio "irWual creaTo anWeriormenWe en
el II, X lo ejecuWamoV!
http://localhost/MiPrimeraAplicacionWeb/ContadorVisitas.aspx.
Descargado de: www.detodoprogramacion.com
2&
Gua ASP.NET -aestros del web
We%.con7ig
Nl arc-i"o #e%.con7ig eV el arc-i"o principal Te con7iguracioneV Te WoTa aplicacin A,#.NNTH eV un
arc-i"o
XM) 8ue conWrola el 7uncionamienWo Tel ViWio $e%.
ConWrol Te VeguriTaT.
ConexioneV a %aVeV Te TaWoV.
NVWaTo Te laV VeVioneV.
ConWrol Te erroreV.
Con7iguracioneV perVonaliYaTaV.
Al igual 8ue el glo%al.aVax Te%e Ver colocaTo en la ra+Y Te la aplicacin.
NVWrucWura %Vica Te un arc-i"o
web.config
&
<configuration[=<system.web/[
<apppettings/[=</configuration[
AgregamoV OeXV a nueVWro
web.config
para "er cmo uVarloV en nueVWro ViWio.
#or ejemploH Vi 8ueremoV conWrolar 8ue el conWaTor Te "iViWaV eVWe acWi"o o noH
agregamoV una 6eX
llamaTa
abilitarContadorVisitas
X lo VeWeamoV como "erTaTero. NueVWraV OeXV 2Cla"eV5 Ve
agregan en el Wag
!appSettings"
<appSettings> <add key=HabilitarContadorVisitas value=true /> </
appSettings>
Cdi!o del evento Session/Start
void Session_Start(object sender, EventArgs e) { // Codigo que se ejectura
cuando se inicia if (Convert.ToBoolean(ConfigurationManager.AppSettings.
Get(HabilitarContadorVisitas
Session[cv] = cnt++;
}
Descargado de: www.detodoprogramacion.com
2(
Gua ASP.NET -aestros del web
)uego copiamoV al TirecWorio "irWual loV arc-i"oV moTi7icaToV X "eremoV 8ue el conWaTor Te
"iViWaV Viem-
pre noV marcara 1 2cero5. MV aTelanWe uVaremoV el $e%.con7ig para eVWa%lecer nueVWra conexin
con
TaWoV.
-WiliGacin Te cTigo TeWrC Tel moTelo o cTigo en l+nea
)oV ejemploV 8ue -emoV "iVWo -aVWa el momenWo Von uWiliYanTo cTigo en l+nea 2CoTe
inline5. -Var
cTigo en l+nea eV muX prcWico Xa 8ue noV permiWe Wener loV conWroleV Tel 7ormulario X el cTigo
Te loV
e"enWoV en un miVmo arc-i"o. )a TeV"enWaja eV 8ue en la maXor+a Te loV proXecWoV Ve Wra%aja
con mV
Te un TeVarrollaTor X TiVe/aTor gr7ico. #ara eVWo eV mV :Wil manejar la inWer7aY Te uVuario 2-I5 X
la
programacin por VeparaTo.
CTigo TeWrC Tel moTelo 2CoTe 3e-inT5
Manejar cTigo TeWrV Tel moTelo noV permiWe organiYar loV e"enWoV en 7orma VeparaTaH WoTo lo
rela-
cionaTo con inWer7aY Te uVuario lo manejamoV en el arc-i"o .aVpx X el conWrol Te loV
e"enWoV en un
arc-i"o VeparaTo .cV 2para C ,-arp5. Me 7orma Vimilar a la 8ue manejamoV loV arc-i"oV Te
!a"a,cripW 2.jV5
TonTe incluimoV WoTaV laV 7uncioneV X luego laV re7erenciamoV en el aVpx -acemoV con el CoTe
3e-inT.
RecorTemoV la primer TirecWi"a Te nueVWra pgina aVpx.
<%@ Page Language=C# %>
InTicamoV 8ue el cTigo Te e"enWoV "a VeparaTo Te la -I X lo marcamoV Te la ViguienWe manera!
<%@ Page Language=C# AutoEventWireup=true CodeFile=Default2.aspx.cs
Inherits=Default2 %>
H4u; le eVWamoV TicienTo a A,#.NNT al incluir eVWa TirecWi"e #age a la pgina aVpxI
0o ve#os punto por punto*
)anguageJ@C9@& eC'e a'ri%u'o le eC' in(ican(o al compila(or 8ue el c(igo eC'ar eCcri'o en
lenguaje C ,-arp.
Au'oK"en'WireupJ@'rue@ & in(ica Ci el c(igo Cer inline o 3eDin(. Al Ce'earlo en ?'rue@ le eC'amoC
inTicanTo 8ue el cTigo Ver TeWrV Tel moTelo 2CoTe3e-inT5 X Ve eVpeci7ica el nom%re Tel arc-i"o
TonTe %uVcar el cTigo Te e"enWoV.
Descargado de: www.detodoprogramacion.com
2)
Gua ASP.NET -aestros del web
Co(e.ileJ@Le7aul'>.aCpx.cC@& in(ica el nom%re (el arcDi"o (on(e incluiremoC el c(igo (e e"en'oC.
InDeri'CJ@Le7aul'>@& Ce eCpeci7ica la claCe a Dere(arM eC'a claCe la %uCca (en'ro (el arcDi"o 8ue in(i-
camoV en CoTe.ile.
Kjemplo Te cTigo uWiliGanTo CoTe 3e-inT
NueVWro ejemplo WenTr ToV arc-i"oV!
%.
#efault.aspx
! incluir WoTo lo relacionaTo con inWer7aY Te uVuario.
2.
#efault.cs
! cTigo Te loV e"enWoV 8ue Ve ejecuWen TeVTe el 7ormulario.
1e+ault.asp.
<%@ Page Language=C# AutoEventWireup=true CodeFile=Default.aspx.cs
Inherits=
<html> <head runat=server>
<title></title> </head>
<body> <form id=form1 runat=server>
<div> <asp:TextBox ID=txtNombre runat=server></asp:TextBox> <asp:Button
ID=btnAceptar
onclick=btnAceptar_Click/> <br/>
<asp:Label ID=lblResultado runat=server Text=[Resultado]></asp:Label> </
div>
</form> </body>
</html>
1e+ault.cs
using System; using System.Web.UI.WebControls;
public partial class Default : System.Web.UI.Page {}
protected void btnAceptar_Click(object sender, EventArgs e) {}
lblResultado.Text = txtNombre.Text; txtNombre.Text = string.Empty;
Descargado de: www.detodoprogramacion.com

.ontroles de
ser2idor y
e2entos
&
Descargado de: www.detodoprogramacion.com
2*
Gua ASP.NET -aestros del web
.aptulo &
.ontroles de ser2idor y e2entos
)oC con'roleC (e Cer"i(or Con i(en'i7ica(oC con la e'i8ue'a runa'J@Cer"er@ N por me(io (e Cu IL po(e-
moV programar en Wiempo Te ejecucin meTianWe cTigo C ,-arp. Muc-oV Te loV conWroleV Te
Ver"iTor
Von VimilareV a conWroleV HTM) como loV cuaTroV Te WexWo o %oWoneVH pero -aX conWroleV Te
Ver"iTor
muc-oV mV complejoV 8ue %rinTan numeroVaV 7uncionaliTaTeV! grillaVH calenTarioVH "iVWa
Te r%olH
men: X -aVWa conWroleV Te conecWi"iTaT.
'2u3 son los eventos(
3VicamenWe un e"enWo reVponTe a una accin 8ue VuceTe en relacin al o%jeWoH loV 8ue VuceTen
en la
inWer7aY Te uVuario Von loV mV uVualeV. #or ejemplo! el e"enWo OnClic6 Ve proTuce al preVionar el
%oWn
X Ve ejecuWa el cTigo 8ue ingreVamoV para eVe e"enWo.
Agregar conWroleC Te Cer"iTor en WiempoC Te TiCe/o&
Incluir conWroleV a una pgina $e% A,#.NNT Ve -ace Te la miVma 7orma 8ue loV elemenWoV HTM).
#ueTe
uWiliYar un TiVe/aTor "iVual X agregar un conWrol Tel cuaTro Te -erramienWaVH o %ienH pueTe
eVcri%ir el
elemenWo 8ue repreVenWa el conWrol.
<asp:Button ID=btnAceptar runat=server Text=Aceptar
onclick=btnAceptar_Click/>
)oV conWroleV Te Ver"iTor $e% Ve Teclaran con una eWi8ueWa XM) 8ue -ace re7erencia al
eVpacio Te
nom%reV aVp. Nl inicio X 7in Tel Wag eVW TeWerminaTo por EaVp I)
runa'J@Cer"er@& noC in(ica 8ue Ce 'ra'a (e un con'rol (e Cer"i(or.
onclic6J@%'nAcep'arFClic6@& con'iene el c(igo 8ue Ce "a a ejecu'ar cuan(o Ce pro(uGca el e"en'o
onclic6.
Descargado de: www.detodoprogramacion.com
3+
Gua ASP.NET -aestros del web
Agregar conWroleC Te Cer"iTor en WiempoC Te ejecucin&
Muc-aV "eceV eV neceVario crear un conWrol en Wiempo Te ejecucin en lugar Te -acerlo en Wiempo
Te
TiVe/o. ,upongamoV 8ue TinmicamenWe Te%emoV crear "arioV com%oV pero no Va%emoV la
canWiTaT
-aVWa 8ue la pgina "aXa reci%ienTo in7ormacin. Nn eVWe caVo eV neceVario crearlo meTianWe
cTigo
inTicanTo la canWiTaT Te "eceV 8ue neceViWamoV crearlo.
Njemplo Te creacin Te un TexW3ox por programacin.
TextBox txt = new TextBox();
txt.ID = txtNombre;
txt.Text = MDW;
A-ora eVWe miVmo TexW3ox lo "amoV a incluir en un #anel.
Panel pnl = new Panel();
pnl.ID = Panel;
pnl.Controls.Add(txt);
CuanTo ejecuWemoV nueVWra pgina "eremoV 8ue en panWalla Ve crea un cuaTro Te WexWo con el
conWe-
ni(o ?MLW@ (en'ro (e un con'rol #ANK). Kn la Ciguien'e ru'ina "eremoC cmo agregar (inmicamen'e
conWroleV Te Ver"iTor en Wiempo Te ejecucin.
CreamoV un arc-i"o llamaTo ConWroleV.aVpx X copiamoV el ViguienWe cTigo!
<%@ Page Language=C# AutoEventWireup=true CodeFile=Controles.aspx.cs
<html xmlns=http://www.w3.org/1999/xhtml> <head runat=server>
<title></title> </head>
<body> <form id=form1 runat=server> <div>
<asp:Label ID=lblCantidad runat=server Text=Ingrese un numero></
asp:Label> <asp:TextBox onclick=btnProceso_Click /> </div>
</form> </body></html>
A-ora creamoV oWro arc-i"o llamaTo ConWroleV.aVpx.cV X copiamoV el ViguienWe cTigo!
Descargado de: www.detodoprogramacion.com
3%
Gua ASP.NET -aestros del web
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class Controles : System.Web.UI.Page {}
protected void Page_Load(object sender, EventArgs e) {}
protected void btnProceso_Click(object sender, EventArgs e) {
Table tbl = new Table(); try
{
int cantidad = Convert.ToInt32(txtCantidad.Text.Trim());
Label lbl; for (int i = 0; i < cantidad; i++) {
lbl = new Label(); lbl.ID = IdLabel + i.ToString(); lbl.Text = Label Nro:
AgregarLabel(tbl, lbl); Page.Controls.Add(tbl);
}
} catch (Exception ex) {
Label lbl = new Label(); lbl.ID = error; lbl.Text = ex.Message;
AgregarLabel(tbl, lbl); }
private void AgregarLabel(Table t,Label l) {}
}
TableCell tc = new TableCell(); TableRow tr = new TableRow();
tc.Controls.Add(l); tr.Cells.Add(tc); t.Rows.Add(tr);
Aca%amoV Te "er como generamoV conWroleV Te Ver"iTor por programacinH a-ora "amoV a "er como
Wra%ajamoV con e"enWoV en 7orma Tinmica.
<%@ Page Language=C# AutoEventWireup=true CodeFile=Controles.aspx.cs
<html xmlns=http://www.w3.org/1999/xhtml> <head runat=server>
<title></title> </head>
<body> <form id=form1 runat=server> <div>
<asp:Label ID=lblCantidad runat=server Text=Ingrese un numero></
Descargado de: www.detodoprogramacion.com
32
Gua ASP.NET -aestros del web
asp:Label> <asp:TextBox </div>
</form> </body> </html>
TenemoV el miVmo 7ormulario a Ti7erencia Te 8ue el %oWn no Wiene el e"enWo OnClic6. A-ora lo
"amoV
a Dacer en 'iempo (e ejecucin. KC'o eC e8ui"alen'e a onclic6J@%'n#roceCoFClic6@ pero por programa-
cin .%Wn#roceVo. Clic6 <J ne$ N"enWHanTler2%Wn#roceVoFClic65O
NVWe cTigo Ve agrega en el e"enWo #ageF)oaT 8ue Ve ejecuWa caTa "eY 8ue Ve carga la pgina.
protected void Page_Load(object sender, EventArgs e) { if(!IsPostBack)
btnProceso.Click += new EventHandler(btnProceso_Click);}
,e agrega un concep'o nue"o en el e"en'o #ageF)oa( ?IC#oC'3ac6@ Ce uCa para Ca%er Ci Na Ce Da ejecu-
WaTo el m;WoTo #ageF)oaT. Como en eVWe caVo Vlo neceViWamoV 8ue Ve Teclare el Vlo una "eY
pregun-
WamoV Vi eV la primera "eY 8ue Ve ejecuWa meTianWe i72PIV#oVW3ac65.
)aV "eceV poVWerioreV 8ue Ve cargue la pgina no enWrarn en eVe I.. Nl Vigno P eV el negaTo Te la
7uncinH
eC como pregun'ar ?Hno eC poC'%ac6I?.
ConWroleC Te uCuarioC reuWiliGa%leC
A,#.NNT pro"ee conWrolaToreV #e% X HTM) pero Wam%i;n pueTeV crear loV propioVH loV
conWrolaTo-
reV Te uVuario Wiene la exWenVin .aVcx cuXa VinWaxiV TeclaraWi"a eV Vimilar a la 8ue Ve emplea
para crear
pginaV $e%. HaVWa el momenWo uV%amoV la TeclaraWi"a Q#age a-ora neceViWamoV uVar
QConWrol para
iTenWi7icarlo como conWrol Te uVuario perVonaliYaTo.
Algo muX inWereVanWe Te loV conWroleV Te uVuarioV aTemV Te poTer agregar WoTa la 7uncionaliTaT
nece-
VariaH poTemoV uVarlo en cual8uier #e%.ormV Tel ViWio X al eVWar cenWraliYaToV cual8uier
moTi7icacin
8ue realicemoV Ve "er re7lejaTo en WoTo el ViWio TonTe eVWemoV uVanTo el QConWrol.
Descargado de: www.detodoprogramacion.com
33
Gua ASP.NET -aestros del web
E)e#plo en cdi!o de un control de usuario*
VamoV a llamar a nueVWro conWrol
$C%ext&ox.ascx
<%@ Control Language=C# AutoEventWireup=true CodeFile=UCTextBox.ascx.cs
%>
Con la TirecWi"a Q ConWrol A,#.NeW Xa enWienTe 8ue Ve WraWa Te un conWrol Te uVuario X Vu
correVpon-
TienWe CoTe3e-inT llamaTo -CTexW3ox.aVcx.cV.
HaVWa el momenWo Vlo eVWamoV inTicanTo a A,#.NNT 8ue eV un conWrol Te uVuarioH a:n no le
inTicamoV
lo 8ue -ar. AgregamoV un conWrol Te Ver"iTor TexW3ox X lo "amoV a perVonaliYar.
<asp:TextBox ID=TextBox1 runat=server></asp:TextBox>
#ara 8ue el ejemplo Vea Vencillo le TaremoV una 7uncionaliTaT nue"a 8ue el TexW3ox 8ue noV pro"ee
A,#.NNT no Wiene. MeWerminar Vi el conWeniTo Tel TexW3ox eV num;rico X -acer algo al reVpecWo.
AgregaremoV algunaV propieTaTeV al TexW3ox!
<asp:TextBox ID=TextBox1 runat=server AutoPostBack=True
ontextchanged=TextBox1_ TextChanged></asp:TextBox>
#ropieTaTeV neceVariaV para el ejemplo!
on'ex'cDange(J@Tex'3ox=FTex'CDange(@ & como "imoC en el cap+'ulo (e e"en'oCM "amoC a ejecu'ar
eVe m;WoTo cuanTo cam%ie el conWeniTo Tel WexW%ox.
Au'o#oC'3ac6J@True@ & al eC'ar Ce'ea(o en True Dace 8ue Ce realice un poC'%ac6 N "aNa al Cer"i(or.
ConWeniTo Tel -CTexW3ox.aCcx.cC
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
Descargado de: www.detodoprogramacion.com
3#
Gua ASP.NET -aestros del web
using System.Text;
public partial class UCTextBox : System.Web.UI.UserControl {
protected void Page_Load(object sender, EventArgs e) {
}
//Atributo
private bool _esnumerico = false; //Propiedad public bool EsNumerico {
get { return this._esnumerico; } set { this._esnumerico = value; }
}
protected void TextBox1_TextChanged(object sender, EventArgs e) {
if (this.EsNumerico && !IsNumeric(TextBox1.Text.Trim())) {
this.TextBox1.Text = string.Empty; return;
}
//Metodo publico que evalua si el valor ingresado es numero o no.
public bool IsNumeric(object Expression) {
bool isNum; double retNum;
isNum===aouble.qrymarseEConvert.qoptringEbxpressionFI=pystem.dlobalization.
NumberSty
}
}
}
return isNum;
'C#o +unciona(
ToTo eVW aWaTo a la propieTaT p:%lica %ool NVNumerico en caVo 8ue eVWe VeWeaTa en TR-N el
conWrol "a
a reVponTer Te TeWerminaTa manera. Nl N"enWHanTler TexW3ox=FTexWC-angeT pregunWa Vi
NVNumerico
eV "erTaTeroH aTemV el conWeniTo Tel WexW%ox no eV n:mero enWonceV limpia el conWrol X no
conWinua
con la accin.
protected void TextBox1_TextChanged(object sender, EventArgs e) {
if (this.EsNumerico && !IsNumeric(TextBox1.Text.Trim())) {
this.TextBox1.Text = string.Empty; return;
}}
IncerWaremoV el ConWrol Te uVuario en un #e%.orm Te la miVma 7orma 8ue lo -acemoV con un
ConWrol
Descargado de: www.detodoprogramacion.com
3&
Gua ASP.NET -aestros del web
$e% lo -acemoV con un ConWrol Te uVuario pero con algunaV "arianWeV.)o primero 8ue Te%emoV
-acer
eV Teclarar el ConWrol Te uVuario en el A,#X.
<%@ Register src=UCTextBox.ascx tagname=UCTextBox tagprefix=uc1 %>
Nl Wagpre7ix eV imporWanWe Xa 8ue eVe Wag reemplaYar al .aVp 8ue Wienen loV conWroleV
$e% 8ue noV
%rinTa A,#.NNT.
<uc1:UCTextBox ID=UCTextBox1 runat=server />
A-ora en nueVWra pgina $e% "eremoV implemenWaTo el ConWrol Te uVuario.
H4u; mV noV 7alWaI Te%emoV TeWerminar Vi la propieTaT pu%lica NVNumerico la TejamoV en .alVe
8ue
eV como la VeWeamoV por Te7aulW o en True para 8ue Wome accioneV Vo%re el conWeniTo Tel
WexW%ox.
AgregamoV eVWa l+nea en el #ageF)oaT Tel $e%7orm.
this.UCTextBox1.EsNumerico = true;
Muc-aV "eceV neceViWamoV cargar un conWrol Te uVuario TinmicamenWe X en Wiempo Te
ejecucinH para
elloV uVaremoV la ViguienWe VinWxiV.
Control MiControl = LoadControl(UCTextBox.ascx);
Descargado de: www.detodoprogramacion.com
3(
Gua ASP.NET -aestros del web
Crear un pgina Te loginM auWenWicacin X CeguriTaT
A,#.NNT noV %rinTa conWroleV Te Ver"iTor complejoV 8ue noV 7aciliWan la implemenWacin en
nueVWraV
aplicacioneV. -n %uen ejemplo eV el conWrol Te )ogin.
Re"iVemoV laV propieTaTeV principaleV 8ue o7rece para aTapWarlo a nueVWraV neceViTaTeV.
<asp:Login ID=Login1 runat=server
LoginButtonText=Ingresar
PasswordLabelText=Contrasea: RememberMeText=Recordarme la proxima vez.
TitleText=
UserNameLabelText=Usuario:>
</asp:Login>
#ropieTaTeV 8ue uWiliYamoV Von!
Login&utton%ext
! noV permiWe moTi7icar el WexWo Tel %oWn.
Pass'ordLabel%ext
! WexWo Te la VoliciWuT Te conWraVe/a.
$ser(a)eLabel%ext
! WexWo Te la VoliciWuT Te nom%re Te uVuario.
Re)e)ber*e%ext
! WexWo Te recorTaWorio.
Nl conWrol noV 8ueTa Te eVWa manera!
A-ora 8ue cam%iamoV el iTioma uVanTo laV propieTaTeV Tel conWrolH Tarle 7uncionaliTaT a Wra";V Te
VuV
Descargado de: www.detodoprogramacion.com
3)
Gua ASP.NET -aestros del web
e"enWoV. Nl N"enWo principal eV AuW-enWicaWe TonTe Ve e"alua Vi el uVuario X conWraVe/a Von
correcWoV Te
la ViguienWe 7orma!
AgregamoV el
+,entandler onaut.enticate/0Login1_Aut.enticate0
a nueVWro
conWrol )ogin.
Me%e 8ueTar Te eVWa 7orma en el $e%7orm!
<asp:Login ID=Login1 runat=server onauthenticate=Login1_Authenticate
LoginButtonText= Ingresar PasswordLabelText=Contrasena:
RememberMeText=Recordarme la proxima vez. TitleText=
UserNameLabelText=Usuario:> </asp:Login>
A-ora "eremoV el cTigo 8ue Ve ejecuWar al 8uerer auWenWicarVe.
protected void Login1_Authenticate(object sender, AuthenticateEventArgs e) {
bool Autenticado = false;
Autenticado = LoginCorrecto(Login1.UserName, Login1.Password);
e.Authenticated = Autenticado; if (Autenticado) {
Response.Redirect(Default.aspx);
}
private bool LoginCorrecto(string Usuario, string Contrasena) { if (Usuario.
Equals(
return true; return false;
}
Kn eC'e ejemplo eC'oN pre7ijan(o en el c(igo un uCuario N paCC$or( 2?maeC'roC@M@(el$e%@5. Kn eC'oC
caVoV el m;WoTo pri"aTo )oginCorrecWo por lo general "a a una %aVe Te TaWoV TonTe eVWn
almacenaToV
loV uVuarioV X paVV$orTV X reci;n Ve "eri7ica Vi eV correcWo.
Descargado de: www.detodoprogramacion.com
3'
Gua ASP.NET -aestros del web
OWroV conWroleV relacionaToV a login Von!
CreaWe-CerWiGarT 8ue noC (a 'o(aC laC 7acili(a(eC para (ar (e al'a nue"oC uCuarioC.
Descargado de: www.detodoprogramacion.com

7tili8aci,n
de estilos en
ASP.NET 9.SS:
(
Descargado de: www.detodoprogramacion.com
#+
Gua ASP.NET -aestros del web
.aptulo (
7tili8aci,n de estilos en ASP.NET 9.SS:
A,#.NNT noV permiWe 7acWoriYar la in7ormacin Te eVWilo X TiVe/o en un grupo VeparaTo Te
7ic-eroVH un
Tema 2T-eme5 Ve pueTe aplicar a cual8uier ViWio Te 7orma 8ue a7ecWe a la apariencia X enWorno Te
laV
pginaV X conWroleV Tel ViWio. )oV cam%ioV en el NVWilo 2C,,5 Te un ViWio pueTen aTminiVWrarVe
realiYanTo
cam%ioV al Tema Vin eTiWar laV pginaV Te 7orma inTi"iTual.
)oV TemaV Wam%i;n Ve pueTen comparWir con oWroV TeVarrollaToreV. HaX "ariaV 7ormaV Te aplicar
NVWiloV
a una pgina $e% en A,#.NNT pero no WoTaV Von laV mV pWimaV. ToTo conWrol Te Ver"iTor Wiene
aWri%u-
WoV 8ue noV permiWen cam%iar Vu aVpecWo.
<asp:Label ID=Label1 runat=server
BackColor=#FF6600
BorderColor=#00CC00
BorderStyle=Solid
Font-Bold=True
Font-Names=Arial
cont-pize=pt
ForeColor=White
Text=Mi label></asp:Label>
AplicanTo el TiVe/o nueVWro )a%el Ve "e Te eVWa 7orma!
Aplicar eVWiloV meTianWe aWri%uWoV Wiene VuV "enWajaV X TeV"enWajaVH por un laTo la
comoTiTaT X "eloci-
TaT Te aplicar un eVWilo parWicular a un conWrol TeWerminaTo. #ero por el oWroH al no eVWar
cenWraliYaToH
no We permiWe reuWiliYar el eVWilo para aplicar a oWroV conWroleV X Vi -aV aplicaTo eVWe eVWilo a
"arioV conWro-
leV X TeVeaV cam%iarlo Te%erV -acerlo uno por uno.
)a mejor opcin eC u'iliGar HojaC (e eC'ilo ?CaCca(ing ,'Nle ,Dee'C@ 2C,,5 7ac'oriGar loC ajuC'eC (e eC'ilo
Te 7orma VeparaTa Te laV propieTaTeV Te loV conWroleV. VeamoV cmo poTemoV aplicar el miVmo
eVWilo
uWiliYanTo -ojaV Te eVWilo C,,. )o primero 8ue "amoV a -acer eV crear un arc-i"o con la exWenVin
C,,.
2?,'Nle,Dee'.cCC@5.
Descargado de: www.detodoprogramacion.com
#%
Gua ASP.NET -aestros del web
Nn eVWe arc-i"o WenTremoV la Te7inicin Tel eVWiloH agregamoV la ViguienWe Te7inicin a nueVWro
arc-i"o
.C,,!
.MiLabel
{
border-color: #00CC00;
border-style: solid;
background-color: #FF6600;
color: #FFFFFF;
font-family: Arial;
font-sizeW=NMpt;
font-weight: bold;
}
)uegoH creamoV la re7erencia a la -oja Te eVWilo en nueVWro aVpx.
<link href=StyleSheet.css rel=stylesheet type=text/css />
#or :lWimo inTicamoV a nueVWro conWrol )a%el 8ue uWiliYara la claVe Mi)a%el.
<asp:Label ID=Label1 runat=server
CssClass=MiLabel Text=Mi label></asp:Label>
Me eVWa manera caTa conWrol 8ue neceViWemoV aplicarle el miVmo eVWilo VimplemenWe Te%er
inTicarle a
la propieTaT CVVClaVV el nom%re Tel eVWilo 8ue Ve TeVea aplicar.
Tra%ajanTo con XM) X We% ,er"iceC
)oV Ver"icioV $e% XM) permiWen inWercam%iar TaWoV en 7orma Te menVajeV XM) enWre ViVWemaV
-eWe-
rog;neoV. )oV Ver"icioV $e% Ve crean uWiliYanTo el enWorno Te aplicacin A,#.NNTH lo 8ue permiWe
Wener
acceVo a numeroVaV caracWer+VWicaV Te .NNT .rame$or6.
'C#o crear un $eb services usando el 41E de ASP.NE(
%. )o primero 8ue Te%emoV -acer eV agregar un nue"o +Wem Te Wipo #e%,er"ice a la Volucin.
HacemoV %oWn Terec-o Vo%re el proXecWo! ATT ne$ +Wem.
Descargado de: www.detodoprogramacion.com
#2
Gua ASP.NET -aestros del web
Me la liVWa Te +WemV VeleccionamoV #e% ,er"ice 8ue por Te7aulW noV propone un nom%re. )o "amoV
a
cam%iar para no con7unTir loV concepWoV.
NueVWro #e% ,er"iceV Ve llamar
's*#2.as)x
A-ora WenemoV en nueVWro proXecWo ToV arc-i"oV nue"oV.
$VMM#.aVmx
$VMM#.cV! eVWe arc-i"o conWiene loV m;WoToV X o%jeWoV 8ue neceViWamoV pu%licar.
Descargado de: www.detodoprogramacion.com
#3
Gua ASP.NET -aestros del web
$s51&.cs
NVWa eV la eVWrucWura %aVe Te la claVe $VMM#H eVWa claVe -ereTa Te
,XVWem.#e%.,er"iceV.#e%,er"ice X
Te eVWa 7orma la iTenWi7icamoV como #e% ,er"iceV.
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.Services;
[WebService(Namespace = http://tempuri.org/)]
xtebpervice_indingEConformsqo===tsimrofiles._asicmrofileN_NFz
public class wsMDW : System.Web.Services.WebService {
public wsMDW ()
{} AQUI VAN LOS METODOS WEB QUE VAMOS A PUBLICAR
}
Nuestro pri#er #3todo $eb*
AgregamoC un m;'o(o llama(o ?.ecDaYHora@ 8ue (e"uel"e la 7ecDa N Dora (el Cer"i(or.
[WebMethod] public string FechaYHora() {
return DateTime.Now.ToString();
}
VemoV 8ue Wiene la miVma apariencia Te un m;WoTo com:n X corrienWe. )aV ToV granTeV
Ti7erenciaV Von
8ue eVWe m;WoTo eVW TenWro Te una claVe 8ue -ereTa Te ,XVWem.#e%.,er"iceV.#e%,er"ice X
Wiene el
MecoraWe R#e%MeW-oTS 8ue lo iTenWi7ica como m;WoTo $e%. ,encillamenWe lo 8ue reVponTe un #e%
,er"iceV eV en 7ormaWo XM)H proceTemoV a ejecuWarlo preVionanTo .B TeVTe el IMN Te A,#.NNT
Descargado de: www.detodoprogramacion.com
##
Gua ASP.NET -aestros del web
HacemoV clic Vo%re el enlace .ec-a4Hora "eremoV la reVpueVWa 8ue noV Ta el $e% Ver"iceV. Nl
reVulWaTo
eV eVWe XM) con el Wag VWring cuXo "alor eV la 7ec-a X -ora Tel momenWo en 8ue Ve ejecuWo el
m;WoTo
$e%.
<?xml version=.0 encoding=utf-8 ?>
<string xmlns=http://tempuri.org/>29/10/2010 11:18:26 p.m.</string>
Me la miVma 7orma Ve crean X prue%a oWroV m;WoToV $e% 8ue reci%an o no parmeWroV. A-ora
"eamoV
un ejemplo Vimple Te un m;WoTo $e% 8ue reci%e parmeWroV.
#ro%emoV con el clVico Hola!
[WebMethod]
public string Hola(string Nombre)
{return Hola + Nombre; }
,eleccionamoV el enlace Hola X noV "a a peTir el parmeWro Nom%re 8ue Te7inimoV en nueVWro
m;WoTo
$e%.
Descargado de: www.detodoprogramacion.com
#&
Gua ASP.NET -aestros del web
AgregamoV un nom%re X "eamoV la reVpueVWa.
<?xml version=.0 encoding=utf-8 ?>
<string xmlns=http://tempuri.org/>Hola Fernando</string>
Me eVWa 7orma WeVWeamoV $e% Ver"iceVH noV inWereVa "er como loV poTemoV uWiliYar TenWro Te
nueVWra
aplicacin. )o primero 8ue "amoV a -acer eV generar una re7erencia $e% Te la ViguienWe 7orma.
%. HacemoV %oWn Terec-o Vo%re el proXecWo X agregamoV una re7erencia $e%.
Nn eVWa "enWana noV Ta 0 opcioneV.
Descargado de: www.detodoprogramacion.com
#(
Gua ASP.NET -aestros del web
2. Como el $e% Ver"iceV eVW TenWro Tel proXecWo "amoV a Veleccionar la primera opcin.
,e liVWan WoToV loV $e% Ver"iceV 8ue WengamoV en nueVWro proXecWo.
3. ,eleccionamoV el ,er"icio $VMM# X mueVWra un pre"ie$ X VoliciWa un nom%reH ponTremoV ,er"i-
cio#e%.
#. #or :lWimoH agregamoV el Ver"icio preVionanTo el %oWn ATT re7erence X Ve agrega la re7erencia a
nueVWro proXecWo. Como "emoV Ve creo una nue"a carpeWa AppF#e%Re7erenceVH ,er"icio#e% X el
arc-i"o $VMM#.TiVcomap.
Descargado de: www.detodoprogramacion.com
#)
Gua ASP.NET -aestros del web
A-ora 8ue Xa WenemoV re7erenciaTo nueVWro $e% Ver"iceV en el proXecWo poTemoV conVumirlo.
,upon-
gamoV 8ue 8ueremoV in"ocar el m;WoTo .ec-a4Hora X moVWrarlo en panWalla. #ara eVoH "amoV a
crear un
nue"o $e%7orm llamaTo ConVumo#,.aVpxH X agregamoV un )a%el TonTe "amoV a moVWrar la
reVpueVWa
Tel m;WoTo.
Consu#o&S.asp.
<%@ Page Language=C# AutoEventWireup=true CodeFile=ConsumoWS.aspx.cs
Inherits=
<html> <head runat=server>
<title></title> </head>
<body> <form id=form1 runat=server> <div>
<asp:Label ID=Label1 runat=server Text=Label></asp:Label> </div>
</form> </body>
</html>
A-ora la llamaTa al m;WoTo $e% la -acemoV TeVTe el CoTe3e-inT.
Consu#o&S.asp..cs
AgregamoV eVWaV l+neaV al m;WoTo #ageF)oaT!
protected void Page_Load(object sender, EventArgs e) { ServicioWeb.wsMDW miws =
ServicioWeb.wsMDW();
Label1.Text = miws.FechaYHora();
}
AV+ Te Vimple Ve crea X conVume un $e% Ver"iceV realiYaTo en A,#.NNT.
Descargado de: www.detodoprogramacion.com

Acceso a datos;
consultar y "uardar
in6or!aci,n desde
5ebFor!s
)
Descargado de: www.detodoprogramacion.com
#*
Gua ASP.NET -aestros del web
.aptulo )
Acceso a datos; consultar y "uardar in6or!a<
ci,n desde 5ebFor!s
Nl acceVo Te TaWoV eV una Te laV 7uncionaliTaTeV mV imporWanWeV X neceVariaV 8ue Te%e
Wener una
pgina $e%H AMO.NNT noV o7rece li%rer+aV compleWaV para Wra%ajar con acceVo a TaWoV.
#or lo gene-
ral para guarTar X leer in7ormacin Ve uWiliYan %aVeV Te TaWoV WaleV como ,4) ,er"erH MX,4)H
Oracle X
TemV.
VamoV a Wra%ajar con un repoViWorio Te TaWoV mV acceVi%leV como Nxcel en TonTe "amoV a
guarTaV X
leer in7ormacin 'ra%ajn(olo (eC(e A,#.NKT. CreamoC un li%ro (e Kxcel N lo renom%ramoC ?#erConaC@
laV primeraV WreV columnaV WenTrn loV campoV nom%reH apelliTo X eTaT. Nl arc-i"o le ponTremoV
el
nom%re Te )i%roNxcel.xlVx X lo guarTamoV en el ra+Y Tel TiVco C. C!A)i%roNxcel.xlVx
-WiliYaremoV el li%ro Te Nxcel como %aVe Te TaWoVH por elloH aVeguraWe Te crearlo
correcWamenWe. CaTa
-oja Ver una Wa%la X caTa columna con W+Wulo Vern loV campoV.
Descargado de: www.detodoprogramacion.com
&+
Gua ASP.NET -aestros del web
raba)ando con datos desde ASP.NE
CreamoV un #e%.orm llamaTo AMO.aVpx X le colocamoV!
0 o%jeWoV! )a%el
0 o%jeWoV! Tex3ox
= %oWn
= *riTVie$
<@ Page Language=C# AutoEventWireup=true CodeFile=ADO.aspx.cs
Inherits=ADO
<html xmlns=http://www.w3.org/1999/xhtml>
<head runat=server>
<title></title>
<style type=text/css>
.style1{width: 100%;}
.style2{width: 86px; }
</style>
</head>
<body><form id=form1 runat=server>
<div>
<table class=style1>
<tr>
<td class=style2>
<asp:Label ID=lblNombre runat=server Font-Names=Arial Font-Size=pt
Text=Nombre></asp:Label>
</td>
<td>
<asp:TextBox ID=txtNombre runat=server Width=.px ></asp:TextBox>
</td>
</tr>
<tr>
<td class=style2>
Descargado de: www.detodoprogramacion.com
&%
Gua ASP.NET -aestros del web
<asp:Label ID=lblApellido runat=server Font-Names=Arial Font-
pize=pt Text=Apellido></asp:Label>
</td>
<td>
<asp:TextBox ID=txtApellido runat=server Width=.px ></asp:TextBox>
</td>
</tr>
<tr>
<td class=style2>
<asp:Label ID=lblEdad runat=server Font-Names=Arial Font-Size=pt
Text=Edad></sp:Label>
</td>
<td>
<asp:TextBox ID=txtEdad runat=server Width= px ></asp:TextBox>
</td>
</tr>
<tr>
<td class=style2>&amp;nbsp;</td>
<td>
<asp:Label ID=lblMensajes runat=server Font-Bold=True Font-
Names=Arial
cont-pize=pt ForeColor=Red></asp:Label>
</td>
</tr>
</table>
<asp:Button ID=btnGuardar runat=server onclick=btnGuardar_Click
Text=Guardar /> <br />
<asp:GridView ID=GridView1 runat=server></asp:GridView>
<br />
<br />
</div>
</form></body>
</html>
Descargado de: www.detodoprogramacion.com
&2
Gua ASP.NET -aestros del web
Nl 7ormulario 8ueTar Te la ViguienWe 7orma!
)a grilla a:n no Wiene TaWoV por eVo no Ve mueVWra en panWallaH eVWe 7ormulario Volo Wiene una
accin X
eVW aVociaTa al %oWn!
<asp:Button ID=btnGuardar runat=server
onclick=btnGuardar_Click
Text=Guardar />
Nl %oWn guarTa el conWeniTo Te loV campoV en la %aVe Te TaWoV en Nxcel. VamoV a Vumar mV
7aciliTa-
TeV 8ue noV pro"ee .NNT para el acceVo a TaWoVH uWiliYaremoV la li%rer+a ,XVWem.MaWa.OleM%
8ue conWiene
o%jeWoV para conecWar X ejecuWar accioneV Vo%re la conexin. )oV o%jeWoV nue"oV Von!
uCing ,XCWem.MaWa.OleM%O
OleDbConnection
OleDbCommand
OleDbDataAdapter
uCing ,XCWem.MaWaO MaWaTa%le
VeamoV como Ve uWiliYan eVWoV o%jeWoV Te conexin en la prcWica. )aV 7uncionaliTaTeV %VicaV
Von ToV!
leer X eVcri%irH enWonceV armaremoV ToV m;WoToV para reVponTer a eVWaV neceViTaTeV.
M;WoTo )eer 25&
NeceViWa una caTena Te conexinH Te%emoV Tecirle 8ue pro"eeTor Te TaWoV "amoV a neceViWarH
TonTe
eVW la 7uenWe X Te 8u; Wipo eV.
@Provider=Microsoft.ACE.OLEDB.12.0; Data Source=C:\\LibroExcel.xlsx; Extended
Properties=Excel 12.0 Xml; HDR=YES;;
Descargado de: www.detodoprogramacion.com
&3
Gua ASP.NET -aestros del web
,i no Wienen eVWe pro"eeTor inVWalaTo lo pueTen TeVcargar graWiV Tel cenWro Te TeVcarga Te
MicroVo7W
2AcceVV MaWa%aVe Nngine5. )uegoH eVWa%lecemoV la conexin X le"anWamoV TaWoV Tel Nxcel. #or
:lWimo
%ajamoV loV TaWoV a un MaWaTa%le X lo enlaYamoV con nueVWro *riTVie$ para "er loV TaWoV en
panWalla.
private void Leer()
{
string connectionString = @Provider=Microsoft.ACE.OLEDB.12.0; Data Source=C:\\
LibroExcel.OleDbConnection conn = new OleDbConnection(connectionString);
OleDbDataAdapter da = new OleDbDataAdapter(Select * From [Personas$], conn);
DataTable dt = new DataTable();
da.Fill(dt);
GridView1.DataSource = dt;
GridView1.DataBind();
}
M;WoTo KCcri%ir 25&
)a 7orma Te acceTer a loV TaWoV eV Vimilar al leer con la Ti7erencia 8ue en lugar Te uVar un
MaWaATapWer
"amoV a uVar un M%CommanT para inVerWar loV nue"oV TaWoV en nueVWra %aVe.
private void Escribir()
{
string connectionString = @Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\
LibroExcel.OleDbConnection conn = new OleDbConnection(connectionString);
string insert = Insert into [Personas$] (Nombre,Apellido,Edad) Values (?,?,?)
OleDbCommand insertCommand = new OleDbCommand(insert, conn);
try
{
insertCommand.Parameters.Add(Nombre, OleDbType.VarChar).Value = txtNombre.
Text;
insertCommand.Parameters.Add(Apellido, OleDbType.VarChar).Value =
txtApellido.Text;
Descargado de: www.detodoprogramacion.com
&#
Gua ASP.NET -aestros del web
if (IsNumeric(txtEdad.Text))
{
insertCommand.Parameters.Add(Edad, OleDbType.Integer).Value = Convert.
ToInt32(txtEdad.}
else
{
throw new Exception(La edad debe ser numerica);
}
conn.Open();
int count = insertCommand.ExecuteNonQuery();
}
catch (OleDbException ex)
{
lblMensajes.Text = ex.Message;
}
catch (Exception ex)
{
lblMensajes.Text = ex.Message;
}
finally
{
conn.Close();
}
}
4a WenemoV loV ToV m;WoToV mV imporWanWeV a-ora loV llamaremoV TeVTe el %oWn 2m;WoTo
eVcri%ir5 X
TeVTe el #ageF)oaT 2e"enWo leer5.
Descargado de: www.detodoprogramacion.com
&&
Gua ASP.NET -aestros del web
protected void Page_Load(object sender, EventArgs e)
{Leer();}
protected void btnGuardar_Click(object sender, EventArgs e)
{Escribir();}
MenWro Tel m;WoTo NVcri%ir eVWamoV uWiliYanTo el m;WoTo IVNumeric2WxWNTaT.TexW5 8ue "imoV
con anWe-
rioriTaT para compro%ar Vi la eTaT ingreVaTa eV num;rica. AV+ 8ueTa en 7uncionamienWo nueVWro
primer
conWacWo con conexin a TaWoV. CargamoV TaWoV en loV campoV X preVionamoV el %oWn
*uarTar.
AgregamoV un nue"o regiVWro.
Descargado de: www.detodoprogramacion.com
&(
Gua ASP.NET -aestros del web
NueVWro li%ro Te Nxcel Ve "er Te la ViguienWe 7orma!
Descargado de: www.detodoprogramacion.com

Estructura de
clases y ob0etos
'
Descargado de: www.detodoprogramacion.com
&'
Gua ASP.NET -aestros del web
.aptulo '
Estructura de clases y ob0etos
)a Volucin para reuWiliYar cTigo X 7uncionaliTaT en nueVWroV proXecWoV eV inWroTucir
cTigo en la
carpeWa AppFCoTe TonTe creamoV claVeV con m;WoToV 8ue pueTen uWiliYarVe TeVTe WoTo el
proXecWo
X Ve compila en Wiempo Te ejecucin. #ueTe organiYar el cTigo 7uenWe Te la 7orma 8ue creamoV mV
con"enienWeH Xa 8ue A,#.NNT lo compilar en un Vlo enVam%laTo al 8ue Wiene acceVo el cTigo Te
cual-
8uier parWe Te la aplicacin $e%.
CTigo comparWiTo
Nn loV ejemploV anWerioreV neceViWamoV Te cTigo comparWiTo. #or ejemploH el m;WoTo IVNumeric
lo
u'iliGamoC en el ?Con'roleC (e uCuarioC reu'iliGa%leC@ N ?AcceCo a (a'oC@.
NVWrucWura Te una claVe! una claVe eVW compueVWa por AWri%uWoVH #ropieTaTeVH M;WoToV X
N"enWoV.
Aun8ue no neceVariamenWe Te%a Wener WoToV VuV componenWeV TeclaraToVH poTemoV crear
claVeV
8ue Vlo Wengan m;WoToV o 8ue Vlo Wengan aWri%uWoV X propieTaTeV.
Njemplo Te una claVe %Vica! el primer e"enWo Te nueVWra claVe Ver el conVWrucWorH al
inVWanciar la
claVe 2O%jeWo5 lo primero 8ue Ve ejecuWa eV el conVWrucWor.
public class Herramientas
{
public Herramientas()
{}
}
A-ora agregaremoV un m;WoTo 8ue noV 7aciliWe la reuWiliYacin Te cTigoH como por ejemplo!
3s(u)e-
ric()
.
Descargado de: www.detodoprogramacion.com
&*
Gua ASP.NET -aestros del web
using System;
using System.Collections.Generic;
using System.Web;
public class Herramientas
{
public Herramientas()
{
}
public bool IsNumeric(object Expression)
{
bool isNum;
double retNum;
isNum===aouble.qrymarseEConvert.qoptringEbxpressionFI=pystem.dlobalization.
NumberSty
return isNum;
}
}
4a WenemoV creaTa nueVWra claVe HerramienWaV.cV en la carpeWa AppFCoTe. HCmo poTemoV
uWiliYar el
m;WoTo IVNumeric25 TeVTe cual8uier parWe Te nueVWra Volucin #e%I
)o primero 8ue Te%emoV -acer eV inVWanciarla.
Herramientas herr = new Herramientas();
VemoV TenWro Te nueVWro o%jeWo -err loV m;WoToV p:%licoV.
Descargado de: www.detodoprogramacion.com
(+
Gua ASP.NET -aestros del web
NVWe m;WoTo noV Te"uel"e un 3ooleano! "erTaTero o 7alVo X noV Vir"e para e"aluar. VamoV a llamar
a la
claVe HerramienWaV TeVTe el m;WoTo NVcri%ir Tel proceVo anWerior.
Herramientas herr = new Herramientas();
if (herr.IsNumeric(txtEdad.Text))
{
}
Me eVWa 7orma noV e"iWamoV coTi7icar el e"enWo IVNumeric en caTa parWe Tel cTigo TonTe lo
neceViWe-
moV.
ClaCeC eCWWicaC&
,on claVeV 8ue no Wienen un conVWrucWor in"oca%leH por conViguienWe no -aX 8ue
inVWanciarlaV X Ve
pueTen acceTer a loV m;WoToV en 7orma TirecWa.VeamoV el ejemplo anWerior pero TeclaranTo la claVe
como eVWWica X Vu uWiliYacin.
Public static class Herramientas
{
static Herramientas()
{}
public static bool IsNumeric(object Expression)
{}
}
Al no Wener la neceViTaT Te inVWanciarla la llamaTa al m;WoTo IVNumeric lo -acemoV en 7orma
TirecWa Te
la ViguienWe 7orma.
Descargado de: www.detodoprogramacion.com

7tili8aci,n de
-aster Pa"es
*
Descargado de: www.detodoprogramacion.com
(2
Gua ASP.NET -aestros del web
.aptulo *
7tili8aci,n de -aster Pa"es
CuanTo creamoV un ViWio $e% WenemoV la neceViTaT Te repeWir cierWaV parWeV Te una pgina en
WoTo el
ViWio o en parWe Tel ViWio. #ara no eVWar copianTo X peganTo laV miVmaV eVWrucWuraV en WoTaV
laV pginaV
lo 8ue poTemoV -acer eV crear una MaVWer #age X re7erenciarla en laV oWraV pginaV.
HCmo lo -acemoCI
)a conVWruccin Te laV pginaV maeVWraV Von VimilareV a la creacin Te $e% 7ormV con algunaV
Ti7eren-
ciaV.
)a exWenVin Tel arc-i"o eV .maVWer
-Va la TirecWi"a Q MaVWer
ConWiene un o%jeWo ConWenW#laceHolTer TonTe lo uWiliYara para moVWrar el conWeniTo Te laV
pginaV
Tel ViWio.
VeamoV la eVWrucWura Te una MaVWer #age! la llamaremoV Main.maVWer
<%@ Master Language=C# AutoEventWireup=true CodeFile=Main.master.cs
Inherits=
<html xmlns=http://www.w3.org/1999/xhtml>
<head runat=server>
<title></title>
<asp:ContentPlaceHolder id=head runat=server>
</asp:ContentPlaceHolder>
</head>
<body>
<form id=form1 runat=server>
<div>
<asp:Label ID=Label1 runat=server Text=Mi sitio Web para Maestros del Web
Font-Names=Tahoma Font-Size=pt ></asp:Label>
<br />
Descargado de: www.detodoprogramacion.com
(3
Gua ASP.NET -aestros del web
<asp:ContentPlaceHolder id=ContentPlaceHolder1 runat=server>
</asp:ContentPlaceHolder>
</div>
</form></body></html>
Al igual 8ue loV $e% 7ormV laV maVWer pageV pueTe Wener Vu cTigo VeparaTo
Code4ile/0*ain.
)aster.cs0
Nn nueVWro ejemplo "emoV 8ue -emoV agregaTo al 7ormulario un )a%el con un WexWo!
4a WenemoV creaTa la maVWer page con Vu ConWenW#laceHolTer= TonTe Ve moVWrar el
conWeniTo Tel $e%
7orm. #ara inTicarle a un $e% 7orm 8ue TeVeamoV eVWe conWeniTo en la maVWer page Te%emoV
agregar
la propie(a( MaC'er#age.ileJ@TUMain.maC'er@ a la (irec'i"a page.
<%@ Page Title= Language=C# MasterPageFile=~/Main.master
AutoEventWireup=true
<asp:Content ID=Content1 ContentPlaceHolderID=head Runat=Server>
</asp:Content&gt;
<asp:Content ID=Content2 ContentPlaceHolderID=ContentPlaceHolder1
Runat=Server
<%--Aqui dentro van los objetos de nuestro web forma--%>
</asp:Content>
Descargado de: www.detodoprogramacion.com
(#
Gua ASP.NET -aestros del web
Como "emoV la eVWrucWura Tel aVpx Te%e cam%iarH Xa loV WagV -Wml no eVWn por8ue Xa eVWn
en la maVWer
pageH enWonceV Vlo Te%emoV u%icar loV conWroleV TenWro Te ConWenW#laceHolTer= Te la
ViguienWe 7orma.
TomamoV como ejemplo AMO.aVpx Tel cap+Wulo anWeriorH X 8ueTa Te la ViguienWe 7orma!
<asp:Content ID=Content2 ContentPlaceHolderID=ContentPlaceHolder1
Runat=Server
<table>
<tr><td>
<asp:Label ID=lblNombre runat=server Font-Names=Arial Font-Size=pt
Text=Nombre></asp:Label>
</td>
<td>
<asp:TextBox ID=txtNombre runat=server Width=.px ></asp:TextBox>
</td>
</tr>
<tr><td>
<asp:Label ID=lblApellido runat=server Font-Names=Arial Font-Size=pt
Text=Apellido></asp:Label>
</td>
<td>
<asp:TextBox ID=txtApellido runat=server Width=.px ></asp:TextBox>
</td>
</tr>
<tr><td>
<asp:Label ID=lblEdad runat=server Font-Names=Arial Font-Size=pt
Text=Edad></asp:Label>
</td>
<td>
<asp:TextBox ID=txtEdad runat=server Width= px ></asp:TextBox>
</td>
</tr>
<tr><td>
&amp;nbsp;</td>
<td>
Descargado de: www.detodoprogramacion.com
(&
Gua ASP.NET -aestros del web
<asp:Label ID=lblMensajes runat=server Font-Bold=True Font-Names=Arial
cont-pize=pt ForeColor=Red></asp:Label>
</td>
</tr>
</table>
<asp:Button ID=btnGuardar runat=server
Text=Guardar />
<br />
<asp:GridView ID=GridView1 runat=server>
</asp:GridView>
</asp:Content>
,i ejecuWamoV a-ora nueVWro AMO.aVpx lo "eremoV Te la ViguienWe manera.
MonTe el W+Wulo X loV WagV HTM) eVWn en la maVWer page X loV conWroleV eVWn en AMO.aVpx
Descargado de: www.detodoprogramacion.com
((
Gua ASP.NET -aestros del web
C#o crear #en6s de nave!acin
#oTemoV crear men:V Te na"egacin para Vu ViWio $e% uWiliYanTo el conWrol men: Te A,#.NNT. Nl
conWrol
men: Wiene cierWaV propieTaTeV 8ue noV permiWen aTapWar a nueVWro guVWo X neceViTaT. #or
Te7aulW el
conWrol men: eV un conWrol "erWical. #ara nueVWra pgina "amoV a neceViWar 8ue Vea -oriYonWal.
Orientation=Horizontal
Orientation=Vertical
<asp:Menu ID=Menu1 runat=server></asp:Menu>
ToTo men: Te%e Wener +WemV 8ue noV Vir"an Te acceVo a laV Ti7erenWeV parWeV Tel ViWio.
<Items></Items>
MenWro Te loV WagV +WemV Te%emoV TeWallar loV MenuIWemV 8ue neceViWamoV.
<asp:MenuItem></asp:MenuItem>
)oV men:V Ve comporWan en relacin a una eVWrucWura Te r%oleV normalmenWe organiYaToV en
Ti7eren-
WeV ni"eleV Te una jerar8u+a. )a primera rama eV el rooW Tel men: X laV ViguienWeV Von loV Vu%
men:.
<asp:MenuItem>
<asp:MenuItem>
</asp:MenuItem>
<asp:MenuItem>
<asp:MenuItem />
<asp:MenuItem />
<asp:MenuItem />
</asp:MenuItem>
</asp:MenuItem>
CreamoV un men: con WreV opcioneV para nueVWro ViWio $e% X lo "amoV a incluir en la maVWer
page.
<asp:Menu ID=Menu1 runat=server />
<Items>
Descargado de: www.detodoprogramacion.com
()
Gua ASP.NET -aestros del web
<asp:MenuItem NavigateUrl=~/Menu1.aspx Text=Menu1 Value=/>
<asp:MenuItem NavigateUrl=~/Menu2.aspx Text=Menu2 Value=/>
<asp:MenuItem NavigateUrl=~/Menu3.aspx Text=Menu3 Value=/>
</Items>
</asp:Menu>
A,#.NNT permiWe agregarle eVWilo al conWrol meTianWe TeWerminaTaV propieTaTeV Tel Wa% MNN-.
BackColor=#B5C7DE
aynamiceorizontallffset=
Font-Names=Verdana
cont-pize==.8em
ForeColor=#284E98
StaticSubMenuIndent=px
<StaticSelectedStyle BackColor=#507CD1 />
<ptaticjenuftemptyle=eorizontalmadding=px serticalmadding=px /[
<DynamicHoverStyle BackColor=#284E98 ForeColor=White />
<DynamicMenuStyle BackColor=#B5C7DE />
<DynamicSelectedStyle BackColor=#507CD1 />
<aynamicjenuftemptyle=eorizontalmadding=px serticalmadding=px /[
<StaticHoverStyle BackColor=#284E98 ForeColor=White />
Descargado de: www.detodoprogramacion.com

('
Gua ASP.NET -aestros del web
.Nl men: X 7ormaWo Ve "e Te la ViguienWe 7orma!
Orientation=Vertical
Orientation=Vertical
Descargado de: www.detodoprogramacion.com

7tili8aci,n de
A0a4
%+
Descargado de: www.detodoprogramacion.com
)+
Gua ASP.NET -aestros del web
.aptulo %+
7tili8aci,n de A0a4
A,#.NNTIAjax eV un conjunWo Te exWenVioneV 8ue permiWen la implemenWacin Te Ajax en $e%
7ormV 8ue
noV permiWen acWualiYar TaWoV en la panWalla Vin neceViTaT Te una recarga compleWa Te la
miVmaH para
uVarlo en A,#.NNT eV neceVario Wener inVWalaTaV Tic-aV exWenVioneV. #oTemoV enconWrarlaV en
el cenWro
Te TeVcargaV Te MicroVo7W!
-na "eY inVWalaTaV 7uncionarn loV conWroleV A!AX en nueVWroV 7ormularioV A,#.NNT
Nl conWrol A!AX mV uVaTo eV el -pTaWe#anel 8ue juVWamenWe noV permiWe recargar Volo una
porcin Te
nueVWra pgina. Nl conWrol -pTaWe#anel neceViWa Tel ,cripWManager para 7uncionar.
Descargado de: www.detodoprogramacion.com
)%
Gua ASP.NET -aestros del web
HCmo Ce implemenWa Ajax en nueCWro CiWio We%I
-na "eY inVWalaTaV laV exWenVioneV Te Ajax Te%emoV inTicarle a nueVWro ViWio $e% 8ue Te%er
reVponTer
a conWroleV Ajax. NVWo lo -acemoV agreganTo laV ViguienWeV l+neaV en nueVWro #e%.Con7ig
System.Web.Extensions
System.Web.Extensions.Design
<runtime>/code>
<assemblyBinding xmlns=urn:schemas-microsoft-com:asm.v1>
<dependentAssembly>
<assemblyIdentity name=System.Web.Extensions publicKeyToken=bf3856ad3
64e35
<bindingRedirect oldVersion=.0.0.0-1.1.0.0 newVersion=.5.0.0 />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name=System.Web.Extensions.Design publicKeyToken=bf3856a
d364e35
<bindingRedirect oldVersion=.0.0.0-1.1.0.0 newVersion=.5.0.0 />
</dependentAssembly>
</assemblyBinding>
</runtime>
Nn caVo Te uWiliYar la IMN Tel ViVual ,WuTio no Ver+a neceVario agregar eVWaV l+neaV Xa
8ue al crear el
proXecWo laV agrega por Te7aulW. -no Te loV 7ormularioV 8ue realiYan poVW%ac6H eV TecirH 8ue "an
al Ver"i-
Tor X Ve "uel"en a recargar eV el 7ormulario AMO.NNT. Nn eVWe "amoV a implemenWar el
-pTaWe#anel para
8ue no recargue WoTa la pgina.
AgregamoV el conWrol ,cripWManager en la parWe inicial Tel $e%7orm o Tel ConWenW#laceHolTer. Nn
nueV-
Wro caVo 8ue eVWamoV uVanTo MaVWer #age con el $e%7orm AMO.aVpx.
<asp:ScriptManager ID=ScriptManager1 runat=server> </asp:ScriptManager>
)uego colocamoV WoTo el 7ormulario 8ue creamoV 2cuaTroV Te WexWoVH la%elVH %oWonVH grillaH
Wa%laVH eWc.5
TenWro Tel -pTaWe#anel.
Descargado de: www.detodoprogramacion.com
)2
Gua ASP.NET -aestros del web
<asp:UpdatePanel ID=UpdatePanel1 runat=server>
<ContentTemplate>
.Aqu pondremos todos los controles
</ContentTemplate>
</asp:UpdatePanel></code>
NjecuWamoV AMO.aVpx X "eremoV 8ue caTa "eY 8ue guarTa o lee in7ormacin no "a a recargar WoTa
la
pginaH VolamenWe la porcin 8ue eVW TenWro Tel -pTaWe#anel.
Descargado de: www.detodoprogramacion.com


www.detodoprogramacion.co
=tras "uas
)3
=tras "uas
Crea Wu propia aplicacin para TiVpoViWi"oV
m"ileV %aVaToV en iO,H X TeVcu%re laV
poVi%iliTaTeV Te Wra%ajo 8ue eVWe mercaTo
o7rece a loV TeVarrollaToreV.
ViViWa la *u+a i#-one
TenTenciaV en la creacin Te "iTeoVH -erra-
mienWaVH conVejoV X re7erenciaV en la pro-
Tuccin Te "iTeoV para la $e%.
ViViWa la *u+a #roTuccin Te "+Teo
AprenTe a uWiliYar el A#I Te *oogle MapV
para el TeVarrollo Te WuV proXecWoV con
mapaV.
ViViWa la *u+a MapaV
-WiliYa laV -erramienWaV VocialeV en InWer-
neW para crear proXecWoV Te comunicacin
inTepenTienWeV.
ViViWa ATicWoV a la comunicacin
RenT .rame$or6 eV un 7rame$or6 Te cTi-
go a%ierWo para TeVarrollar aplicacioneV X
Ver"icioV $e% con #H# B.
ViViWa la *u+a RenT
AcWualiYa WuV conocimienWoV con el curVo
Vo%re AnTroiT para el TeVarrollo Te aplica-
cioneV m"ileV.
ViViWa el curVo AnTroiT
AprenTe laV oporWuniTaTeVH reWoV X eVWra-
WegiaV 8ue WoTa perVona Te%e conocer al
momenWo Te emprenTer.
ViViWa la *u+a ,WarWup
Descargado de:

También podría gustarte