Você está na página 1de 37

Agregar cdigo a un formulario Web

Form con Microsoft ASP.NET

ndice

Descripcin 1
Leccin: uso de las pginas de cdigo
subyacente 2
Leccin: agregar procedimientos de evento a
controles de servidor Web 9
Leccin: uso de eventos de pgina 22
Agregar cdigo a un formulario Web Form con Microsoft ASP.NET 1

Descripcin

Uso de las pginas de cdigo subyacente


Agregar procedimientos de evento a controles de
servidor Web
Uso de eventos de pgina

***************************** use******************************

Introduccin En este mdulo, estudiaremos los distintos mtodos que pueden utilizarse para
agregar cdigo a nuestra aplicacin Web con Microsoft ASP.NET. Tambin
estudiaremos los procedimientos de evento para los controles de servidor Web,
cmo utilizarlos y el orden en que funcionan. Estudiaremos el uso de las pginas
de cdigo subyacente, que son el mtodo preferido de Microsoft Visual Studio
.NET para agregar cdigo a pginas Web. Finamente, estudiaremos cmo se
utilizan los eventos de pgina, en particular al evento Page_Load.
Objetivos En este mdulo, aprenderemos a:
Utilizar pginas de cdigo subyacente en una aplicacin Web.
Crear procedimientos de evento para controles de servidor Web.
Utilizar eventos de pgina en una aplicacin Web.
2 Agregar cdigo a un formulario Web Form con Microsoft ASP.NET

Leccin: uso de las pginas de cdigo subyacente

Cmo implementar cdigo


Escribir cdigo en lnea
Qu son las pginas de cdigo subyacente?
Entender cmo funcionan las pginas de cdigo
subyacente

***************************** use******************************

Introduccin En esta leccin, estudiaremos cmo implementar cdigo con Visual Studio .NET.
Tambin estudiaremos cmo se utilizan las pginas de cdigo subyacente y en
qu se diferencian del cdigo en lnea.
Objetivos de la leccin En esta leccin, aprenderemos a:
Identificar tres formas de implementar cdigo en un formulario Web Form
ASP.NET.
Utilizar las pginas de cdigo subyacente.
Agregar cdigo a un formulario Web Form con Microsoft ASP.NET 3

Cmo implementar cdigo

Tres mtodos para agregar cdigo:


z Ubicar el cdigo en el mismo archivo que el contenido
(mezclado)
z Ubicar el cdigo en una seccin distinta del archivo de
contenido (cdigo en lnea )
z Ubicar el cdigo en un archivo distinto (pginas de
cdigo subyacente)
Las pginas de cdigo subyacente son el mtodo
predeterminado de Visual Studio .NET

***************************** use******************************

Implementar cdigo Podemos agregar cdigo a nuestro formulario Web Form de los siguientes
modos:
Cdigo mezclado. El cdigo se encuentra en el mismo archivo que el
contenido Web, entremezclado con el contenido Hypertext Markup Language
(HTML). Este mtodo es el menos elegido, ya que es difcil leer y trabajar
con un archivo de este tipo. Sin embargo, es un mtodo utilizado con
frecuencia en pginas Active Server Pages (ASP).
Cdigo en lnea. El cdigo se encuentra en el mismo archivo en una seccin
SCRIPT distinta, al igual que el contenido HTML.
Cdigo subyacente. El cdigo se encuentra en un archivo distinto del
contenido HTML. El archivo de cdigo se denomina pgina de cdigo
subyacente. Cuando se utiliza Visual Studio .NET, el mtodo predeterminado
es ubicar todo el cdigo en una pgina de cdigo subyacente.
4 Agregar cdigo a un formulario Web Form con Microsoft ASP.NET

Escribir cdigo en lnea

Cdigo y contenido en el mismo archivo


Distintas secciones en el archivo para el cdigo y HTML
<HTML>
<HTML>
<asp:Button
<asp:Button id="btn"
id="btn" runat="server"/>
runat="server"/>
</HTML>
</HTML>
<SCRIPT
<SCRIPT Language="vb" runat="server">
Language="vb" runat="server">
Sub
Sub btn_Click(s
btn_Click(s As
As Object,
Object, ee As
As EventArgs)
EventArgs) Handles
Handles btn.Click
btn.Click
...
...
End
End Sub
Sub
</SCRIPT>
</SCRIPT>

<HTML>
<HTML>
<asp:Button
<asp:Button id="btn"
id="btn" runat="server"/>
runat="server"/>
</HTML>
</HTML>
<SCRIPT
<SCRIPT Language="c#" runat="server">
Language="c#" runat="server">
private
private void
void btn_Click(object
btn_Click(object sender,
sender, System.EventArgs
System.EventArgs e)
e)
{{
.. .. ..
}}
</SCRIPT>
</SCRIPT>

***************************** use******************************

Introduccin Aunque el mtodo predeterminado para implementar cdigo en el lado del


servidor en Visual Studio .NET es utilizar una pgina de cdigo subyacente,
podemos encontrar pginas que utilizan cdigo en lnea, concretamente pginas
ASP.
Cdigo en lnea Cuando se utiliza cdigo en lnea en una pgina Web, el HTML y el cdigo se
encuentran en secciones distintas de un nico archivo .aspx. Esta separacin se
produce para ofrecer claridad en la lectura de la pgina; la funcionalidad, el
cdigo y HTML pueden coexistir en cualquier lugar de la pgina.
El siguiente cdigo es un ejemplo de cdigo en lnea:
Visual Basic .NET <HTML>
<asp:Button id="btn" runat="server"/>
...
</HTML>

<SCRIPT Language="vb" runat="server">


Sub btn_Click(s As Object, e As EventArgs) _
Handles btn.Click
...
End Sub
</SCRIPT>

C#
Agregar cdigo a un formulario Web Form con Microsoft ASP.NET 5

<HTML>
<asp:Button id="btn" runat="server" />
...
</HTML>

<SCRIPT Language="c#" runat="server">


private void btn_Click(object sender, System.EventArgs e)
{
. . .
}
</SCRIPT>
6 Agregar cdigo a un formulario Web Form con Microsoft ASP.NET

Qu son las pginas de cdigo subyacente?

Separacin de cdigo y contenido


z Los desarrolladores y los diseadores de la interfaz de
usuario pueden trabajar independientemente
Un archivo Archivos distintos

cdigo
<tags> cdigo
<tags>

Form1.aspx Form1.aspx Form1.aspx.vb


o Form1.aspx.cs

***************************** use******************************

Introduccin El mtodo predeterminado para implementar cdigo en el lado del servidor en


Visual Studio .NET es utilizar pginas de cdigo subyacente. Cuando utilizamos
pginas de cdigo subyacente, la lgica de programacin se encuentra en un
archivo distinto de los elementos visuales de la pgina. Separar la lgica del
diseo permite a los desarrolladores trabajar en la pgina de cdigo subyacente
mientras los diseadores de la interfaz de usuario (IU) trabajan en la pgina
ASP.NET.
Poner nombre a las Las pginas de cdigo subyacente contienen toda la lgica de programacin para
pginas de cdigo una sola pgina Web. Cada pgina de una aplicacin Web tiene su propia pgina
subyacente de cdigo subyacente. De forma predeterminada, una pgina de cdigo
subyacente tiene el mismo nombre que la pgina Web a la que est asociada; sin
embargo, la pgina de cdigo subyacente tambin tiene una extensin .aspx.vb o
.aspx.cs, dependiendo del lenguaje utilizado en la pgina de cdigo subyacente.
Por ejemplo la pgina Web Form1.aspx tendr una pgina de cdigo subyacente
Microsoft Visual Basic .NET denominada Form1.aspx.vb o una pgina de
cdigo subyacente C# denominada Form1.aspx.cs.

Nota Una pgina de cdigo subyacente nicamente puede contener cdigo en un


slo lenguaje. No podemos mezclar Visual Basic .NET y C# en una misma
pgina de cdigo subyacente.
Agregar cdigo a un formulario Web Form con Microsoft ASP.NET 7

Cmo funcionan las pginas de cdigo subyacente

Crean archivos distintos para la interfaz de usuario y la


lgica de la interfaz
Utilizan la directiva @ Page para enlazar los dos archivos
Pre-compilacin o compilacin JIT
Page1.aspx.cs
Page1.aspx
<% @ Page Language="c#" public class WebForm1
{
Inherits="Project.WebForm1" private void cmd1_Click()
Codebehind="Page1.aspx.cs" {
Src = "Page1.aspx.cs" %>
}
}

***************************** use******************************

Introduccin Para que las pginas de cdigo subyacente funcionen, cada pgina .aspx debe
estar asociada a una pgina de cdigo subyacente, y esa pgina de cdigo
subyacente debe estar compilada antes de que la informacin se enve de vuelta a
un navegador cliente que la solicite.
Aunque cada pgina Web Form est formada por dos archivos distintos (la
pgina .aspx y la pgina de cdigo subyacente), ambos archivos forman una
nica unidad cuando se ejecuta la aplicacin Web. La pgina de cdigo
subyacente puede ser precompilada por Visual Studio .NET cuando generamos el
proyecto de aplicacin Web, o puede ser compilada just-in-time (JIT) la primera
vez que un usuario accede a la pgina.
Enlazar los dos archivos La pgina .aspx debe estar asociada a la pgina de cdigo subyacente.
Visual Studio .NET agrega los tres atributos siguientes a la directiva @ Page de
la pgina .aspx para conseguir esta asociacin:
Codebehind. Es el atributo que Visual Studio .NET utiliza internamente para
asociar los archivos.
Src. Este atributo es el nombre de la pgina de cdigo subyacente, y se utiliza
si la aplicacin Web no est precompilada.
Inherits. Este atributo permite a la pgina .aspx heredar clases y objetos de la
pgina de cdigo subyacente.

Nota El atributo Inherits es sensible a maysculas.


8 Agregar cdigo a un formulario Web Form con Microsoft ASP.NET

El siguiente cdigo muestra un ejemplo de directiva @ Page para un archivo


denominado Page1.aspx:
Visual Basic .NET <%@ Page Language="vb" Inherits="Project.WebForm1"
Codebehind="Page1.aspx.vb" Src="Page1.aspx.vb" %>

C# <%@ Page Language="c#" Inherits="Project.WebForm1"


Codebehind="Page1.aspx.cs" Src="Page1.aspx.cs" %>

Compilacin JIT Cuando una pgina est compilada JIT, las pginas de cdigo subyacente se
compilan la primera vez que un cliente solicita la pgina .aspx. Tras la primera
peticin, las siguientes utilizan el archivo compilado existente. Por tanto, la
primera peticin de una pgina dura ms, pero las siguientes peticiones son ms
rpidas.
Si se desea utilizar la compilacin JIT para una pgina, debera utilizarse el
atributo Src de la directiva @ Page.

Nota La compilacin JIT mantendr el tamao del proyecto pequeo y permitir


actualizaciones de cdigo sin recompilar todo el sitio.

Ejecucin Cuando un usuario solicita la pgina .aspx, el archivo DLL procesa la peticin
entrante y responde creando el cdigo HTML y el scripting adecuados y
devolvindolos al navegador solicitante.
Precompilacin Si omitimos el atributo Src de la directiva @ Page en un archivo .aspx, la pgina
se precompila cuando generamos la aplicacin en Visual Studio .NET. De modo
predeterminado, Visual Studio .NET no agrega el atributo Src; por ello, todas las
pginas de cdigo subyacente en los formularios Web Forms de un proyecto se
compilan cuando se genera el proyecto. Este proceso ahorra un tiempo
considerable de proceso en el servidor Web.
Precompilar pginas de cdigo subyacente tambin simplifica la implantacin del
sitio Web ya que no es necesario implantar las pginas de cdigo subyacente
junto con las pginas .aspx.

Nota Para ms informacin sobre la implementacin de sitios Web, consultar el


Mdulo Configurar, optimizar e implementar una aplicacin Web con Microsoft
ASP.NET.
Agregar cdigo a un formulario Web Form con Microsoft ASP.NET 9

Leccin: agregar procedimientos de evento a controles de


servidor Web
Qu son los procedimientos de evento?
Demostracin: uso de eventos
Procedimientos de evento en el lado del cliente
Procedimientos de evento en el lado del servidor
Multimedia: eventos en el lado del cliente y en el lado
del servidor
Crear procedimientos de evento
Prctica dirigida por el profesor: crear un
procedimiento de evento
Interactuar con controles en procedimientos de evento

***************************** use******************************

Introduccin En esta leccin, estudiaremos los procedimientos de evento y cmo agregarlos a


los controles de servidor Web. Aprenderemos a distinguir entre los dos tipos de
eventos (en el lado del servidor y en el lado del cliente) y a saber cundo resulta
apropiado utilizar cada uno.
Objetivos de la leccin En esta leccin, aprenderemos a:
Identificar procedimientos de evento.
Distinguir entre eventos en el lado del servidor y en el lado del cliente.
Crear un procedimiento de evento en el lado del servidor.
Interactuar con controles en procedimientos de evento.
10 Agregar cdigo a un formulario Web Form con Microsoft ASP.NET

Qu son los procedimientos de evento?

Acciones en respuesta a la interaccin de un usuario


con los controles de la pgina

***************************** use******************************

Introduccin Los formularios Web Forms dinmicos e interactivos normalmente reaccionan a


la entrada de datos del usuario. Los procedimientos de evento se utilizan para
gestionar las interacciones de los usuarios en un formulario Web Form.
Definicin Cuando un usuario interacta con un formulario Web Form, se genera un evento.
Diseamos nuestra aplicacin Web para realizar una determinada tarea cuando se
genera el evento. Un procedimiento de evento es la accin que ocurre en
respuesta al evento generado.
Ejemplo de un Muchos formularios Web Forms permiten al usuario introducir informacin y
procedimiento de hacer clic en un botn Enviar. Se genera un evento cuando el usuario hace clic
evento en el botn Enviar. Por ejemplo, un procedimiento de evento podra ser enviar la
informacin del usuario a una base de datos Microsoft SQL Server.
Agregar cdigo a un formulario Web Form con Microsoft ASP.NET 11

Demostracin: uso de eventos

Abrir una pgina ASP.NET con controles


y procedimientos de evento en el lado del
cliente y en el lado del servidor
Hacer clic en los controles para visualizar
la ejecucin de los eventos en el lado del
cliente y en el lado del servidor
En el explorador, visualizar el cdigo
fuente de la pgina
En el editor, visualizar el cdigo del
procedimiento de evento

***************************** use******************************

Introduccin Esta demostracin puede realizarse utilizando un proyecto Visual Basic .NET o
Microsoft Visual C#. En esta demostracin, veremos cmo se ejecutan los
procedimientos de evento en el lado del cliente y en el lado del servidor en un
sitio Web.

Ejecutar la demostracin
1. En Visual Studio .NET, abrir la pgina eventorderstart.aspx en el proyecto
Demo04VB o Demo04CS que se pueden encontrar dentro del fichero
demos04.zip.
2. Visualizar la pgina en el navegador. No es necesario generar antes el
proyecto.
3. Hacer clic en los controles de la pgina. Cada control tiene un procedimiento
de evento en el lado del cliente que enva una cadena cuando se ejecuta.
4. Hacer clic en Save. Esto enva el formulario y har que se ejecuten todos los
procedimientos de evento en el lado del servidor.
5. En el navegador, visualizar el cdigo fuente de la pgina. Slo est visible el
cdigo para los procedimientos de evento en el lado del cliente.
6. Cerrar la vista de cdigo fuente de la pgina.
7. En Visual Studio .NET, abrir la pgina en la vista HTML. Hay cdigo tanto
para procedimientos de evento en el lado del cliente como en el lado del
servidor.
12 Agregar cdigo a un formulario Web Form con Microsoft ASP.NET

Procedimientos de evento en el lado del cliente

Normalmente, se utilizan nicamente con


controles HTML
Interpretado por el navegador y se ejecuta en el
cliente
No tiene acceso a los recursos del servidor
Utiliza <SCRIPT language="lenguaje">

Internet Pginas
.HTM

***************************** use******************************

Introduccin Existen dos tipos de procedimientos de evento: en el lado del cliente y en el lado
del servidor. Ambos tienen ventajas e inconvenientes.
Procedimientos de Los procedimientos de evento en el lado del cliente son eventos gestionados en el
evento en el lado del equipo que solicita el formulario Web Form (el cliente). Cuando se genera un
cliente evento, no se enva ninguna informacin al servidor. En lugar de ello, el
navegador del cliente interpreta el cdigo y tambin realiza la accin.
Los procedimientos de evento en el lado del cliente nicamente pueden utilizarse
con controles HTML. Adems, los procedimientos de evento en el lado del
cliente nunca tienen acceso a los recursos del servidor. Por ejemplo, no podemos
utilizar scripts en el lado del cliente para acceder a una base de datos SQL Server.
Usos de los Los procedimientos de evento en el lado del cliente resultan tiles para eventos
procedimientos de que deseamos que ocurran inmediatamente porque no requieren un viaje de ida y
evento en el lado del vuelta al servidor Web (envo de informacin al servidor Web y espera de una
cliente respuesta). Por ejemplo, es posible validar informacin en un cuadro de texto
antes de enviarla al servidor. Podemos utilizar scripts en el lado del cliente para
validar la informacin rpida y eficazmente antes de enviar la informacin del
usuario al servidor Web para continuar su proceso.
Especificar Especificamos un procedimiento de evento en el lado del cliente creando un
procedimientos de bloque <SCRIPT> en la pgina Web, como muestra el siguiente cdigo:
evento en el lado del
cliente <SCRIPT language="javascript">
Agregar cdigo a un formulario Web Form con Microsoft ASP.NET 13

Procedimientos de evento en el lado del servidor

Utilizados tanto con controles de servidor Web como


HTML
El cdigo se compila y ejecuta en el servidor
Tienen acceso a recursos del servidor
Utilizan <SCRIPT language="vb" runat="server"> o
<SCRIPT language=cs" runat="server">
.Pginas
Internet .ASPX

***************************** use******************************

Introduccin A diferencia de los procedimientos de evento en el lado del cliente, los


procedimientos de evento en el lado del servidor requieren el envo de
informacin al servidor Web para su proceso. Aunque el uso de procedimientos
de evento en el lado del servidor supone un coste en tiempo, son mucho ms
potentes que los procedimientos de evento en el lado del cliente.
Procedimientos de Los procedimientos de evento en el lado del servidor estn formados por cdigo
evento en el lado del compilado que reside en el servidor Web. Los procedimientos de evento en el
servidor lado del servidor pueden utilizarse para gestionar eventos que son generados
desde los controles de servidor Web y HTML. Los procedimientos de evento en
el lado del servidor tienen acceso a recursos del servidor que normalmente no
estn disponibles para los procedimientos de evento en el lado del cliente.
Para especificar un procedimiento de evento en el lado del servidor, se utiliza el
atributo runat="server" en la etiqueta script, como muestra el siguiente cdigo:
Visual Basic .NET <SCRIPT language="vb" runat="server">

C# <SCRIPT language="c#" runat="server">

Soporte de eventos Debido a que los procedimientos de evento en el lado del servidor requieren un
viaje de ida y vuelta al servidor Web, existen un nmero limitado de tipos de
eventos de control soportados. Con los procedimientos de evento en el lado del
cliente, podemos incluir cdigo para procesar eventos asociados a botones de
ratn y eventos onChange. Mientras los procedimientos de evento en el lado del
servidor soportan eventos click y una versin especial del evento onChange, no
pueden soportar eventos que ocurren frecuentemente, como eventos asociados a
botones del ratn.
14 Agregar cdigo a un formulario Web Form con Microsoft ASP.NET

Multimedia: eventos en el lado del cliente y en el lado del servidor


del servidor

***************************** use******************************

Introduccin En esta animacin, veremos cmo los procedimientos de evento en el lado del
cliente y en el lado del servidor se procesan. Para iniciar la animacin abrir el
fichero media041.swf.
1. El cliente solicita una pgina ASP.NET del servidor Web.
2. El servidor devuelve al cliente una pgina que contiene HTML y scripts. La
pgina incluye un control de cuadro de texto y un botn Submit. La pgina
tambin contiene scripting en el lado del cliente que valida el contenido del
cuadro de texto.
3. El usuario introduce informacin no vlida en el cuadro de texto, y el script
en el lado del cliente genera un cuadro de mensaje.
4. Como no se ha enviado ninguna informacin al servidor, el proceso en el lado
del cliente reduce el trfico de red y el tiempo de respuesta.
5. El usuario corrige la informacin del cuadro de texto y hace clic en el botn
Submit.
6. La informacin se valida en el lado del cliente y se enva al servidor, donde
puede iniciarse el proceso en el lado del servidor.
7. El servidor repite la validacin y almacena la informacin del cuadro de texto
en una base de datos.
8. Debido a que el script en el lado del cliente no puede acceder a recursos del
servidor, el proceso en el lado del servidor ofrece una mayor flexibilidad al
trabajar con datos.
Agregar cdigo a un formulario Web Form con Microsoft ASP.NET 15

Crear procedimientos de evento

Visual Studio .NET declara variables y crea una plantilla


de procedimiento de evento
Protected
Protected WithEvents
WithEvents cmd1
cmd1 As
As System.Web.UI.WebControls.Button
System.Web.UI.WebControls.Button
Private
Private Sub
Sub cmd1_Click(ByVal
cmd1_Click(ByVal ss As As System.Object,
System.Object, __
ByVal
ByVal ee As
As System.EventArgs)
System.EventArgs) Handles
Handles cmd1.Click
cmd1.Click

protected
protected System.Web.UI.WebControls.Button
System.Web.UI.WebControls.Button cmd1;cmd1;
private
private void
void InitializeComponent()
InitializeComponent()
{{
this.cmd1.Click
this.cmd1.Click +=+= new
new System.EventHandler(this.cmd1_Click);
System.EventHandler(this.cmd1_Click);
this.Load
this.Load +=
+= new
new System.EventHandler(this.Page_Load);
System.EventHandler(this.Page_Load);
}}
private
private void
void cmd1_Click(object
cmd1_Click(object s, s, System.EventArgs
System.EventArgs e)
e)

El uso de la palabra clave Handles agrega a un evento


varios procedimientos de evento
***************************** use******************************

Introduccin Crear un procedimiento de evento en el lado del servidor en Visual Studio .NET
implica dos pasos. En el primer paso, creamos el control que genera el evento en
el formulario Web Form. En el segundo, proporcionamos el cdigo necesario en
la pgina de cdigo subyacente para procesar el evento.
Crear un procedimiento Cuando hacemos doble clic en un control en Visual Studio .NET, Visual Studio
de evento en el lado del .NET declara una variable (con el mismo nombre que el atributo id del control) y
servidor crea una plantilla para el procedimiento de evento. Cuando utilizamos
Visual Basic .NET, Visual Studio .NET tambin agrega la palabra clave
Handles, que adjunta el procedimiento de evento al control. La palabra clave
Handles permite crear mltiples procedimientos de evento a un nico evento.

Nota De modo predeterminado, Visual Studio .NET utiliza la palabra clave


Handles debido a que el atributo AutoEventWireup de la directiva @ Page est
establecido a false. Si este atributo est establecido a true, los controles se
enlazan a procedimientos de evento utilizando nombres especficos, que es el
modo en que se gestionan los procedimientos de evento en Visual Basic 6.0.

El siguiente cdigo HTML muestra un formulario Web Form que tiene un nico
botn con un atributo id igual a cmd1; el evento click del botn se gestionar en
el servidor:
<form id="form1" method="post" runat="server">
<asp:Button id="cmd1" runat="server"/>
</form>
16 Agregar cdigo a un formulario Web Form con Microsoft ASP.NET

El siguiente cdigo Visual Basic .NET muestra la declaracin de variables


necesaria en la pgina de cdigo subyacente.
Protected WithEvents cmd1 As _
System.Web.UI.WebControls.Button

En el cdigo anterior, el nombre de la variable debe coincidir con el id del


control Web, y debemos utilizar la palabra clave WithEvents para indicar que
este control hace que se ejecuten los procedimientos de evento.
En el siguiente cdigo Visual Basic .NET, que muestra el procedimiento de
evento para el evento Click, la palabra clave Handles indica que el
procedimiento de evento se ejecuta en respuesta al evento Click del control
cmd1:
Private Sub cmd1_Click(ByVal s As System.Object, _
ByVal e As System.EventArgs) _
Handles cmd1.Click
...
End Sub

Argumentos del evento Todos los eventos pasan dos argumentos al procedimiento de evento: el remitente
del evento y una instancia de la clase que guarda los datos del evento.
Normalmente, este ltimo es del tipo EventArgs, y a menudo no contiene
ninguna informacin adicional; sin embargo, para algunos controles, es de un
tipo que es especfico para ese control.
Por ejemplo, para un control Web ImageButton, el segundo argumento es de
tipo ImageClickEventArgs, que incluye informacin sobre las coordenadas
donde el usuario ha hecho clic. El siguiente procedimiento de evento enva las
coordenadas de la ubicacin donde ocurre un clic en un control Label:
Sub img_OnClick(ByVal s As System.Object, _
ByVal e As System.Web.UI.ImageClickEventArgs) _
Handles ImageButton1.Click
Label1.Text = e.X & ", " & e.Y
End Sub

Crear un procedimiento La forma de crear un procedimiento de evento ASP.NET en C# es ligeramente


de evento en el lado del distinta de la de Visual Basic .NET. C# no soporta la palabra clave Handles. En
servidor in C# lugar de ello, en C#, agregamos el procedimiento de evento a la propiedad de
evento del control.
Por ejemplo, el siguiente es el mismo formulario HTML del cdigo anterior:
<FORM ID="Form1" runat="server">
<asp:Button id="cmd1" runat="server" />
</FORM>
Agregar cdigo a un formulario Web Form con Microsoft ASP.NET 17

En la pgina de cdigo subyacente, se crea una variable con el mismo nombre


que el control. En el mtodo InitializeComponent, agregamos el procedimiento
de evento a la propiedad del evento del control. La propiedad Click de la variable
cmd1 se gestiona como sigue:
public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Button cmd1;

private void InitializeComponent()


{
this.cmd1.Click += new
System.EventHandler(this.cmd1_Click);
this.Load += new System.EventHandler(this.Page_Load);
}

private void cmd1_Click(object sender, System.EventArgs e)


{
...
}
}
18 Agregar cdigo a un formulario Web Form con Microsoft ASP.NET

Prctica dirigida por el profesor: crear un procedimiento de evento

Crear un formulario Web Form utilizando


Visual Studio .NET
Agregar controles al formulario Web
Form
Hacer doble clic en uno o ms controles
para agregar procedimientos de evento
Generar y examinar

***************************** use******************************

Introduccin Esta prctica dirigida por el instructor puede realizarse utilizando archivos de
Visual Basic .NET o archivos de Visual C#.
En esta prctica, veremos cmo agregar un procedimiento de evento a un control
Web utilizando Visual Studio .NET.

Ejecutar la prctica
1. En Visual Studio .NET, agregar un nuevo formulario Web Form denominado
events.aspx al proyecto Mod05VB o Mod05CS, en la solucin 2310Demos.
2. Abrir la pgina events.aspx.
3. Ubicar un control Web Form Button y uno Label en el formulario.
Se asigna a los controles un ID predeterminado que podemos ver y modificar
en la ventana Propiedades.
4. En la vista Diseo, hacer doble clic en el control Button para abrir la pgina
de cdigo subyacente y crear un procedimiento de evento Click.
En la pgina de cdigo subyacente, ver la variable declarada y la plantilla de
procedimiento creada por Visual Studio .NET.
5. Introducir el siguiente cdigo en el procedimiento de evento Click:
Visual Basic .NET Label1.Text = "You clicked the button"

C# Label1.Text = "You clicked the button";

Visual Basic .NET 6. Observar la palabra clave Handles en el procedimiento de evento


Button1_Click.
C# C# no soporta la palabra clave Handles, en lugar de ello C# enlaza un
procedimiento a un evento en el procedimiento InitializeComponent. Para
ver el enlace de Button1_Click, expandir la seccin Web Form Designer
generated code en la ventana de cdigo. Encontrar el procedimiento
InitializeComponent y observar el enlace del controlador de eventos.
Agregar cdigo a un formulario Web Form con Microsoft ASP.NET 19

7. En el Explorador de soluciones, hacer clic con el botn derecho en la pgina


events.aspx y clic en Ver en el explorador.
8. En el navegador, hacer clic en el formulario.
El texto de la etiqueta cambia.
9. En el navegador, visualizar el cdigo fuente de la pgina para mostrar que no
hay cdigo en el lado del cliente. Slo hay cdigo en el lado del servidor.
10. Cerrar la vista de cdigo fuente de la pgina.
11. En la vista Diseo, cambiar la propiedad ID del control Button por
cmdSubmit.
Visual Basic .NET 12. En la pgina de cdigo subyacente, observar que la palabra clave Handles se
ha eliminado del procedimiento de evento Button1_Click.
C# En la pgina de cdigo subyacente, observar que el enlace de evento en
InitializeComponent ha cambiado al nombre del nuevo botn.
Visual Basic .NET 13. Agregar la palabra clave Handles al procedimiento de evento Button1_Click
para ejecutar el procedimiento del evento cmdSubmit.Button, como muestra
en el siguiente cdigo:
Private Sub Button1_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles cmdSubmit.Click

C# La palabra clave Handles no est soportada en C#. En lugar de ello, el


procedimiento est enlazado al evento en el procedimiento
InitializeComponent. Visual Studio agrega el enlace correcto, como se
muestra en el paso 12.
14. Generar y examinar la pgina.
El procedimiento de evento Click se sigue activando con el nuevo nombre del
control.
20 Agregar cdigo a un formulario Web Form con Microsoft ASP.NET

Interactuar con controles en procedimientos de evento

Leer las propiedades de los controles de servidor Web

strGreeting
strGreeting == "Hello
"Hello "" && txtName.Text
txtName.Text

strGreeting
strGreeting == "Hello
"Hello "" ++ txtName.Text;
txtName.Text;

Respuestas de salida a otros controles de servidor Web

lblGreeting.Text
lblGreeting.Text == "new
"new text"
text"

lblGreeting.Text
lblGreeting.Text == "new
"new text";
text";

***************************** use******************************

Introduccin En muchas aplicaciones Web, necesitamos leer y escribir a controles de un


formulario. Podemos hacerlo dentro de los procedimientos de evento en el lado
del servidor.
Leer las propiedades de En un procedimiento de evento en el lado del servidor, podemos leer informacin
un control de servidor de un control de servidor. Por ejemplo, si tenemos el siguiente formulario con un
control Textbox y un control Button:
<FORM id="Form1" runat="server">
<asp:TextBox id="txtName" runat="server" />
<asp:Button id="cmd1" runat="server" />
</FORM>

Cuando el usuario hace clic en el botn, podemos leer el texto que el usuario ha
escrito en el cuadro de texto. El siguiente cdigo asigna la variable de cadena
strGreeting a una concatenacin del texto Hello y el texto del cuadro de texto
txtName:
Visual Basic .NET Dim strGreeting As String = "Hello " & txtName.Text

C# string strGreeting = "Hello " + txtName.Text;

Por ejemplo, si un usuario ha escrito "Shannon" en el cuadro de texto txtName,


la variable strGreeting contendr la cadena de texto "Hello Shannon".
Agregar cdigo a un formulario Web Form con Microsoft ASP.NET 21

Envo de informacin de Podemos enviar informacin directamente a un control de servidor Web


un control de servidor utilizando las propiedades del control. Por ejemplo, supongamos que tenemos un
Web control de servidor Web denominado Label en la pgina ASP.NET, como sigue:
<asp:Label id="lblGreeting"
runat="server">Greeting</asp:Label>

El siguiente cdigo en el lado del servidor asigna la propiedad Text del control
de servidor Web lblGreeting a una cadena de texto:
Visual Basic .NET lblGreeting.Text = "new text"

C# lblGreeting.Text = "new text";

Sugerencia En ASP, utilizamos la coleccin Request.Forms para leer las


propiedades de controles en un formulario, y utilizamos Response.Write para
enviar texto. Aunque estos mtodos funcionan con ASP.NET, no son la mejor
eleccin. En lugar de ello, podemos utilizar etiquetas de control de servidor y
spans.
22 Agregar cdigo a un formulario Web Form con Microsoft ASP.NET

Leccin: uso de los eventos de pgina

Ciclo de vida de un evento de pgina


Multimedia: el proceso PostBack
Demostracin: gestionar eventos
Prctica: ordenar los eventos
Gestin de los eventos Page.IsPostback
Vnculo de dos controles
Demostracin: vincular controles

***************************** use******************************

Introduccin En esta leccin, estudiaremos cmo utilizar los eventos de pgina. En primer
lugar, estudiaremos el ciclo de vida de los eventos de pgina. A continuacin,
veremos cmo funciona el proceso de postback, y estudiaremos el orden de los
eventos. Tambin veremos cmo trabajar con el evento Page_Load. La leccin
finaliza con el vnculo de controles.
Objetivos de la leccin En esta leccin, aprenderemos a:
Describir el ciclo de vida de los eventos de pgina.
Utilizar formularios postback.
Enlazar un control con otro control.
Agregar cdigo a un formulario Web Form con Microsoft ASP.NET 23

Ciclo de vida de los eventos de pgina

Page_Init
Page_Init

Eventos control Page_Load


Page_Load
Eventos de cambio Textbox1_Changed
Textbox1_Changed
Eventos de acci
accin Button1_Click
Button1_Click

Page_Unload
Page_Unload

La pgina se gestiona

***************************** use******************************

Introduccin Cuando se solicita una pgina ASP.NET, se producen una serie de eventos de
pgina. Estos eventos siempre ocurren en el mismo orden, denominado ciclo de
vida de los eventos de pgina.
Ciclo de vida de los El ciclo de vida de los eventos de pgina consta de los siguientes eventos de
eventos de pgina pgina, que ocurren en el siguiente orden:
1. Page_Init. Este evento de pgina inicializa la pgina creando e inicializando
los controles de servidor Web de la pgina.
2. Page_Load. Este evento de pgina se ejecuta cada vez que se solicita la
pgina.
3. Eventos Control. Este evento de pgina incluye eventos de cambio (por
ejemplo, Textbox1_Changed) y eventos de accin (por ejemplo,
Button1_Click).
4. Page_Unload. Este evento de pgina ocurre cuando la pgina se cierra o
cuando el control pasa a otra pgina.

El final del ciclo de vida de los eventos de pgina incluye el borrado de la pgina
en memoria.
La mayora de eventos de control no ocurren hasta que el formulario Web Form
se enve de nuevo al servidor. Por ejemplo, los eventos Change se gestionan en
orden aleatorio en el servidor despus de que el formulario haya sido enviado. En
cambio, los eventos Click pueden hacer que el formulario sea enviado al servidor
inmediatamente.
Por ejemplo, si un usuario introduce texto en varios controles de un formulario y
hace clic en un botn Submit, los eventos Change de los controles de texto no se
procesarn hasta que el evento Click enve el formulario al servidor.

Nota Para ms informacin sobre los eventos de pgina, ver Pgina (miembros
24 Agregar cdigo a un formulario Web Form con Microsoft ASP.NET

de) y Ciclo de vida de ejecucin de un control en la documentacin en lnea


de Visual Studio .NET.
Postbacks En ASP.NET, los formularios estn diseados para enviar informacin de retorno
a la pgina ASP.NET remitente para su procesamiento. Este proceso se denomina
postback. Los postbacks pueden producirse por determinadas acciones del
usuario. De modo predeterminado, nicamente los eventos click Button hacen
que el formulario sea enviado de nuevo al servidor. Sin embargo, si establecemos
la propiedad AutoPostBack de un control a true, forzamos un postback para los
eventos de ese control.
Por ejemplo, el siguiente cdigo HTML es un ejemplo del uso de AutoPostBack
en un cuadro de lista. Cada vez que el usuario modifica el valor del cuadro de
lista, el evento SelectedIndexChanged se invoca en el servidor y actualiza el
cuadro de texto:
<asp:DropDownList id="ListBox1" runat="server"
AutoPostBack="True">
<asp:ListItem>First Choice</asp:ListItem>
<asp:ListItem>Second Choice</asp:ListItem>
</asp:DropDownList>

El cdigo de la pgina de cdigo subyacente es como sigue:


Visual Basic .NET Private Sub ListBox1_SelectedIndexChanged _
(ByVal s As System.Object, ByVal e As System.EventArgs) _
Handles ListBox1.SelectedIndexChanged
TextBox1.Text=ListBox1.SelectedItem.Value
End Sub

C# private void ListBox1_SelectedIndexChanged


(object sender, System.EventArgs e)
{
TextBox1.Text = ListBox1.SelectedItem.Value;
}
Agregar cdigo a un formulario Web Form con Microsoft ASP.NET 25

Multimedia: el proceso de postback

***************************** use******************************

Introduccin En esta animacin, veremos cmo funcionan los formularios en ASP.NET y


cmo puede codificarse el evento Page_Load para que nicamente se ejecute la
primera vez que se muestra una pgina, y cmo pueden utilizarse los controles
para que enven informacin inmediatamente al servidor. Para iniciar la
animacin abrir el fichero media042.swf
La primera vez que un usuario solicita una pgina del servidor, la verificacin
de Page.IsPostBack del evento Page_Load se realiza satisfactoriamente y se
ejecuta el cdigo del bloque. En este ejemplo, el cdigo rellena un cuadro de
lista.
El servidor devuelve la pgina al usuario. En este ejemplo, la pgina tiene un
control ListBox, un control Label en blanco, y un botn Submit.
Cuando el usuario cambia la seleccin en el cuadro de lista y hace clic en el
botn Submit, la informacin se enva de retorno al servidor.
El servidor puede determinar que sta es una pgina que ha sido enviada de
retorno por s misma, y por ello, la verificacin de Page.IsPostBack del
evento Page_Load falla y el cdigo del bloque no se ejecuta.
En lugar de ello, se ejecutan los procedimientos de evento de los controles del
formulario (el cuadro de lista y el botn) y, en este escenario, el
procedimiento de evento del cuadro de lista cambia la etiqueta para reflejar la
nueva seleccin del cuadro de lista.
A continuacin, el servidor devuelve la informacin actualizada al cliente. El
usuario ve la misma pgina, pero la etiqueta ha cambiado para reflejar la
seleccin del cuadro de lista.
Si deseamos que el nuevo valor del cuadro de lista se enve al servidor
inmediatamente, y no esperar a que el usuario haga clic en el botn Submit,
podemos establecer la propiedad AutoPostBack del control de cuadro de lista
a True.
Con la propiedad AutoPostBack establecida a True, la informacin se enva
al servidor en cuanto el usuario cambia la seleccin en el cuadro de lista.
El servidor actualiza la etiqueta para reflejar el cambio, y enva la
informacin actualizada de retorno al cliente.
26 Agregar cdigo a un formulario Web Form con Microsoft ASP.NET

Demostracin: Gestionar eventos

***************************** use******************************

Introduccin Esta demostracin puede realizarse utilizando un proyecto Visual Basic .NET o
un proyecto Visual C#.
En esta demostracin, veremos cmo los controles HTML y los controles de
servidor Web pueden soportar eventos tanto en el lado del cliente como en el lado
del servidor.
El cdigo completo para esta demostracin se encuentra en la pgina:
Visual Basic .NET Demo04VB\eventorderFinal.aspx.
C# Demo04CS\eventorderFinal.aspx.
Estas pginas y sus correspondientes proyectos se pueden encontrar dentro del
fichero demos04.zip.
Agregar cdigo a un formulario Web Form con Microsoft ASP.NET 27

Ejecutar la demostracin
1. En Visual Studio .NET, visualizar la pgina eventorderstart.aspx del proyecto
Demo04VB o Demo04CS en el navegador.
Escribir un nombre en el campo Name, hacer clic en un valor en el cuadro de
lista Profession, seleccionar la casilla de verificacin y hacer clic en Save.
La pgina tiene procedimientos de evento en el lado del cliente y en el lado
del servidor para el cuadro de texto, el cuadro de lista, la casilla de
verificacin, el botn y la pgina.
2. En Visual Studio .NET, editar la pgina en la vista HTML y cambiar la casilla
de verificacin a un control de servidor Web, agregando un atributo Text,
como muestra el siguiente cdigo:
<asp:checkbox onclick="checkClick()"
onserverclick="checkServerClick"
onserverchange="checkServerChange"
runat="server"
id="Checkbox1"
Text="Certified Professional"/>

Nota Aunque el verificador de sintaxis no reconoce los atributos onclick,


onserverclick y onserverchange, podemos mantenerlos en el cdigo.

3. Visualizar de nuevo la pgina en el navegador.


Escribir un nombre en el campo Name, hacer clic en el cuadro de lista
Profession, seleccionar la casilla de verificacin y hacer clic en Save.
Ahora, la casilla de verificacin nicamente lanza eventos en el lado del
cliente.
Mientras el evento del cliente todava se ejecuta debido a que
<asp:checkbox> genera <input type=checkbox>, el evento del servidor no se
ejecuta porque el nombre del evento del servidor es oncheckedchange, no
onserverchange.
4. Modificar la pgina en la vista HTML y cambiar el nombre del atributo del
procedimiento de evento en el lado del servidor onserverchange por
oncheckedchange, como muestra el siguiente cdigo:
<asp:checkbox onclick="checkClick()"
onserverclick="checkServerClick"
oncheckedchanged="checkServerChange"
runat="server"
id="Checkbox1"
Text="Certified Professional"/>

5. Visualizar de nuevo la pgina en el navegador.


Introducir un nombre en el campo Name, hacer clic en un valor en el cuadro
de lista Profession, seleccionar la casilla de verificacin y hacer clic en Save.
Se ejecutan de nuevo los procedimientos de eventos cliente y servidor.
6. Modificar la pgina y establecer el atributo AutoPostBack a true para la
casilla de verificacin.
7. Visualizar de nuevo la pgina en el navegador.
28 Agregar cdigo a un formulario Web Form con Microsoft ASP.NET

Cuando seleccionamos la casilla de verificacin, obtenemos el evento en el


lado del cliente y, a continuacin, el evento en el lado del servidor.
8. En el navegador, visualizar el cdigo fuente de la pgina para ver cmo se
implementa AutoPostBack.
9. Cerrar la vista de cdigo fuente de la pgina.
10. Modificar la pgina y agregar una verificacin Page.IsPostBack para el
procedimiento de evento del evento Page_Load, como muestra el siguiente
cdigo:
Visual Basic .NET Sub Page_Load(s As Object, e As EventArgs)
If Not Page.IsPostback Then
Label1.Text &= "<P>Page_Load first time, "
Else
Label1.Text &= "<P>Page_Load postback, "
End If
End Sub

C# void Page_Load(object s, System.EventArgs e)


{
if (!Page.IsPostBack)
{
Label1.Text += "<P>Page_Load first time, ";
}
else
{
Label1.Text += "<P>Page_Load postback, ";
}
}

11. Visualizar de nuevo la pgina en el navegador.


Mientras el formulario se carga la primera vez, y se enva de retorno a
continuacin, veremos los distintos mensajes que se muestran.
Agregar cdigo a un formulario Web Form con Microsoft ASP.NET 29

Prctica: ordenar los eventos

Los estudiantes:
z En determinados escenarios, enumerarn
los eventos que ocurrirn y el orden en
que se producirn
Tiempo: 5 minutos

***************************** use******************************

Introduccin En esta prctica, predeciremos qu eventos se producirn en determinados


escenarios. Los eventos a incluir son: carga de una pgina, cambio en un control
y clic en un control.

Listar el orden de los eventos para los siguientes escenarios


Introducir el nombre (Name), edad (Age), hacer clic en Female y en Submit.

____________________________________________________________

____________________________________________________________
30 Agregar cdigo a un formulario Web Form con Microsoft ASP.NET

Seleccionar el estado y hacer clic en Submit.

_____________________________________________________________

_____________________________________________________________

Seleccionar la fecha de inicio, la fecha de finalizacin y hacer clic en Submit.

_____________________________________________________________

_____________________________________________________________
Agregar cdigo a un formulario Web Form con Microsoft ASP.NET 31

Gestin de los eventos Page.IsPostback

Page_Load se invoca en cada solicitud


z Utilizar Page.IsPostBack para ejecutar lgica condicional
private
private void
void Page_Load(object
Page_Load(object sender,
sender, System.EventArgs
System.EventArgs e)
e)
{{ ifif (!Page.IsPostBack)
(!Page.IsPostBack)
{{
//
// executes
executes only
only on
on initial
initial page
page load
load
}}
//this
//this code
code executes
executes on
on every
every request
request
}}
Private
Private Sub
Sub Page_Load(ByVal
Page_Load(ByVal ss As As System.Object,
System.Object, __
ByVal
ByVal ee As
As System.EventArgs)
System.EventArgs) Handles
Handles MyBase.Load
MyBase.Load
If
If Not
Not Page.IsPostBack
Page.IsPostBack ThenThen
'executes
'executes only
only on
on initial
initial page
page load
load
End
End If
If
'this
'this code
code executes
executes onon every
every request
request
End
End Sub
Sub
z Page.IsPostBack evita la recarga en cada postback
***************************** use******************************

Introduccin El evento Page_Load se ejecuta en cada peticin de una pgina, tanto si es la


primera peticin de la pgina o un postback.
Uso de Page.IsPostBack Debido a que el evento Page_Load se ejecuta con cada peticin de una pgina,
todo el cdigo del evento Page_Load se ejecutar cada vez que la pgina sea
solicitada. Sin embargo, cuando utilizamos eventos postback, es posible que no
deseemos que se ejecute nuevamente todo el cdigo. Si ste es el caso, podemos
utilizar la propiedad Page.IsPostBack para controlar qu cdigo se ejecuta
nicamente cuando la pgina se solicita por primera vez, como muestra el
siguiente cdigo:
Visual Basic .NET Private Sub Page_Load(ByVal s As System.Object, _
ByVal e As System.EventArgs) _
Handles MyBase.Load
If Not Page.IsPostBack Then
'ejecucin slo en la carga de pgina inicial
End If
'este cdigo se ejecuta en cada peticin
End Sub

C# private void Page_Load(object sender,


System.EventArgs e)
{
if (!Page.IsPostBack)
{
// ejecucin slo en la carga de pgina inicial
}
// este cdigo se ejecuta en cada peticin
}
32 Agregar cdigo a un formulario Web Form con Microsoft ASP.NET

Vnculo entre dos controles

Vincular un control con otro resulta til para obtener


valores de cuadros de lista o listas desplegables
<asp:DropDownList
<asp:DropDownList id="lstOccupation"
id="lstOccupation"
autoPostBack="True"
autoPostBack="True" runat="server"
runat="server" >>
You
You selected:
selected: <asp:Label
<asp:Label id="lblSelectedValue"
id="lblSelectedValue"
Text="<%#
Text="<%# lstOccupation.SelectedItem.Text
lstOccupation.SelectedItem.Text %>"
%>"
runat="server" />
runat="server" />
Enlace de datos
private
private void
void Page_Load(object
Page_Load(object sender,
sender, System.EventArgs
System.EventArgs e)
e)
{{
lblSelectedValue.DataBind();
lblSelectedValue.DataBind();
}}

Sub
Sub Page_Load(s
Page_Load(s As
As Object,
Object, ee As
As EventArgs)
EventArgs) Handles
Handles MyBase.Load
MyBase.Load
lblSelectedValue.DataBind()
lblSelectedValue.DataBind()
End
End Sub
Sub

***************************** use******************************

Introduccin Podemos vincular un control con el contenido de otro. Vincular es especialmente


til para mostrar valores de cuadros de lista o listas desplegables.
El siguiente cdigo de ejemplo muestra cmo vincular un control Label al
contenido de una lista desplegable. Utilizando las etiquetas de enlace <%# y %>,
establecemos el atributo Text del control Label para el elemento seleccionado
(SelectedItem) del cuadro de lista:
<asp:Label id="lblSelectedValue" runat="server"
Text="<%# lstOccupation.SelectedItem.Text %>" />

El siguiente ejemplo muestra el cdigo de un formulario Web Form que se utiliza


para vincular el control Label al cuadro de lista:
<form runat="server">
<asp:DropDownList id="lstOccupation"
autoPostBack="true" runat="server" >
<asp:ListItem>Program Manager</asp:ListItem>
<asp:ListItem>Tester</asp:ListItem>
<asp:ListItem>User Assistance</asp:ListItem>
</asp:DropDownList>
<p>You selected: <asp:Label id="lblSelectedValue"
Text="<%# lstOccupation.SelectedItem.Text %>"
runat="server" />
</p>
</form>

En el cdigo anterior, la propiedad AutoPostBack de la lista desplegable est


establecida a True, que provoca el postback automtico cuando cambia el valor
del cuadro de lista.
Agregar cdigo a un formulario Web Form con Microsoft ASP.NET 33

En el procedimiento de evento Page_Load, invocamos el mtodo DataBind de


toda la pgina o del control Label, como muestra el siguiente cdigo:
Visual Basic .NET Sub Page_Load (s As Object, e As EventArgs) _
Handles MyBase.Load
lblSelectedValue.DataBind()
End Sub

C# private void Page_Load(object sender, System.EventArgs e)


{
lblSelectedValue.DataBind();
}

Podemos utilizar Page.DataBind() si deseamos que la pgina enlace a datos en


todos los elementos de la pgina. El cdigo de ejemplo anterior enlaza a datos
nicamente el control Label, utilizando por tanto la sintaxis de
control.DataBind(), donde control es el atributo id del control Label.
34 Agregar cdigo a un formulario Web Form con Microsoft ASP.NET

Demostracin: vincular controles

Vincular un control Label a un control ListBox

***************************** use******************************

Introduccin Esta demostracin puede realizarse utilizando los archivos del proyecto Visual
Basic .NET o del proyecto Visual C#.
En esta demostracin, veremos cmo vincular controles.
El cdigo completo para esta demostracin se encuentra en la pgina:
Visual Basic .NET Demo04VB\binding.aspx.
C# Demo04CS\binding.aspx.
Estas pginas y sus correspondientes proyectos se pueden encontrar dentro del
fichero demos04.zip.

Ejecutar la demostracin
1. En Visual Studio .NET, editar la pgina beforebinding.aspx del proyecto
Mod05. Contiene un control DropDownList y un control Label. Visualizar el
cdigo HTML de la pgina. Observar el atributo AutoPostBack de
DropDownList.
2. Vincular el control Label al control DropDownList estableciendo su atributo
Text, como muestra el siguiente cdigo de ejemplo:
<asp:label id="lblListValue"
Text="<%# lstTitle.SelectedItem.Text %>" runat="server"/>
Agregar cdigo a un formulario Web Form con Microsoft ASP.NET 35

3. Crear un procedimiento de evento Page_Load e invocar


lblListValue.DataBind(), como muestra el siguiente cdigo de ejemplo:
Visual Basic .NET Private Sub Page_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
lblListValue.DataBind()
End Sub

C# private void Page_Load(object sender, System.EventArgs e)


{
lblListValue.DataBind();
}

4. Generar y examinar para visualizar la pgina en Microsoft Internet Explorer.


Cuando seleccionamos un elemento de DropDownList, el valor se refleja en
el control Label.

Você também pode gostar