53308605-ASP-NET-Framework-3-5
-
Upload
gabo-gabino -
Category
Documents
-
view
472 -
download
8
Transcript of 53308605-ASP-NET-Framework-3-5
AApliicaccocioon .
���
���
���
��
� la WEB
ǿǿǿΦƛƴŀŘŜŎƻΦŎƻƳ
Mne.NE
��
���
�
���
MCsET 3
� ��
���
�
CTS:Web3.5
�
�
�
:b5
www.depurando.com 1
���� � �� �������� ��� ������ � �� ���
����� � �� �������� ���
������ � �� ��� ������� ��
��������
El proceso de comunicación entre el navegador y el servidor a través del protocoloHTTP se puede resumir de la siguiente forma:
1. El explorador Web inicia una petición de un recurso a un servidor Web.2. HTTP se utiliza para enviar la solicitud GET al servidor Web.3. El servidor Web procesa la solicitud.4. El servidor Web envía una respuesta al navegador Web. Protocolo HTTP se utilizapara enviar la respuesta HTTP al navegador Web.5. El navegador web procesa la respuesta, y muestra la página Web.6. El usuario introduce los datos y realiza una acción, como hacer clic en un botón"Enviar" que hace que los datos se envían de vuelta al servidor Web.7. HTTP se utiliza para enviar los datos al servidor.8. El servidor Web procesa los datos.9. El servidor Web envía la respuesta al navegador Web.10. HTTP se utiliza para enviar la respuesta HTTP al navegador Web.11. El navegador web procese la respuesta, y muestra la página Web.
Servidor WebLos servidores Web son responsables de la recepción y tramitación de las solicitudes de losnavegadores a través de HTTP. Cada servidor Web maneja la solicitud y envía una respuesta alnavegador Web. Después de eso, el servidor Web cierra la conexión y todos los recursosliberados que habían participado en la solicitud. Todos los recursos fueron liberados debido aque el servidor Web debe ser capaz de manejar miles de solicitudes por minuto, y el originalson simples páginas web, páginas HTML estáticas.
Ningún dato se conserva de la respuesta entre el servidor web y el navegador y la conexión secierra después de enviar la respuesta
www.depurando.com 2
���� � �� �������� ��� ������ � �� ���
�
Además de servir archivos HTML, los servidores Web también pueden tramitar las solicitudesde páginas que contienen código que se ejecutará en el servidor.
También tienen la capacidad de almacenar datos a través de las solicitudes de páginas Web, loque significa que las páginas Web pueden estar conectadas para formar aplicaciones web.Debido a que muchos sitios Web están configurados como aplicaciones Webque contiene muchas páginas web, la idea de que un servidor Web entrega una sola páginapara el navegador Web y el cierre de la conexión es bastante anticuado.
El navegador WebEl navegador Web proporciona una plataforma independiente de la plataforma para mostrarpáginas web que fueron escritas con HTML. El explorador Web también tiene que mostrar lasimágenes y responder a los hipervínculos. Cada solicitud de una página web al servidorprovoca el refresco de la pantalla del navegador y su sustitución por la nueva página web.
Aunque el papel del explorador Web es simplemente presentar los datos y la recogida dedatos, existen nuevas tecnologías del lado del cliente que permiten a los navegadores webejecutar código, como JavaScript y AJAX , sin necesidad de refrescar la página web actual. Estastecnologías permiten una experiencia de usuario mucho mejor y más robusta que laexperiencia de usuario proporcionada por de los navegadores Web primitivos.
www.depurando.com 3
���� � �� �������� ��� ������ � �� ���
�HTTP, Protocolo de Transferencia de HipertextoHTTP en el protocolo de comunicación basado en texto que se utiliza para solicitar las páginasWeb del servidor Web y enviar las respuestas de vuelta al navegador Web. Mensajes HTTPsuelen ser mensajes enviados entre el servidor Web y el navegador Web usando el puerto 80,o, cuando se utiliza HTTP seguro (HTTPS), el puerto 443
Cuando una página Web se solicita, un texto como el siguiente comando se envía al servidorWeb
GET /default.aspx HTTP/1.1
Host: www.northwindtraders.com
La primera línea contiene el método, también conocido como un verbo o un comando,llamado GET, y es seguido por la URL, de la página Web para ser recuperado, que es seguidopor un indicador de la versión de HTTP para ser utilizado. El método indica qué acción sellevará a cabo por el servidor Web utilizando la dirección URL que sigue el método.
La segunda línea identifica el nombre del host que puede ser utilizado por el servidor Web si elservidor Web sirve más de un sitio Web. Este proceso se conoce como el uso de encabezadosde host para identificar el sitio Web que se encargará de la petición (s).
Método SignificadoGET Devuelve el recurso identificado en la URL pedida. HEAD Funciona como el GET, pero sin que el servidor
devuelva el cuerpo del mensaje. Es decir, sólo se devuelve la información de cabecera.
POST Indica al servidor que se prepare para recibir información del cliente. Suele usarse para enviar información desde formularios.
PUT Envía el recurso identificado en la URL desde el cliente hacia el servidor.
OPTIONS Pide información sobre las características de comunicación proporcionadas por el servidor. Le permite al cliente negociar los parámetros de comunicación.
TRACE Inicia un ciclo de mensajes de petición. Se usa para depuración y permite al cliente ver lo que el servidor
www.depurando.com 4
���� � �� �������� ��� ������ � �� ���
�recibe en el otro lado.
DELETE Solicita al servidor que borre el recurso identificado con el URL.
CONNECT Este método se reserva para uso con proxys. Permitirá que un proxy pueda dinámicamente convertirse en un túnel. Por ejemplo para comunicaciones con SSL.
El objeto Request representa la comunicación desde el navegador al Servidor solicitando unrecurso
El objeto Response representa la respuesta del servidor al navegador
HTTP/1.1 200 OK
Server: Microsoft�IIS/6.0
Content�Type: text/html
Content�Length: 38
<html><body>Hello, world.</body><html>
La primera línea contiene el protocolo, la versión del protocolo, un código de estado y la razón.
Los posibles códigos de estado se identifican con números de tres cifras y se clasifican en cincogrupos:
1. Números del estilo 1XX que representan mensajes de tipo informativo.
2. Números del estilo 2XX que indican que se completó satisfactoriamente la solicitud delcliente.
3. Números del estilo 3XX que indican que la solicitud fue redirigida.
4. Números del estilo 4XX que indican un error en la solicitud del cliente.
5. Números del estilo 5XX que indican un error en el lado del servidor.
Código Significado200 OK La solicitud del cliente fue satisfactoria y el
servidor ha devuelto la información solicitada. 204 No Content
El cuerpo de la respuesta no tiene contenido. Esto puede indicar, por ejemplo, un problema con un CGI que no devuelve datos.
301 Moved Permanently
El URI solicitado no está disponible en el servidor. Ha sido movido a otra ubicación. Las solicitudes futuras deberán hacerse a esa ubicación.
400 Bad Request
Hay un error de sintaxis en la solicitud del cliente. Por ejemplo mandar una solicitud indicando que el cliente soporta HTTP/1.1 y no
www.depurando.com 5
���� � �� �������� ��� ������ � �� ���
�enviar el encabezado de Host.
404 Not Found
Este es junto con el 200 OK, el código más habitual. Indica que el documento solicitado no está disponible, probablemente el URI haya sido mal escrito.
500 Internal Server Error
Este mensaje indica que algo ha ido mal en el servidor, casi siempre tiene que ver con problemas en programas CGI.
La segunda línea de la respuesta indica el tipo de servidor web. La tercera línea indica el tipode recurso que está siendo enviado al navegador web. Este indicador es el tipo MIME. En estecaso el fichero es un fichero de texto HTML estático. El tipo MIME es una designación de dospartes "tipo / subtipo", en el que la primera parte es el tipo de recurso y la segunda parte es elsubtipo de recursos
El registro de los tipos MIME los controla la IANA (Internet Asigned Numbers Authority) segúnlo especificado en el RFC 2048 [102], y en su sitio Web podemos obtener la lista completa yactualizada de los tipos registrados. Es importante el registro de tipos MIME, esto asegura quedos tipos de contenido distintos no acaban con el mismo nombre. El prefijo especial x� quedareservado para tipos experimentales (desplegados sin que haya terminado el proceso deregistro) o tipos de uso interno de organizaciones, por ejemplo:
image/x�fwf
El protocolo HTTP usa tipos MIME en sus encabezados, por ejemplo para:
� Informar al cliente el tipo de datos que está recibiendo del servidor. Esto se hace conel encabezado Content�Type . Por ejemplo, un navegador típico puede manejar losdatos de tres maneras distintas según el tipo MIME indicado en Content�Type :
1. Visualizar el documento, por ejemplo con tipos text/html .
2. Llamar a una aplicación externa, por ejemplo con tipos application/pdf .
3. O preguntarle al usuario que hacer ante un tipo que no se entiende, porejemplo image/x�fwf .
� Permitir la negociación de contenido. El cliente, en su petición incluye los tipos MIMEque acepta. Por ejemplo, un navegador puede soportar documentos de tipoapplication/zip , lo indicará con el encabezado HTTP:
� Allow: application/zip
� Encapsular una o más entidades dentro del cuerpo de mensaje, mediante los tiposMIMEmultipart (definidos en el RFC 2046 [100]). Quizá el ejemplo más conocido sea eltipo:
� multipart/form�data
www.depurando.com 6
���� � �� �������� ��� ������ � �� ���
!El tipo multipart/form�data ha sido definido en el RFC 1867 [96] para encapsular los datos deun formulario en su envío hacia el servidor mediante el método POST.
Tipo MIME Descripcióntext Información de texto. No se requiere
software especial para obtener el significadocompleto del texto. Un subtipo es plain, loque significa que el texto se puede leer sinnecesidad de software adicional. Otrossubtipos son HTML y XML, que indican el tipode archivo apropiado
image Los datos de la imagen. Requiere undispositivo de pantalla (por ejemplo, ungráfico o una impresora de gráficos) para verla información. Subtipos se definen dosformatos de imagen ampliamente utilizado,jpeg y gif
audio Datos de audio. Requiere un dispositivo desalida de audio (como un altavoz oauriculares) para "oír" los contenidos. Unprimer subtipo llamado basic se define deeste tipo.
video Datos de vídeo. Requiere la capacidad paramostrar imágenes en movimiento, por logeneralincluyendo hardware y softwareespecializados. Un primer subtipollamado MPEG se define para este tipo
application Otros tipos de datos, normalmente nointerpretados ya sea binaria o deinformación de datos para ser procesados poruna aplicación.
El registro contiene una lista de tipos MIME:
HKEY_CLASSES_ROOT\MIME\Database\Content Type.
Después de la línea con el tamaño del contenido, la respuesta envía el mensaje.
Enviando datos de formulario al ServidorLa etiqueta HTML <form> se puede utilizar para crear un formulario Web que recoge datos yenvía los datos al servidor Web. Un uso típico de etiqueta <form> es el siguiente
<form method="POST" action = "getCustomer.aspx" > Enter Customer ID: <input type="text" name="Id"> <input type="submit" value="Get Customer">
</form>
www.depurando.com 7
���� � �� �������� ��� ������ � �� ���
"Hay dos métodos HTTP que se pueden utilizar para enviar el formulario de datos de vuelta alservidor Web: GET y POST. Cuando el verbo GET se usa, el que contiene los datos deQueryString se adjunta a la dirección URL. La QueryString es una colección de estados clave =valor, separados por ampersand (&),los caracteres que se pueden pasar al servidor Webconcatenando un signo de interrogación (?) a la final de la URL y, a continuación,concatenando la QueryString como sigue
GET /getCustomer.aspx?Id=123&color=blue HTTP/1.1
Host: www.northwindtraders.com
Una de las ventajas de utilizar el verbo GET es que la QueryString URL es enviada completay puede ser vista y modificada en la barra de direcciones del explorador Web, según seanecesario.
Dependiendo de la situación, esto también podría ser una desventaja. La URL completa yQueryString son fáciles de guardar como una unidad.
Una desventaja es que el QueryString tiene un tamaño limitado por el navegador Web y elservidor Web que se utilice. Por ejemplo, cuando se utiliza Microsoft Internet Explorer e IIS, ellímite es de 1024 caracteres. Otra consideración es que puede que no desea permitir que unusuario escriba la dirección URL y QueryString directamente en la barra de direcciones sinnavegar por otras páginas Web en primer lugar.
Cuando se usa el método POST. Los datos se colocan en el cuerpo del mensaje como sigue:
POST /getCustomer.aspx HTTP/1.1
Host: www.northwindtraders.com Id=123&color=blue
Con el método POST se elimina la limitación de tamaño en los datos, se han probado con hasta10 MB. Este método no permite al usuario simplemente escribir los datos ya que estos datosse esconden en el cuerpo del mensaje. En la mayoría de escenarios es el método másconveniente de enviar datos al servidor.
Una página Web ASP.NET contiene una propiedad denominada IsPostBack que se utiliza paradeterminar si los datos se envían de vuelta al servidor Web o si la página Web es simplementeque se solicita.
1. What is the name of the Web page property that you can query to determine that a Web page is being requested without data being submitted? (Choose one.)
A. FirstGetB. InitializedC. IncludesDataD. IsPostBack
www.depurando.com 8
AApliicaccocioon .
��
���
��
�
�#$
Mne.NE
���
��� %
�� & '
����
$��
ǿǿǿΦƛƴŀŘŜŎƻΦŎƻƳ
MCsET 3
��
��
'(��
�
CTS:Web3.5
�
:b5
www.depurando.com 9
���� �� ����� %�� ��� & '(��� ����� �#$��
����� �� ����� %�� ��� & '(���
����� �#$��
Desarrollar aplicaciones Web ASP.NET sobre el .NET Framework es similar a desarrollaraplicaciones Windows. El componente fundamental de ASP.NET es el formulario Web Form.Un formulario Web Form es la página Web que los usuarios visualizan en un navegador. Unaaplicación Web ASP.NET consta de uno o más formularios Web Form. Un Web Form es unapágina dinámica que puede acceder a recursos del servidor.
Por ejemplo, una página Web tradicional puede ejecutar scripts en el cliente para realizartareas básicas. En cambio, un formulario Web Form ASP.NET también puede ejecutar códigoen el lado servidor para acceder a una base de datos, generar formularios Web Formsadicionales, o aprovechar la seguridad incorporada en el servidor.
Además, como un formulario Web Form ASP.NET no depende de utilizar scripts en el cliente,no depende del tipo de navegador del cliente o del sistema operativo. Esta independenciapermite desarrollar un único formulario Web Form que puede ser visualizado prácticamenteen todos los dispositivos que dispongan de acceso a Internet y de un navegador Web.
Debido a que ASP.NET forma parte del .NET Framework, podemos desarrollar aplicacionesWeb ASP.NET en cualquier lenguaje basado en .NET.
La tecnología ASP.NET también permite la creación de servicios Web XML. Los servicios WebXML son aplicaciones distribuidas que utilizan XML para transferir información entre clientes,aplicaciones y otros servicios Web XML.
www.depurando.com 10
���� �� ����� %�� ��� & '(��� ����� �#$��
�AplicaciónWeb de ASP.NET
Una aplicación Web ASP.NET contiene distintas partes y componentes. Crear aplicaciones WebASP.NET implica utilizar y trabajar con todos ellos
Formularios Web Forms o páginas .aspx
Los formularios Web Forms y las páginas .aspx proporcionan la interfaz de usuario para laaplicación Web.
Páginas con código trasero
Las páginas con código trasero están asociadas a los formularios Web Forms y contienen elcódigo del servidor para el formulario Web Form.
Archivos de configuración
Los archivos de configuración son archivos XML que definen la configuración predeterminadapara la aplicación Web y para el servidor Web. Cada aplicación Web tiene un archivo deconfiguración Web.config. Además, cada servidor Web tiene un archivo machine.config.
Archivo Global.asax
Los archivos Global.asax contienen el código necesario para responder a los eventos a nivel deaplicación provocados por ASP.NET.
www.depurando.com 11
���� �� ����� %�� ��� & '(��� ����� �#$��
�Enlaces a servicios Web XML
Los enlaces a servicios Web XML permiten a la aplicación Web enviar y recibir datos de unservicio Web XML.
Conectividad a bases de datos
La conectividad a bases de datos permite a la aplicación Web transferir datos desde y haciafuentes de base de datos.
Caché
El uso de caché permite a la aplicación Web devolver más rápidamente formularios WebForms y datos tras la primera petición.
Proceso de una solicitudCuando el cliente solicita una página Web por primera vez, se genera el siguiente conjuntode eventos:
1. El navegador cliente envía una solicitud GET HTTP al servidor.
2. El parseador ASP.NET interpreta el código fuente.
3. Si el código no se ha compilado todavía en una biblioteca de enlace dinámico (DLL), ASP.NETinvoca el compilador.
4. El CLR carga y ejecuta el código Microsoft intermediate language (MSIL)
Cuando el usuario invoca la misma página Web por segunda vez, se genera el siguienteconjunto de eventos:
1. El navegador cliente envía una solicitud GET HTTP al servidor.
2. El CLR carga y ejecuta inmediatamente el código MSIL que ya se ha compilado durante elprimer intento de acceso del usuario.
Creando un sitio webEn la primera parte del tutorial, creará un sitio web de ASP.NET con una páginapredeterminada. Este sitio web será un sitio web de sistema de archivos que no requiereMicrosoft Internet Information Services (IIS). Esto permite crear y ejecutar la página desde elsistema de archivos local de su equipo.
Para crear un sitio web de sistema de archivos
1. Abra Visual Web Developer.
2. En el menú Archivo, haga clic en Nuevo sitio Web.
Aparece el cuadro de diálogo Nuevo sitio Web, como se muestra en la siguiente ilustración.
www.depurando.com 12
���� �� ����� %�� ��� & '(��� ����� �#$��
�
3. En Plantillas instaladas de Visual Studio, haga clic en Sitio Web ASP.NET.
4. En el cuadro Ubicación, seleccione la casilla Sistema de archivos y escriba el nombre dela carpeta donde desea guardar las páginas del sitio web.
Por ejemplo, escriba el nombre de carpeta C:\Tasks.
5. En la lista Lenguaje, haga clic en Visual Basic o Visual C# para seleccionar el lenguaje deprogramación que utilizará en todo el proyecto web
6. Haga clic en Aceptar.
Visual Web Developer crea la carpeta y una página nueva denominada Default.aspx. De formapredeterminada, cuando se crea una nueva página, Visual Web Developer muestra la páginaen la vista Código fuente, donde puede ver los elementos HTML de la página. La ilustraciónsiguiente muestra una página web predeterminada en vista Código fuente.
www.depurando.com 13
���� �� ����� %�� ��� & '(��� ����� �#$��
�
Visita guiada por Visual Web Developer
Antes de continuar, resultará útil familiarizarse con el entorno de desarrollo de Visual WebDeveloper. La ilustración siguiente muestra algunas de las ventanas y herramientas de VisualWeb Developer.
Diagrama del entorno de Visual Web Developer
Examine la ilustración anterior y relacione el texto con la lista siguiente, que describe lasventanas y herramientas que se utilizan con más frecuencia. (Aquí no se muestran todas lasventanas y herramientas disponibles, sólo las marcadas en la ilustración anterior.)
www.depurando.com 14
���� �� ����� %�� ��� & '(��� ����� �#$��
!� Barras de herramientas. Proporcionan los comandos que permiten dar formato al
texto, buscar texto, etc. Algunas barras de herramientas sólo están disponibles cuandose trabaja en la vista Diseño.
� Explorador de soluciones. Muestra los archivos y carpetas del sitio web.
� Ventana Documento. Muestra los documentos en los que se está trabajando enventanas con fichas. Puede pasar de un documento a otro haciendo clic en las fichas.
� Fichas de vistas. Presentan distintas vistas del mismo documento. La vista Diseño es unárea de edición prácticamente WYSIWYG. La vista Código fuente es el editor de lapágina que muestra el marcado. La vista en dos paneles muestra la vista Diseño y lavista Código fuente del documento. Trabajará con las vistas Diseño y Código fuentemás adelante en este tutorial. Si prefiere abrir las páginas web en la vista Diseño, en elmenú Herramientas haga clic en Opciones, seleccione el nodo Diseñador HTML ycambie la opción Iniciar páginas en.
� Ventana Propiedades. Permite cambiar la configuración de la página, los elementosHTML, los controles y otros objetos.
� Ventana Propiedades de CSS. Muestra los estilos CSS actuales cuando la vista Diseñoestá activa.
� Ventanas Administrar estilos y Aplicar estilos. Ayudan a controlar los estilos CSS delsitio web.
� Cuadro de herramientas. Proporciona los controles y elementos HTML que se puedenarrastrar a una página. Los elementos del Cuadro de herramientas se agrupan porfuncionamiento común.
� Explorador de bases de datos. Muestra las conexiones de las bases de datos. Si no ve laventana Explorador de bases de datos en Visual Web Developer, en el menú Ver, hagaclic en Otras ventanas y, a continuación, haga clic en Explorador de bases de datos.
Puede reorganizar, cambiar el tamaño y acoplar las ventanas para adaptarlas a suspreferencias. El menú Ver permite mostrar otras ventanas.
Para recorrer el entorno de desarrollo
1. En el menú Ver, haga clic en Barras de herramientas.
Se muestra un submenú de barras de herramientas disponibles. Las barras de herramientasque están seleccionadas actualmente aparecen con una casilla junto a ellas.
2. Desplácese hasta el final de la lista de barras de herramientas y haga clic enPersonalizar.
Se muestra el cuadro de diálogo Personalizar.
3. Revise las barras de herramientas disponibles. Cuando termine, haga clic en Cerrar.
www.depurando.com 15
���� �� ����� %�� ��� & '(��� ����� �#$��
"4. En el menú Ver, haga clic en el Explorador de soluciones.
Se mostrará la ventana Explorador de soluciones. De forma predeterminada, esta ventana seacopla en un lado del entorno de Visual Web Developer.
5. En el Explorador de soluciones, haga clic con el botón secundario del mouse en elelemento superior de la lista de sitios.
Se muestra un menú de acceso directo con las operaciones de sitio web más habituales.
6. Presione ESC para cerrar el menú de acceso directo.
7. En el Explorador de soluciones, haga clic con el botón secundario del mouse en elarchivo Web.config y, a continuación, haga clic en Abrir para abrir el archivo en laventana de documento.
8. Haga doble clic en la página Default.aspx para abrirla en la ventana de documento.Hacer doble clic en un archivo es una alternativa a utilizar el comando Abrir del menúde acceso directo.
Observe que el nombre de cada página abierta se muestra en una ficha en la parte superior dela ventana de documento.
9. En la parte inferior de la ventana de documento, haga clic en Dividir para mostrar vistaCódigo fuente y la vista Diseño al mismo tiempo.
10. En el menú Ver, haga clic en Ventana Propiedades.
Se mostrará la ventana Propiedades.
Al seleccionar un objeto en la ventana de documento, la ventana Propiedades muestra laspropiedades del objeto seleccionado.
11. En el panel de vista Código fuente, seleccione el elemento form y, a continuación, enla ventana Propiedades, examine las propiedades disponibles.
12. En el menú Ver, haga clic en Cuadro de herramientas.
Se mostrará la ventana Cuadro de herramientas.
13. En vista Diseño, en la ficha Estándar del Cuadro de herramientas, arrastre un controlButton hacia el documento y colóquelo en el elemento div.
Observe que la vista Código fuente se actualiza con el marcado correspondiente.
14. En el menú Ver, haga clic en Explorador de bases de datos.
Se mostrará la ventana Explorador de bases de datos.
15. Haga clic con el botón secundario del mouse en Conexiones de datos para ver lasopciones de bases de datos disponibles.
www.depurando.com 16
���� �� ����� %�� ��� & '(��� ����� �#$��
)Crear una página web ASP.NET
Al crear un nuevo sitio web, Visual Web Developer agrega una página web ASP.NET (página deformularios Web Forms) denominada Default.aspx. Puede utilizar la página Default.aspx comopágina principal de su sitio web. Sin embargo, en este tutorial, creará una nueva página ytrabajará con ella.
Para agregar una página al sitio Web
1. En la ventana de documento, haga clic con el botón secundario en la ficha de la páginaDefault.aspx y, a continuación, haga clic en Cerrar.
2. Si se le pide que guarde los cambios, haga clic en No.
3. En el Explorador de soluciones, haga clic con el botón secundario en el sitio web, (porejemplo, C:\Tasks) y, a continuación, haga clic en Agregar nuevo elemento.
Se abrirá el cuadro de diálogo Agregar nuevo elemento.
4. En Plantillas instaladas de Visual Studio, haga clic en Web Forms.
5. En el cuadro Nombre, escriba Home.aspx.
6. En la lista Lenguaje, seleccione el lenguaje de programación con el que desea trabajar(Visual Basic o C#).
7. Desactive la casilla Colocar el código en un archivo independiente.
La ilustración siguiente muestra el cuadro de diálogo Agregar nuevo elemento.
www.depurando.com 17
���� �� ����� %�� ��� & '(��� ����� �#$��
*
8. Haga clic en Agregar.
Visual Web Developer crea la nueva página. De forma predeterminada, la página se muestraen la vista Código fuente.
Agregar HTML a la página
En esta parte del tutorial, agregará texto estático a la página.
Para agregar texto a la página
1. En la parte inferior de la ventana de documento, haga clic en la ficha Diseño para pasara la vista Diseño.
2. En la página, escriba To�Do List.
Ejecutar la página
Antes de continuar, puede probar la página. Para ejecutar una página, necesita un servidorWeb. En un sitio web de producción, se utiliza IIS como servidor web. Sin embargo, paraprobar una página puede utilizar el servidor de desarrollo de ASP.NET, que se ejecutalocalmente y no requiere IIS. En los sitios web de sistema de archivos, el servidor webpredeterminado de Visual Web Developer es el servidor de desarrollo de ASP.NET.
Para ejecutar la página
1. Presione CTRL+F5 para ejecutar la página.
www.depurando.com 18
���� �� ����� %�� ��� & '(��� ����� �#$��
Visual Web Developer inicia el servidor de desarrollo de ASP.NET. En la barra de herramientasde Windows aparece un icono que indica que el servidor web de Visual Web Developer se estáejecutando, como se muestra en la ilustración siguiente:
La página se muestra en el explorador. Aunque la página creada tiene una extensión .aspx, seejecuta como cualquier página HTML.
2. Cierre el explorador.
Tipos de Sitios WebEn lugar de crear sólo sitios Web que se ejecutan como aplicaciones de Servicios de Internet Information
Server (IIS), ahora puede crear los tipos siguientes:
� Sitio Web del sistema de archivos Puede almacenar archivos en cualquier carpeta, y abrir
y trabajar con cualquier colección de páginas Web, independientemente de dónde se
encuentren. Una característica importante es que no necesita tener IIS instalado para ejecutar
las páginas de un sitio Web del sistema de archivos. En su lugar, puede probar los sitios Web
utilizando el Servidor de desarrollo de ASP.NET, un servidor de pruebas poco complicado.
� Sitio Web de FTP Puede abrir y editar archivos de sitios Web utilizando el Protocolo de
transferencia de archivos (FTP) directamente desde Visual Web Developer.
� Sitio Web de IIS local Puede seguir creando sitios Web que se ejecutan en la copia local de
IIS, como lo hacía con versiones anteriores de Visual Studio. Los sitios Web de IIS locales no
requieren Extensiones de servidor de FrontPage.
� Sitio Web remoto Puede crear sitios Web que se ejecutan en IIS en un equipo distinto que
esté ejecutando Extensiones de servidor de FrontPage 2000 o extensiones de servidor
FrontPage 2002.
www.depurando.com 19
���� �� ����� %�� ��� & '(��� ����� �#$��
�Carpetas EspecialesComo en versiones anteriores de Visual Studio, las páginas Web se conservan en la raíz delsitio Web y en subcarpetas, tal como sea necesario para la aplicación. No obstante, el sitioWeb de Visual Web Developer puede contener las subcarpetas siguientes que tienencaracterísticas concretas:
� Carpeta App_Browsers Contiene archivos de definición de exploradores que ASP.NETutiliza para identificar exploradores individuales y determinar sus funciones.
� Carpeta App_Data Contiene bases de datos de Microsoft Access (archivos .mdb),archivos XML y otros datos almacenadas en archivos locales. La cuenta de usuario quese utiliza para ejecutar la aplicación (por ejemplo, la cuenta ASPNET local) tienepermisos de lectura, escritura y creación de archivos en esta carpeta. Varias funcionesde aplicación ASP.NET, como proveedores para suscripciones y funciones, así como laherramienta Administración de sitios Web, están configuradas para trabajar con lacarpeta App_Data específicamente.
� Carpeta Bin Contiene el código compilado, como en versiones anteriores de VisualStudio. Se hace referencia automáticamente a cualquier clase representada por elcódigo en la carpeta Bin del sitio Web.
� Carpeta App_LocalResources Contiene archivos .resx enlazados a una páginadeterminada. Puede definir varios archivos .resx para cada página ya que cada archivo.resx representa un idioma o una combinación de idioma/referencia cultural diferente.
� Carpeta App_GlobalResource Igual que las carpetas App_LocalResources perocontiene archivos .resx que no están enlazados a una página determinada. Se puedetener acceso a valores de recursos de archivos .resx en las carpetasApp_GlobalResource mediante programación a partir del código de aplicación.
� Carpeta App_Code Contiene archivos de código fuente. El código se compila comoparte de la aplicación y se hace referencia a él automáticamente. La carpeta App_Codefunciona como la carpeta Bin, salvo que se puede colocar código fuente en lugar decódigo compilado. Mientras trabaja en Visual Web Developer, el código fuente de lacarpeta App_Code se compila dinámicamente para que IntelliSense puede hacerreferencia a cualquier clase definida en los archivos.
� Carpeta App_Themes Contiene una colección de archivos que definen el aspecto delas páginas Web y controles ASP.NET.
� Carpeta App_Browsers Contiene archivos .browser que definen funciones delexplorador.
� Carpeta App_WebReferences Contiene archivos que se utilizan para crear unareferencia a un servicio Web (en el mismo proyecto o externas al proyecto), incluidosarchivos .disco y .wsdl.
www.depurando.com 20
���� �� ����� %�� ��� & '(��� ����� �#$��
�Visual Web Developer no crea de manera predeterminada estas carpetas, excepto la carpetaApp_Data. En algunos casos, hay utilidades que crean carpetas. Al ejecutar el comandoGenerar recurso local, por ejemplo, se crea la carpeta App_LocalResources. En otros casos,puede crear las carpetas manualmente.
TEST1. If you want to create a Web site on a remote computer that does not have Front Page Server Extensions installed, which Web site type will you create? (Choose one.)
A. Remote HTTP B. FileC. FTPD. Local HTTP
2. If you want to create a new Web site on a Web server that is hosted by your ISP and the Web server has Front Page Server Extensions installed, what type of Web site would you create? (Choose one.)
A. Local HTTP B. FileC. FTPD. Remote HTTP
3. If you want to separate your server-side code from your client-side code on a Web page, what programming model should you implement? (Choose one.)
A. Separation model B. Code-Behind model C. In-Line model D. ClientServer model
4. Joe created a new Web site using Visual Studio 2005, setting the Web site type to File, and the programming language to C#. Later, Joe received an elaborate Web page from his vendor, which consisted of the Vendor.aspx file and the Vendor.aspx.vb code-behind page. What must Joe do to use these files? (Choose one.)
A. Joe can simply add the files into the Web site, because ASP.NET 2.0 supports Web sites that have Web pages that were programmed with different languages. B. The Vendor.aspx file will work, but Joe must rewrite the code-behind page using C#. C. Both files must be rewritten in C#. D. Joe must create a new Web site that contains these files and set a Web reference to the new site.
www.depurando.com 21
AApliicaccocioon .
��
���
��
��
��
��
Mne.NE
���
���+�
�� ,
,$�
��
ǿǿǿΦƛƴŀŘŜŎƻΦŎƻƳ
MCsET 3
��
���
�-��
�����
CTS:Web3.5
��
�
:b5
www.depurando.com 22
���� �� �����+��� �� �� ,�-��� �� ��,$����� ���
����� ��� �����+�� �� �� /�-��� ��
��,$����� ���
Los Sitios Web se han configurado sobre la base de una jerarquía de archivos de configuraciónXML, como se muestra en la Figura 1�9. El primer archivo de configuración es el archivoMachine.config. Este archivo se encuentra en la carpeta de configuración de la versión de. NETFramework instalado en el equipo, y generalmente se encuentra en la siguiente ubicación:
%WINDIR%\Microsoft.NET\Framework\version\Config\machine.config
El archivo Machine.config contiene configuración para todo tipo de aplicaciones. NET, comoWindows, la consola, Librerias de Clases, y aplicaciones Web. Estos ajustes son globales a lamáquina. Algunos de los ajustes en el archivo Machine.config pueden ser anulados por losajustes Web.config en archivos que están en la jerarquía, mientras que otros son globalesLosglobales están protegidos y no pueden ser anulados por los archivos Web.config
El siguiente archivo en la jerarquía es el principal archivo Web.config, que se encuentra en elmismo directorio que el archivo Machine.config. Este archivo contiene la configuración Webpredeterminada del servidor, algunas de las cuales pueden anular los ajustes en el archivoMachine.config.
En el directorio raíz de cada sitio Web, usted tiene la posibilidad de añadir un archivoWeb.config. Este archivo es opcional y puede contener ajustes adicionales para el sitio Web,así como anular configuraciones. En cada aplicación Web, también puede tener un archivoWeb.config para proporcionar más opciones y ajustes. Por último, cada subdirectorio en unaaplicación Web Opcionalmente, puede tener un archivo Web.config en que sólo unsubconjunto de las opciones es válida.
www.depurando.com 23
���� �� �����+��� �� �� ,�-��� �� ��,$����� ���
�Procesar Ficheros de ConfiguraciónCuando se ejecuta la aplicación Web, en tiempo de ejecución se crea una caché de laconfiguración efectiva de la aplicación Web por el anidamiento de las capas de los archivos deconfiguración de la siguiente manera:
1. Se recuperan los ajustes del archivo Machine.config2. La configuración del archivo raíz Web.config se añaden a la caché, sobrescribiendo
cualquier configuración que se creó anteriormente.3. Si existe un archivo Web.config en la raíz del sitio Web, este archivo se lee en la
memoria caché, sobrescribir las entradas existentes.4. Si existe un archivo Web.config en la aplicación Web, que es leído en la caché, también
sobrescribe cualquier configuración existente. El resultado de la caché contiene laconfiguración de este sitio Web
5. Si tiene subdirectorios en su aplicación Web, los subdirectorios pueden tener unWeb.conifg archivo que incluye los ajustes que son específicos para los archivos ycarpetas que están contenidas dentro de esta carpeta.
Modificando el archivo de configuraciónDebido a que son archivos XML, los archivos de configuración se pueden abrir y modificar concualquier editor de texto o editor XML. También puede usar el. NET Framework 2.0Configuración complemento con la Microsoft Management Console (MMC), que proporcionauna interfaz gráfica de usuario (GUI) para modificar algunos de los archivo de configuración delos ajustes que un administrador puede querer cambiar.
Visual Studio 2005 también proporciona el Sitio Web Herramienta de administración, quepuede ser usado para modificar muchos de los ajustes de archivo de configuración. Puedeacceder a esta herramienta mediante la selección de Sitio Web | ASP.NET Configuración.
La Herramienta de administración del sitio Web permite editar las siguientes categorías de losarchivos de configuración:
� Seguridad Esta configuración permite la configuración de seguridad para su sitio web.En esta categoría, puede agregar los usuarios, roles, y permisos para su sitio Web.
� Configuración de la Aplicación esta categoría se utiliza para modificar la configuraciónde las aplicaciones.
� Configuración de Proveedor Este archivo contiene los ajustes de configuración quepermiten especificar el proveedor de la base de datos a utilizar para el mantenimientode la composición y funciones
www.depurando.com 24
���� �� �����+��� �� �� ,�-��� �� ��,$����� ���
�
El Sitio Web Herramienta de administración le permite crear y modificar la configuración delsitio Web que no son hereditarios. Si una propiedad se hereda y no puede ser anulada,aparecerá, pero será atenuado cuando la configuración está desactivada.
www.depurando.com 25
���� �� �����+��� �� �� ,�-��� �� ��,$����� ���
�
<system.web> <! Establezca debug "true" en la compilación para insertar símbolos de depuración en la página compilada. Dado que este proceso afecta al rendimiento, debe establecer este valor como true durante la depuración.
> <compilation debug "true">
</system.web>
Test1. You want to make a configuration setting change that will be global to all Web and Windows applications on the current computer. Which file do you change? (Choose one.)
A. Global.asaxB. Web.config C. Machine.config D. Global.asa
2. You want to make a configuration setting change that will affect only the current Web application. Which file will you change? (Choose one.)
A. Web.config that is in the same folder as the Machine.config file B. Web.config in the root of the Web application C. Machine.config D. Global.asa
3. You want to make a configuration setting change that will affect only the current Web application, and you want to use a tool that has a user-friendly Graphical User Interface (GUI). Which tool should you use? (Choose one.)
A. The Microsoft Management Utility B. Microsoft Word C. Visual Studio, using the | Tools | Options path D. Web Site Administration Tool
www.depurando.com 26
AApliicaccocioon .
��
��
'%
a
Mne.NE
��
�:��
��;�
ǿǿǿΦƛƴŀŘŜŎƻΦŎƻƳ
MCsET 3
���
�
CTS:Web3.5
:b5
www.depurando.com 27
���� ��� ���:�� '%��;��
����� ��� <���� ���:� =���
�>=����� �#$�� ���
Se puede utilizar para solucionar problemas y diagnosticar problemas con su sitio Web.También puede utilizar la traza para explorar la utilización de recursos en cada página Web.Esta lección se refiere a la habilitación y configuración de la traza y, a continuación, analiza losdatos que son puestos a disposición por la traza.
Activar y Configurar TrazaLa traza se puede activar en el archivo Web.Config. Pero también se puede utilizar laHerramienta de administraciónd el Sitio Web para proporcionar una interfaz gráfica fácil deusar para habilitar y configurar esta opción
Atributo Descripción enabled Atributo Boolean opcional.
www.depurando.com 28
���� ��� ���:�� '%��;��
�Especifica si el seguimiento está habilitado o no para una aplicación. Para poder utilizar el visor Trace.axd, el seguimiento debe estar habilitado. El valor predeterminado es false.
localOnly Atributo Boolean opcional. Especifica si el visor de seguimiento (Trace.axd) sólo está disponible en el servidor Web del host. Si es false, el visor de seguimiento está disponible en cualquier equipo. El valor predeterminado es true.
mostRecent Atributo Boolean opcional. Especifica si se muestran los resultados de seguimiento de aplicación más recientes y se descartan los datos de seguimiento más antiguos que superen los límites indicados por requestLimit.Si es false, se muestran los datos de seguimiento de las solicitudes hasta alcanzar el valor del atributo requestLimit.Se trata de un atributo nuevo en .NET Framework, versión 2.0. El valor predeterminado es false.
pageOutput Atributo Boolean opcional. Especifica si se debe mostrar el resultado del seguimiento al final de cada página. Si es false, el acceso al resultado del seguimiento sólo es posible a través de la herramienta de seguimiento. El valor predeterminado es false.
requestLimit Atributo Int32 opcional. Especifica el número de solicitudes de seguimiento que deben almacenarse en el servidor. Si se alcanza el límite y el atributo mostRecent es false, se deshabilita el seguimiento automáticamente. El límite máximo de la solicitud es 10.000. Si se especifica un valor superior, ASP.NET lo redondeará automáticamente a la baja hasta 10.000.El valor predeterminado es 10.
traceMode Atributo TraceDisplayMode opcional. Especifica el orden en el que se mostrará la información de seguimiento. El atributo traceMode puede ser uno de los siguientes valores posibles:
Valor Description
SortByCategory Especifica que la información de seguimiento se muestra en el orden en que se procesa.
SortByTime Especifica que la información de seguimiento debe mostrarse ordenada alfabéticamente por las categorías definidas por el usuario.
El valor predeterminado es SortByTime.writeToDiagnosticsTrace Atributo Boolean opcional.
Especifica si los mensajes de seguimiento de ASP.NET se han de reenviar a la infraestructura de seguimiento de System.Diagnosticspara que los agentes de escucha registrados muestren los mensajes de Trace. El valor predeterminado es false.
<configuration>
<system.web>
<trace enabled "true"
pageOutput "true"
requestLimit "15"
mostRecent "true" />
<system.web>
www.depurando.com 29
���� ��� ���:�� '%��;��
�
</configuration>
Si ha habilitado el seguimiento para la aplicación, al solicitar cualquier página, ésta reúneinformación de seguimiento y ejecuta cualquier instrucción de seguimiento que contenga.Puede ver el resultado del seguimiento en el visor de seguimiento. El visor de seguimientopermite elegir una solicitud específica entre las páginas solicitadas a la aplicación.
Si se reciben múltiples solicitudes para una aplicación que tiene habilitado el seguimiento, enel visor de seguimiento aparecen las solicitudes en el orden en que se procesaron. Lainformación de la página inicial del visor de seguimiento incluye la hora de la solicitud, elarchivo solicitado, el código de estado, el verbo HTTP asociado y un vínculo Ver detalles quepermite ver información más detallada acerca de la solicitud. El número de solicitudesdisponibles no superará el límite requestLimit especificado en el archivo Web.config.
En la captura de pantalla siguiente se muestra un visor de seguimiento con las siete solicitudesenviadas a la aplicación desde que se habilitó el seguimiento.
Para ver los detalles de seguimiento de una solicitud específica 1. Desplácese a Trace.axd en la raíz de la aplicación.
Por ejemplo, si la dirección URL de la aplicación es http://localhost/SampleApplication, vaya a
http://localhost/SampleApplication/trace.axd para ver información de seguimiento para la
aplicación.
2. Seleccione el vínculo Ver detalles de la solicitud que desee investigar.
Para borrar las solicitudes del visor de seguimiento 1. Desplácese a Trace.axd en la raíz de la aplicación.
2. Seleccione el vínculo borrar rastro actual para quitar todas las solicitudes almacenadas en el
visor de seguimiento.
www.depurando.com 30
���� ��� ���:�� '%��;��
�Habilitar seguimiento a una páginaPuede controlar si se habilita o deshabilita el seguimiento para páginas individuales. Si elseguimiento está habilitado, cuando se solicita la página, ASP.NET agrega a la página una seriede tablas que contienen detalles de ejecución sobre la solicitud de la página. De formapredeterminada, el seguimiento está deshabilitado.
Para habilitar el seguimiento de una página
1. Incluya una directiva @ Page al principio del archivo .aspx.
2. Agregue un atributo Trace y establezca su valor en true, tal como se muestra en elejemplo siguiente:
<%@ Page Trace="true" %>
Test1. You want to identify which event in the Web page life cycle takes the longest time to execute. How can you accomplish this? (Choose one.)
A. Turn on ASP.NET trace and run the Web application. After that, review the trace results.B. Add a line of code to each of the life-cycle events that will print the current time. C. In the Web.config file, add the monitorTimings attribute and set it to True. D. In the Web site properties, turn on the performance monitor and run the Web application. After that, open performance monitor to see the timings.
2. You want to run the trace continuously to enable you to quickly look at the 10 most recent traces from anyone using your Web site, but you are concerned about filling your hard drive with an excessive amount of data. Which of the following settings will accomplish your objective? (Choose one.)
A. <trace enabled="false" requestLimit="10"pageOutput="false" traceMode="SortByTime" localOnly="true" mostRecent="true" />
B. <trace enabled="true" requestLimit="10"pageOutput="true"traceMode="SortByTime" localOnly="true" mostRecent="true" />
C. <trace enabled="true" requestLimit="10"pageOutput="false" traceMode="SortByTime" localOnly="true" mostRecent="false" />
D. <trace enabled="true" requestLimit="10"pageOutput="false" traceMode="SortByTime" localOnly="false"mostRecent="true" />
3. You are interested in examining the data that is posted to the Web server. What trace result section can you use to see this information? (Choose one.)
A. Control Tree B. Headers Collection C. Form Collection D. Server Variables
www.depurando.com 31
AApliicacocioon .
��
'(
��
��
��
%�
Mne.NE
���
(��
�,$
���
�
����
ǿǿǿΦƛƴŀŘŜŎƻΦŎƻƳ
MCsET
� ��
� &
$���
�����
���
CTS:Web3.5
�
��
�
:b5
www.depurando.com 32
���� �� � '(��� & ��,$���� �������� �� %������
����� �� � <���� � ������ ��
%������
Cuando crea páginas Web ASP.NET, puede utilizar estos tipos de controles:
� Controles de servidor HTML Elementos HTML expuestos al servidor para que sepuedan programar. Los controles de servidor HTML exponen un modelo de objeto quese relacionan muy estrechamente con los elementos HTML que representan.
� Controles de servidor Web Controles con más funciones incorporadas que loscontroles de servidor HTML. Los controles de servidor Web incluyen no sólo controlesde formulario como botones y cuadros de texto, sino también controles con finesespeciales como un calendario, menús y un control de vista de árbol. Los controles deservidor Web son más abstractos que los controles de servidor HTML pues su modelode objetos no refleja necesariamente la sintaxis HTML.
� Controles de validación Controles que incorporan lógica para permitirle comprobarlos controles de entrada de los usuarios como el control TextBox. Los controles devalidación le permiten comprobar un campo necesario, su adecuación a un valor o unmodelo de caracteres concreto, comprobar que un valor se encuentra en un intervalopredefinido, etc.
� Controles de usuario Controles que crea como páginas Web ASP.NET. Se puedenincrustar controles de usuario de ASP.NET en otras páginas Web ASP.NET; esta es una
forma sencilla de crear barras de herramientas y otros elementos reutilizables.
Controles de Servidor HTMLLos controles de servidor HTML son elementos HTML (o elementos en otro marcadocompatible, como XHTML) que contienen atributos que los convierten en programables encódigo del servidor. De forma predeterminada, los elementos HTML en una página WebASP.NET no están disponibles para el servidor. En su lugar, se tratan como texto opaco y sepasan al explorador. Sin embargo, cuando se convierten en controles de servidor HTML, loselementos HTML quedan expuestos como elementos programables en el servidor.
www.depurando.com 33
���� �� � '(��� & ��,$���� �������� �� %������
�El modelo de objetos de los controles de servidor HTML se relaciona estrechamente con el delos elementos correspondientes. Por ejemplo, los atributos HTML se exponen en controles deservidor HTML como propiedades.
Cualquier elemento HTML de una página se puede convertir en control de servidor HTMLagregando el atributo runat="server". Durante el análisis, el marco de trabajo de la páginaASP.NET crea instancias de todos los elementos que contienen el atributo runat="server". Sidesea hacer referencia al control como un miembro dentro del código, también deberáasignarle un atributo id al control.
El marco de trabajo de la página proporciona controles de servidor HTML predefinidos para loselementos HTML que se utilizan con más frecuencia dinámicamente en una página: elelemento form, los elementos input (cuadro de texto, casilla, botón Enviar), el elementoselect, etc. Estos controles de servidor HTML predefinidos comparten las propiedades básicasdel control genérico y, además, cada control normalmente proporciona su propio conjunto depropiedades y su propio evento.
Los controles de servidor HTML ofrecen las funciones siguientes:
� Un modelo de objetos que pueda volver a programar en el servidor con las técnicashabituales orientadas a objetos. Los controles de servidor exponen propiedades quepermiten manipular los atributos de marcado del control mediante programación en elcódigo del servidor.
� Un conjunto de eventos para los que pueda escribir controles de eventos de la mismaforma que lo haría en un formulario basado en cliente, con la excepción de que unevento se controla en código del servidor.
� La capacidad de controlar eventos en un script de cliente.
� Mantenimiento automático del estado del control. Cuando la página realiza una acciónde ida y vuelta al servidor, los valores que el usuario escriba en los controles deservidor HTML se mantendrán automáticamente y la página se devuelve al explorador.
� Interacción con los controles de validación ASP.NET para poder comprobar que unusuario ha escrito la información adecuada en un control.
� Enlace de datos a una o varias de las propiedades del control.
� Compatibilidad con estilos si la página Web ASP.NET se muestra en un explorador queadmite hojas de estilos en cascada.
� Paso a través de atributos personalizados. Pueden agregarse los atributos que senecesiten a un control de servidor HTML: el marco de trabajo de páginas losrepresentará sin ningún cambio en la funcionalidad. Esto permite agregar atributosespecíficos del explorador a los controles.
www.depurando.com 34
���� �� � '(��� & ��,$���� �������� �� %������
�Controles de Servidor WebLos controles de servidor Web son un segundo conjunto de controles diseñado con otroenfoque. No se asignan necesariamente uno a uno a controles de servidor HTML. En lugar deello, se definen como controles abstractos, en los que el marcado real representado por elcontrol puede ser muy diferente al modelo con respecto al que se han programado. Porejemplo, un control RadioButtonList de servidor Web podría representarse en una tabla ocomo un texto en línea con otro marcado.
Los controles de servidor Web incluyen controles de formulario tradicionales como botones ycuadros de texto, además de controles complejos, como, por ejemplo, las tablas. Tambiénincluyen controles que proporcionan funcionalidad de formulario de uso frecuente, como lapresentación de datos en cuadrícula, la elección de fechas, la visualización de menús, etc.
Los controles de servidor Web ofrecen todas las funciones descritas anteriormente para loscontroles de servidor HTML (excepto la asignación uno a uno a elementos) y estas funcionesadicionales:
� Un modelo de objetos enriquecido que proporciona capacidades de programación detipo seguro.
� Detección automática del explorador. Los controles pueden detectar las funciones delexplorador y representar el marcado adecuado.
� Para algunos controles, la capacidad para definir su propio diseño para el controlutilizando Templates.
� Para algunos controles, la capacidad de especificar si un evento del control provoca unenvío inmediato al servidor o, en su lugar, se almacena en caché y se activa cuando seenvía la página.
� Compatibilidad para temas, lo que le permite definir un aspecto uniforme para loscontroles en todo el sitio.
� Capacidad para pasar eventos de un control anidado (como un botón en una tabla) alcontrol contenedor.
Los controles utilizan una sintaxis como la que se muestra a continuación:
<asp:button atributos runat="server" id="Button1" />
En este caso los atributos no son los de los elementos HTML. En lugar de ello, son propiedadesdel control Web.
Cuando se ejecuta la página Web ASP.NET, el control de servidor Web se representa en lapágina utilizando el marcado apropiado, que con frecuencia no sólo depende del tipo deexplorador sino también de la configuración que haya realizado para el control. Por ejemplo,un control TextBox podría representarse como una etiqueta input o una etiqueta textareadependiendo de sus propiedades.
www.depurando.com 35
���� �� � '(��� & ��,$���� �������� �� %������
�Ciclo de Vida de una página web y sus ControlesCuando se ejecuta una página ASP.NET, ésta recorre un ciclo de vida en el que realiza una seriede pasos de procesamiento. Entre ellos se incluyen la inicialización, la creación de instancias decontroles, la restauración y el mantenimiento del estado, la ejecución del código delcontrolador de eventos y la representación. Es importante que comprenda el ciclo de vida dela página para que pueda escribir código en la fase del ciclo de vida apropiada y conseguir elefecto deseado. Además, si crea controles personalizados, debe estar familiarizado con el ciclode vida de la página para poder inicializarlos, asignar datos de estado de vista a laspropiedades de los controles y ejecutar el código de comportamiento de éstos correctamente.(El ciclo de vida de un control está basado en el ciclo de vida de la página, pero ésta produceen un control más eventos de los que están disponibles para la página ASP.NET por sí sola.)
Fase Descripción
Solicitud de página La solicitud de página se produce antes de que comience el ciclo de vida de la página. Cuando un usuario solicita la página, ASP.NET determina si ésta se debe analizar y compilar (a fin de que comience el ciclo de vida de la página) o si se puede enviar una versión en caché de la página como respuesta sin ejecutar la página.
Inicio En el paso de inicio, se establecen las propiedades de la página, como Request y Response. En esta fase, la página también determina si la solicitud es una devolución de datos o una nueva solicitud, y establece la propiedad IsPostBack. Además, durante esta fase se establece la propiedad UICulture de la página.
Inicialización de página
Durante la inicialización de la página, los controles incluidos en ella están disponibles y se establece la propiedad UniqueID de cada uno de ellos. Además, se aplican los temas correspondientes a la página. Si la solicitud actual es una devolución de datos, los datos de devolución aún no se han cargado y los valores de las propiedades del control no se han restaurado a los valores del estado de vista.
Carga Durante la carga, si la solicitud actual es una devolución de datos, las propiedades del control se cargan con información recuperada del estado de vista y del estado del control.
Validación Durante la validación, se llama al método Validate de todos los controles de validación, que establece la propiedad IsValid de cada uno de los controles de validación y de la página.
Control de eventos de devolución de datos
Si la solicitud es una devolución de datos, se llama a los controladores de eventos.
Representación Antes de representar los datos, se guarda el estado de vista de la página y de todos los controles. Durante la fase de representación, la página llama al método Render para cada control, proporcionando un escritor de texto que escribe su resultado en OutputStream de la propiedad Response de la página.
Descarga Se llama a la descarga cuando la página se ha representado completamente, se ha enviado al cliente y está lista para ser descartada. Llegado este momento, se descargan las propiedades de la página, como Response y Request, y se llevan a cabo las operaciones de limpieza correspondientes.
ViewStateUna de las diferencias más importantes que había hasta ahora entre la programación de unprograma para PC y la programación de una Web, es que en las aplicaciones Web el clienterealiza una petición (de una página), el servidor ejecuta el código asociado a la petición y ledevuelve un resultado al cliente. A partir de ese momento, el servidor no tiene consciencia decómo está actuando el cliente.
www.depurando.com 36
���� �� � '(��� & ��,$���� �������� �� %������
�Para explicarlo mejor, veamos un sencillo ejemplo:
paginaEjemplo.aspx<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox><asp:TextBox ID="TextBox1" runat="server"></asp:TextBox><asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" /><asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
paginaEjemplo.aspx.csprotected void Button1_Click(object sender, EventArgs e){Label1.Text = TextBox1.Text;
}
En este ejemplo, cuando el cliente hace clic en el Button1, el servidor devolverá una página enla que en Label1 estará el texto que haya escrito el cliente en TextBox1... pero sucede algomás: en TextBox1 sigue estando el texto que ha escrito el cliente.
Esto, que parece tan normal y que en los programas para PC es tan típico, esconde unacomplejidad muy grande. Pensémoslo bien... el cliente envío los resultados de un formulariomediante el método POST, el servidor los procesa y devuelve un resultado en forma de HTML,con los controles en el mismo estado que cuando el cliente hizo el envío, en este caso con elTextBox1 rellenado...
Ese es el concepto de ViewState: el mantener el estado de los controles de una misma páginaentre una ida y venida al servidor.
Pero es que ViewState no se queda sólo ahí. Rellenemos, por ejemplo, tanto el TextBox1 comoel TextBox2, y comprobamos que aunque al TextBox2 no se le hace alusión alguna en nuestrocódigo, también mantiene el mismo estado...
Pero, ¿dónde está el truco? Como ya sabrás, lo único que no se puede hacer en programaciónes magia. Por ejemplo, échale un vistazo al código fuente de esta página (o cualquier otrapágina ASP.NET), y verás que hay un campo hidden llamado ViewState con un valorincomprensible y generalmente muy largo (depende de la página, de la cantidad de controlesde los que haya que controlar el estado, etc.).
En ese valor tan extraño está almacenado el estado de todos los controles de la página (comoimaginarás es una codificación de los valores legibles). Pero el ViewState no sólo es eso, elViewState permite otras muchísimas cosas, como por ejemplo, averiguar si es la primera vezque ejecutamos una página o la hemos llamado antes ya.
Desde código se puede acceder al ViewState y guardar las variables que quieras en él, incluso
www.depurando.com 37
���� �� � '(��� & ��,$���� �������� �� %������
!de tipos de datos que te hayas inventado tú (siempre que sean Serializables).
Por ejemplo, puedes guardar una variable en ViewState...
ViewState["ejemplo"] = 21;
... y acceder a su valor cuando has hecho clic en tres botones y has hecho un postback con 2listas desplegables
int i = (int)ViewState["ejemplo"];
Sólo tienes que recordar dos cosas básicas:1.� Hay que parsear el dato al tipo de datos que corresponde cuando leemos el valor delViewState (en este caso al tipo integer, pero puede tratarse de cualquier tipo de datos)2.� El ViewState es una variable del ámbito de petición una misma página. Es decir, tú puedestrabajar con el ViewState siempre que estés en la misma página y siempre que lo único quehagas en ella sean postBack. Por ejemplo, el ViewState se resetearía a su valor inicial siestando en una página presionamos el "Go" de nuestra barra de direcciones.
Si lo queremos pensar de otra forma, el ViewState es lo mismo que una variable de Session enel ámbito de una página
Eventos de PáginaEvento de página Uso típico
PreInit Utilice este evento para lo siguiente: � Examine la propiedad IsPostBack para determinar si es la
primera vez que se procesa la página.
� Crear o volver a crear controles dinámicos.
� Establecer una página maestra de forma dinámica.
� Establecer la propiedad Theme de forma dinámica.
� Leer o establecer los valores de las propiedades de perfil.
Init Se provoca cuanto todos los controles se han inicializado y se ha aplicado la configuración de máscara. Utilice este evento para leer o inicializar las propiedades del control.
InitComplete Lo provoca el objeto Page. Utilice este evento para tareas de procesamiento que requieran que todo el proceso de inicialización haya finalizado.
PreLoad Utilice este evento si necesita realizar tareas de procesamiento en su página o control antes de que se provoque el evento Load.Después de que Page provoca este evento, carga su estado de vista y el de todos los controles y, después, procesa todos los datos de devolución incluidos con la instancia de Request.
Load Page llama al método del evento OnLoad en Page, realiza la misma operación de forma recursiva para cada control secundario, los cuales realizan la misma operación para cada uno de sus controles secundarios hasta que se cargan la página y todos los controles. Utilice el método del evento OnLoad para establecer las propiedades
www.depurando.com 38
���� �� � '(��� & ��,$���� �������� �� %������
"de los controles y establecer las conexiones a bases de datos.
Eventos de control Utilice estos eventos para controlar eventos de control específicos, como un evento Click del control Button o un evento TextChanged del control TextBox.
LoadComplete Utilice este evento para las tareas que requieran que se carguen todos los demás controles en la página.
PreRender Antes de que se produzca este evento: � El objeto Page llama a EnsureChildControls para cada control y
para la página.
� Cada control enlazado a datos cuya propiedad DataSourceID esté
establecida llama a su método DataBind. Para obtener más
información, vea Eventos de enlace de datos de controles
enlazados a datos más adelante.
El evento PreRender se produce para cada control de la página. Utilice el evento para realizar cambios finales en el contenido de la página o en sus controles.
SaveStateComplete Antes de que se produzca este evento, ViewState se ha guardado para la página y para todos los controles. Se omitirán todos los cambios que se realicen en este momento en la página o en los controles. Utilice este evento para realizar tareas que requieran guardar el estado de vista, pero que no efectúen cambios en los controles.
Render Éste no es un evento; en esta fase del procesamiento, el objeto Pagellama a este método en cada control. Todos los controles de servidor Web de ASP.NET tienen un método Render que escribe el marcado del control que se envía al explorador. Si crea un control personalizado, normalmente reemplazará este método para generar el marcado del control. Sin embargo, si el control personalizado sólo incorpora controles de servidor Web de ASP.NET estándar y ningún marcado personalizado, no necesita reemplazar el método Render.Un control de usuario (un archivo .ascx) incorpora automáticamente la representación, por lo que no necesita representar explícitamente el control en el código.
Unload Este evento se produce para cada control y después para la página. En los controles, utilice este evento para realizar tareas finales de limpieza en controles específicos, como cerrar las conexiones a bases de datos específicas del control. Para la propia página, utilice este evento para hacer un último trabajo de limpieza, como cerrar archivos abiertos y conexiones a bases de datos, finalizar el registro u otras tareas específicas de la solicitud.
Manejadores de EventosLa página Web y sus controles de servidor tienen un evento predeterminado. Por ejemplo,elevento por defecto de las páginas web es el de Carga, y el evento por defecto del botón es elevento Click. En Microsoft Visual Studio 2008, entorno en tiempo de diseño, puede agregar unmétodo al controlador de eventos para el evento predeterminado simplemente haciendodoble clic en la superficie del objeto. Un controlador de eventos se crea en el archivo de códigosubyacente. Por ejemplo, si hace doble clic en la página web, un evento Page_Load método secrea en la página de código subyacente, y puede agregar su código personalizado en estemétodo.
www.depurando.com 39
���� �� � '(��� & ��,$���� �������� �� %������
)¿Controles de Servidor Web o Controles de Servidor HTML?Las siguientes secciones cubren HTML y controles de servidor Web. Con frecuencia, la cuestiónse plantea: ¿qué debo utilizar? Aquí hay algunas directrices que pueden ayudarle a elegir eltipo de control adecuado.
Considerar la utilización de los controles de servidor HTML cuando tengan lugar cualquiera delas condiciones siguientes:
Va a migrar las páginas ASP a ASP.NET.
El control necesita javascript del lado del cliente para sus eventos
Creando Controles de Servidor HTML
Para agregar un control de servidor HTML
� Escriba la sintaxis HTML del elemento que desea utilizar como un control. Incluya lasintaxis HTML normal para el elemento y, además, haga lo siguiente:
� Establezca el atributo (propiedad) ID del control en un valor único para esapágina, a menos que el control forme parte de un control complejo y serepetirá (como en los controles Repeater, DataList y GridView).
� Establezca el atributo runat="server" para convertir el elemento en control.
El ejemplo siguiente muestra cómo declarar unos controles HtmlInputText, HtmlInputText,HtmlInputButton y HtmlAnchor:
<input id="Name" type="text" size="40" runat="server" />
www.depurando.com 40
���� �� � '(��� & ��,$���� �������� �� %������
*<input type="submit" id="Enter" value="Enter" runat="server" />
Click <a id="Anchor1" runat="server" href="more.html">More </a> to see the next page.
Ejemplo
<html><head>
<title>Customer Page</title></head><body>
<form name "Form1" method "post" action "update.asp" id "Form1"><input type "text" name "CustomerName" id "CustomerName"><input type "submit" name "SubmitButton" value "Submit" id "SubmitButton"></form>
</body></html>
<html><head>
<title>Customer Page</title></head><body>
<form name "Form1" method "post" id "Form1" runat "server"><input type "text" name "CustomerName" id "CustomerName" runat "server"><input type "submit" name "SubmitButton" value "Submit" id "SubmitButton"
runat "server"></form>
</body></html>
En esencia, se observa que se han usado los típicos controles HTML pero añadiéndolesrunat="server"
También se puede observar que el atributo de acción fue retirado de la etiqueta delformulario, porque es la costumbre de enviar los datos de vuelta a la misma página.
Los controles HTML también los podemos crear desde la barra de herramientas
www.depurando.com 41
���� �� � '(��� & ��,$���� �������� �� %������
Propiedad Descripción Attributes Una lista de todos los pares de atributos nombre / valor
indicados en la etiqueta del control de servidor. Esto es accesible a través de código.
Disabled Desabilita el control
Id Identificador para programación
Style Propiedades CSS aplicadas al control
TagName Nombre del elemento
www.depurando.com 42
���� �� � '(��� & ��,$���� �������� �� %������
�Visible Oculta o hace visible al control
<input type "button" id "myButton" runat "server" style "position: absolute; top: 50px;left: 100px;" value "Click Me" visible "true" />
<input id "Button1" name "myButton" type "button" style "position: absolute; top: 50px;left: 100px;" value "Click Me" />
Además de establecer las propiedades de los controles desde código, también las podemosestablecer desde la ventana de diseño
Otra posibilidad sería establecer las propiedades programáticamente:
using System; using System.Configuration; using System.Data; using System.Linq; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Xml.Linq;
public partial class Default : System.Web.UI.Page{
protected void Page Load(object sender, EventArgs e) { myButton.Visible true; myButton.Style.Add("position", "absolute"); myButton.Style.Add("left", "75px"); myButton.Style.Add("top", "150px"); } }
www.depurando.com 43
���� �� � '(��� & ��,$���� �������� �� %������
�
protected void myButton ServerClick(object sender,System.EventArgs e) { DIV1.InnerText Text1.Value; }
Desventajas de los Controles Web HTMLHay un par de inconvenientes a la utilización de controles de servidor HTML. Una desventaja esque los controles HTML no tiene un modelo de programación que sea compatible con Win�Forma de programación. Por ejemplo, en WinForm programación, los datos que se teclean enel cuadro de texto está disponible a través de la propiedad Text, mientras que el control deservidor HTML del cuadro de texto se dispone de datos a través de la propiedad Value.
Otra desventaja de los controles de servidor HTML es que un control de servidor HTML semapea directamente a una sola etiqueta HTML.
Controles de Servidor WEBLos controles de servidor Web ASP.NET son objetos de páginas Web ASP.NET que se ejecutancuando se solicita la página y representan el formato en un explorador. Muchos controles deservidor Web son similares a elementos HTML conocidos, como botones y cuadros de texto.Sin embargo, otros controles abarcan un comportamiento complejo, por ejemplo un controlde calendario o los controles que administran conexiones de datos.
Los temas de esta sección describen qué son los controles de servidor Web ASP.NET y cómotrabajar con ellos. La sección también contiene información sobre todos los controles deservidor Web ASP.NET integrados y sobre cómo puede crear sus propios controles.
www.depurando.com 44
���� �� � '(��� & ��,$���� �������� �� %������
� <asp:textbox attributes runat="server" />
Para añadir controles de servidor web a una página web podemos hacerlo de las siguientesformas:
1. En vista Diseño2. Con código3. De forma dinámica vía código
protected void Page_Init(object sender,System.EventArgs e) { TextBox c = new TextBox(); c.ID = "txtUserName"; c.Visible = true; form1.Controls.Add(c); }
Propiedades de los Controles de Servidor Web
Propiedades Descripción
AccessKey Tecla de acceso para añadir a [alt]
Attributes Atributos
BackColor Color de Fondo
BorderColor Color del borde
BorderWidth Ancho del borde
BorderStyle Estilo del Borde
CssClass Clase CSS
Style Propiedades de Css
www.depurando.com 45
���� �� � '(��� & ��,$���� �������� �� %������
�Enabled Activar o desactivar el control
EnableTheming Permitir Temas para el control
EnableViewState Activar View State
Font Fuente
ForeColor Color de la fuente
Height Altura
SkinID Skin a aplicar al control
TabIndex Posición en el Tab order. Si no tiene establecido valor es un 0
ToolTip Texto de ayuda
Width Anchura
<asp:Button ID "btnWebButton" runat "server" Style "position: absolute; top: 50px;left: 300px;" Text "WebButton" />
<input id "Submit1" type "submit" name "btnWebButton" value "WebButton" style "position:absolute;
top: 50px; left: 300px;" />
btnWebButton.Visible true; btnWebButton.Style.Add("position", "absolute"); btnWebButton.Style.Add("top", "200px"); btnWebButton.Style.Add("left", "350px");
PostBackEn ASP.NET los WebForms están diseñados para enviar información hacia al servidorpara su procesamiento. Esa operación es denominada POSTBACK. El PostBack tienelugar cuando el usuario hace click en un control Button o cuando se establece lapropiedad AutoPostBack a true en un control de servidor y se produce algún cambioen ese control.
Trabajar con nombres de los contenedores y los controles hijosUna página Web se compone de una jerarquía de los controles. la página web tiene unacolección de controles, cada uno de los controles en esa colección tiene su propia colección decontroles, y así sucesivamente.
www.depurando.com 46
���� �� � '(��� & ��,$���� �������� �� %������
�Dentro de un contenedor de controles, cada control debe ser identificable inequivocamente.Normalmente, esto se logra mediante la asignación de un valor único para el control deservidor en la propiedad ID.
Control c = FindControl("lblMessage");
Control c = GridView1.FindControl("ctl08");
TEST1. To add an HTML Web server control to the Web page, you must drag an HTML element
from the ToolBox to the Web page and then perform which of the following tasks? (Choose one.)
A. Right-click the HTML element and click Run=Server.
B. Double-click the HTML element to convert it to an HTML server control.
C. Right-click the HTML element and click Run As Server Control.
D. Click the HTML element and set ServerControl to true in the Properties window.
2. You noticed that clicking a CheckBox does not cause a PostBack; you need the CheckBox to PostBack so you can update the Web page based on server-side code. How do you make the CheckBox cause a PostBack? (Choose one.)
A. Set the AutoPostBack property to true.
B. Add JavaScript code to call the ForcePostBack method.
C. Set the PostBackAll property of the Web page to true.
D. Add server-side code to listen for the click event from the client.
3. After writing code to create a new instance of a TextBox server control, what do you need to do to get the TextBox to display on the Web page? (Choose one.)
A. Call the ShowControl method on the TextBox.
B. Set the VisibleControl to true on the TextBox.
C. Add the TextBox instance to the form1.Controls collection.
D. Execute the AddControl method on the Web page.
www.depurando.com 47
AApliicacocioon .
��
��
��
%�
Mne.NE
���
���
�
����
ǿǿǿΦƛƴŀŘŜŎƻΦŎƻƳ
MCsET
� ���
�����
���
CTS:Web3.5
��
�
:b5
www.depurando.com 48
���� ���� �������� �� %������
����� �� �������� �� %������ ���
������
LabelRepresenta un control de etiqueta que muestra texto en una página Web. Utilice el controlLabel para mostrar texto en una ubicación establecida de la página. A diferencia del textoestático, se puede personalizar el texto que se muestra mediante la propiedad Text.
También es posible utilizar los controles Literal y PlaceHolder para mostrar texto en la páginade formularios Web Forms. Sin embargo, al contrario de lo que ocurre con el control Label,estos controles no representan etiquetas adicionales.
<%@ Page Language "C#" AutoEventWireup "True" %> <!DOCTYPE html PUBLIC " //W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1 transitional.dtd"><html ><head>
<title>Label Example</title><script language "C#" runat "server">
void Button Click(Object Sender, EventArgs e) { Label1.Text Server.HtmlEncode(Text1.Text); }
</script>
</head>
<body>
<form id "Form1" runat "server">
<h3>Label Example</h3>
<asp:Label id "Label1"Text "Label Control"runat "server"/>
<p>
<asp:TextBox id "Text1"Text "Copy this text to the label" Width "200px"runat "server" />
<asp:Button id "Button1"Text "Copy"OnClick "Button Click"runat "server"/>
</p>
</form>
</body></html>
TextBoxMuestra un control de cuadro de texto para la entrada de datos del usuario. El control deservidor TextBox es un control de entrada que permite al usuario escribir texto. De manera
www.depurando.com 49
���� ���� �������� �� %������
�predeterminada, se establece la propiedad TextMode del control en TextBoxMode.SingleLine,que muestra un cuadro de texto de una sola línea. No obstante, también puede usar el controlTextBox para mostrar un cuadro de texto multilínea o un cuadro de texto que enmascara losdatos proporcionados por el usuario al cambiar el valor de la propiedad TextMode aTextBoxMode.MultiLine o TextBoxMode.Password, respectivamente. El texto mostrado en elcontrol TextBox se especifica o determina con la propiedad Text.
El control TextBox contiene varias propiedades que permiten controlar la apariencia delcontrol. El ancho de presentación del cuadro de texto, expresado en caracteres, vienedeterminado por la propiedad Columns. Si el control TextBox es un cuadro de texto multilínea,el número de filas que muestra lo determina la propiedad Rows. Para mostrar texto que seajusta dentro del control TextBox, establezca la propiedad Wrap en true.
También se puede especificar cómo se incluyen los datos en el control TextBox estableciendoalgunas propiedades. Para impedir que se modifique el texto mostrado en el control,establezca la propiedad ReadOnly en true. Para limitar los datos proporcionados por el usuarioa un número especificado de caracteres, establezca la propiedad MaxLength.
ButtonMuestra un control de botón de comando en la página Web. Utilice el control Button paracrear un botón de comando en la página Web. Se puede crear un botón Enviar o un botónComando.
De manera predeterminada, un control Button es un botón Enviar. Un botón Enviar no tieneasociado un nombre de comando (especificado por la propiedad CommandName) ysimplemente devuelve la página Web al servidor. Se puede proporcionar un controlador deeventos para el evento Click con el fin de controlar mediante programación las accionesrealizadas cuando se hace clic en el botón Enviar.
Un botón Comando puede tener asociado un nombre de comando, como Sort, mediante elestablecimiento de la propiedad CommandName. Esto permite crear varios controles Buttonen una página Web y determinar mediante programación en qué control Button se hace clic.También se puede usar la propiedad CommandArgument con un botón de comando parafacilitar información adicional sobre el comando que se va a ejecutar, como Ascending. Sepuede proporcionar un controlador de eventos para el evento Command con el fin decontrolar mediante programación las acciones realizadas cuando se hace clic en el botónComando.
De manera predeterminada, se realiza la validación de la página cuando se hace clic en uncontrol Button. La validación de la página determina si todos los controles de entradaasociados a un control de validación en la página cumplen las reglas de validaciónespecificadas por el control de validación. Para evitar que se realice la validación de la página,establezca la propiedad CausesValidation en false.
<%@ Page Language "C#" AutoEventWireup "True" %>
<!DOCTYPE html PUBLIC " //W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1 transitional.dtd">
www.depurando.com 50
���� ���� �������� �� %������
�
<html ><head>
<title>Button Example</title><script language "C#" runat "server">
void SubmitBtn Click(Object sender, EventArgs e) { Message.Text "Hello World!!"; }
</script></head><body>
<form id "form1" runat "server">
<h3>Button Example</h3>
Click on the submit button.<br /><br />
<asp:Button id "Button1"Text "Submit"OnClick "SubmitBtn Click"runat "server"/>
<br /><asp:label id "Message" runat "server"/>
</form></body></html>
CheckBoxMuestra una casilla de verificación que permite al usuario seleccionar una condición true o false. Utilice el control CheckBox para permitir que el usuario seleccione un estado true o false.
Si piensa utilizar varios controles CheckBox, el control CheckBoxList es un control alternativo que aporta funciones prácticas de enlace de datos. Sin embargo, los controles CheckBox individuales permiten un mayor control sobre el diseño.
RadioButtonRepresenta un control de botón de opción. El control de servidor RadioButton permiteintercalar botones de opción en un grupo con otro contenido dentro de la página. Los botonesse agrupan de forma lógica si todos ellos comparten la misma propiedad GroupName.
<%@ Page Language "C#" AutoEventWireup "True" %> <!DOCTYPE html PUBLIC " //W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1 transitional.dtd"><html ><head>
<title>RadioButton Example</title><script language "C#" runat "server">
void SubmitBtn Click(Object Sender, EventArgs e) {
if (Radio1.Checked) { Label1.Text "You selected " + Radio1.Text; }
else if (Radio2.Checked) { Label1.Text "You selected " + Radio2.Text; }
else if (Radio3.Checked) { Label1.Text "You selected " + Radio3.Text; }
www.depurando.com 51
���� ���� �������� �� %������
�
}
</script>
</head><body>
<h3>RadioButton Example</h3>
<form id "form1" runat "server">
<h4>Select the type of installation you want to perform:</h4>
<asp:RadioButton id "Radio1" Text "Typical" Checked "True"GroupName "RadioGroup1" runat "server" /><br />
This option installs the features most typically used. <i>Requires 1.2 MB disk space.</i><br />
<asp:RadioButton id "Radio2" Text "Compact" GroupName "RadioGroup1"runat "server"/><br />
This option installs the minimum files required to run the product.<i>Requires 350 KB disk space.</i><br />
<asp:RadioButton id "Radio3" runat "server" Text "Full" GroupName "RadioGroup1"/><br />
This option installs all features for the product. <i>Requires 4.3 MB disk space.</i><br />
<asp:button ID "Button1" text "Submit" OnClick "SubmitBtn Click"runat "server"/>
<asp:Label id "Label1" font bold "true" runat "server" />
</form>
</body></html>
1. If you want multiple RadioButton controls to be mutually exclusive, what property must you set? (Choose one.)
A. Exclusive
B. MutuallyExclusive
C. Grouped
D. GroupName
2. You are creating a Web page that has several related buttons, such as fast forward, reverse, play, stop, and pause. You want to create a single event handler that processes the PostBack from these Button controls. Other than the normal Submit button, what type of button can you create as a solution? (Choose one.)
A. OneToMany
B. Command
C. Reset
D. ManyToOne
3. When in Design view, what is the simplest way to create an event handler for the default event of a server control? (Choose one.)
A. Open the code behind page and write the code.
B. Right click the control and select Create Handler.
C. Drag an event handler from the ToolBox to the desired control.
www.depurando.com 52
���� ���� �������� �� %������
�D. Double click the control.
Ejemplo 1
<%@ Page Language "C#" AutoEventWireup "true" CodeFile "Default.aspx.cs"Inherits " Default" %>
<!DOCTYPE html PUBLIC " //W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1 transitional.dtd">
<html xmlns "http://www.w3.org/1999/xhtml" ><head runat "server">
<title>Untitled Page</title></head><body>
<form id "form1" runat "server" ><div>
<div><asp:Label ID "Label1" runat "server" Style "z index: 100; left: 95px;
position: absolute;top: 30px" Text "MyLabel" Width "65px"></asp:Label>
<asp:TextBox ID "TextBox1" runat "server" Style "z index: 101; left: 95px;position: absolute;
top: 55px"></asp:TextBox><asp:Button ID "Button1" runat "server" OnClick "Button1 Click" Style "z
index: 102;left: 95px; position: absolute; top: 85px" Text "MyButton" />
<asp:CheckBox ID "CheckBox1" runat "server"OnCheckedChanged "CheckBox1 CheckedChanged"
Style "z index: 103; left: 95px; position: absolute; top: 115px"Text "MyCheckBox" />
<asp:RadioButton ID "RadioButton1" runat "server"OnCheckedChanged "RadioChanged"
Style "z index: 104; left: 95px; position: absolute; top: 140px"Text "MyRadioButton1" />
<asp:RadioButton ID "RadioButton2" runat "server"OnCheckedChanged "RadioChanged"
Style "z index: 105; left: 95px; position: absolute; top: 165px"Text "MyRadioButton2" />
<asp:RadioButton ID "RadioButton3" runat "server"OnCheckedChanged "RadioChanged"
Style "z index: 107; left: 95px; position: absolute; top: 190px"Text "MyRadioButton3" />
</div>
</div></form>
</body></html>
using System;
www.depurando.com 53
���� ���� �������� �� %������
!
using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls;
public partial class Default : System.Web.UI.Page{
protected void Page Load(object sender, EventArgs e) { System.Diagnostics.Debug.WriteLine("Page Load"); }
protected void Page Init(object sender, EventArgs e) { System.Diagnostics.Debug.WriteLine("Page Init"); }
protected void Page PreRender(object sender, EventArgs e) { System.Diagnostics.Debug.WriteLine("Page PreRender"); }
protected void Page PreInit(object sender, EventArgs e) { System.Diagnostics.Debug.WriteLine("Page PreInit"); }
protected void Page Unload(object sender, EventArgs e) { System.Diagnostics.Debug.WriteLine("Page Unload"); }
protected void Button1 Click(object sender, EventArgs e) { Label1.Text Server.HtmlEncode(TextBox1.Text); }
protected void CheckBox1 CheckedChanged(object sender, EventArgs e) {
if (CheckBox1.Checked) { CheckBox1.Text DateTime.Now.ToString(); } }
protected void RadioChanged(object sender, EventArgs e) {
RadioButton r (RadioButton)sender; TextBox1.Text r.Text; }}
www.depurando.com 54
���� ���� �������� �� %������
"Ejemplo 2
<%@ Page Language="C#"%>
<html><head>
<link rel "stylesheet"href "intro.css"></head>
<body>
<center>
<form action "intro2 cs.aspx" method "post">
<h3> Name: <input id "Name" type text>
Category: <select id "Category" size 1><option>psychology</option><option>business</option><option>popular comp</option>
</select>
</h3>
<input type submit value "Lookup">
<p>
<% for (int i 0; i <8; i++) { %><font size "<% i%>"> Welcome to ASP.NET </font> <br>
<% }%>
</form>
</center>
</body></html>
www.depurando.com 55
���� ���� �������� �� %������
)Ejemplo 3
<%@ Page Language="C#" %>
<html><head>
<link rel "stylesheet"href "intro.css"></head>
<body>
<center>
<form action "intro3 cs.aspx">
<h3> Name: <input name "Name" type text value "<% HttpUtility.HtmlEncode(Request.QueryString["Name"])%>">
Category: <select name "Category" size 1>
<% String [] values { "psychology", "business", "popular comp" };
for (int i 0; i<values.Length; i++) { %>
<option <% if (Request.QueryString["Category"] values[i]) { Response.Write("selected"); } %>>
<% values[i]%></option>
<% } %>
</select>
</h3>
<input type submit name "Lookup" value "Lookup">
<p>
<% if (Request.QueryString["Lookup"] ! null) { %>
Hi <% HttpUtility.HtmlEncode(Request.QueryString["Name"]) %>, you selected: <% HttpUtility.HtmlEncode(Request.QueryString["Category"]) %>
<% } %>
</form>
</center>
</body></html>
Ejemplo 4<%@ Page Language="C#"%>
www.depurando.com 56
���� ���� �������� �� %������
*<html>
<head><link rel "stylesheet"href "intro.css">
</head>
<body>
<center>
<form action "intro4 cs.aspx" method "post" runat server>
<h3> Name: <asp:textbox id="Name" runat="server"/>
Category: <asp:dropdownlist id="Category" runat=server><asp:listitem>psychology</asp:listitem><asp:listitem>business</asp:listitem><asp:listitem>popular comp</asp:listitem>
</asp:dropdownlist>
</h3>
<asp:button text="Lookup" runat="server"/>
</form>
</center>
</body></html>
Ejemplo 5<html>
<head><link rel "stylesheet"href "intro.css">
</head>
<script language "C#" runat server>
void SubmitBtn Click(Object sender, EventArgs e) { Message.Text "Hi " + HttpUtility.HtmlEncode(Name.Text) + ", you selected: " + Category.SelectedItem; }
</script>
<body>
<center>
<form action "intro6 cs.aspx" method "post" runat "server">
<asp:adrotator AdvertisementFile="ads.xml" BorderColor="black" BorderWidth=1 runat="server"/>
<h3> Name: <asp:textbox id="Name" runat="server"/>
Category: <asp:dropdownlist id="Category" runat=server><asp:listitem>psychology</asp:listitem><asp:listitem>business</asp:listitem><asp:listitem>popular comp</asp:listitem>
</asp:dropdownlist>
</h3>
<asp:button text="Lookup" OnClick="SubmitBtn Click" runat="server"/>
<p>
<asp:label id="Message" runat="server"/>
</form>
</center>
www.depurando.com 57
���� ���� �������� �� %������
</body>
</html>
Ejemplo 6<html>
<script language "C#" runat "server">
void Page Load(Object Src, EventArgs E) { Message.Text "You last accessed this page at: " + DateTime.Now; }
</script>
<body>
<h3><font face "Verdana">Manipulating Server Controls</font></h3>
This sample demonstrates how to manipulate the <asp:label> server control within the Page Load event to output the current time.
<p>
<hr>
<asp:label id="Message" font-size="24" font-bold="true" runat=server/>
</body>
</html>
Ejemplo 7<html>
<script language "C#" runat "server">
void EnterBtn Click(Object Src, EventArgs E) { Message.Text "Hi " + Name.Text + ", welcome to ASP.NET!"; }
</script>
<body>
<h3><font face "Verdana">Handling Control Action Events</font></h3>
<p>
This sample demonstrates how to access a <asp:textbox> server control within the "Click" event of a <asp:button>, and use its content to modify the text of a <asp:label>.
<p>
<hr>
<form action "controls3.aspx" runat server>
<font face "Verdana">
Please enter your name: <asp:textbox id="Name" runat=server/> <asp:button text="Enter" Onclick="EnterBtn Click"
runat=server/>
<p>
<asp:label id="Message" runat=server/>
www.depurando.com 58
���� ���� �������� �� %������
�
</font>
</form>
</body>
</html>
Ejemplo 8<html>
<script language "C#" runat "server">
void AddBtn Click(Object Src, EventArgs E) {
if (AvailableFonts.SelectedIndex ! 1) {
InstalledFonts.Items.Add(newListItem(AvailableFonts.SelectedItem.Value)); AvailableFonts.Items.Remove(AvailableFonts.SelectedItem.Value); } }
void AddAllBtn Click(Object Src, EventArgs E) {
while (AvailableFonts.Items.Count ! 0) {
InstalledFonts.Items.Add(new ListItem(AvailableFonts.Items[0].Value)); AvailableFonts.Items.Remove(AvailableFonts.Items[0].Value); } }
void RemoveBtn Click(Object Src, EventArgs E) {
if (InstalledFonts.SelectedIndex ! 1) {
AvailableFonts.Items.Add(newListItem(InstalledFonts.SelectedItem.Value)); InstalledFonts.Items.Remove(InstalledFonts.SelectedItem.Value); } }
void RemoveAllBtn Click(Object Src, EventArgs E) {
while (InstalledFonts.Items.Count ! 0) {
AvailableFonts.Items.Add(new ListItem(InstalledFonts.Items[0].Value)); InstalledFonts.Items.Remove(InstalledFonts.Items[0].Value); } }
</script>
<body>
<h3><font face "Verdana">Handling Multiple Control Action Events</font></h3>
<p>
This sample demonstrates how to handle multiple control action events raised from different <asp:button> controls.
<p>
<hr>
<form action "controls4.aspx" runat server>
<table><tr>
<td> Available Fonts
</td><td>
www.depurando.com 59
���� ���� �������� �� %������
�
<! Filler ></td><td>
Installed Fonts</td>
</tr><tr>
<td><asp:listbox id="AvailableFonts" width="100px" runat=server>
<asp:listitem>Roman</asp:listitem><asp:listitem>Arial Black</asp:listitem><asp:listitem>Garamond</asp:listitem><asp:listitem>Somona</asp:listitem><asp:listitem>Symbol</asp:listitem>
</asp:listbox></td><td>
<! Filler ></td><td>
<asp:listbox id="InstalledFonts" width="100px" runat=server><asp:listitem>Times</asp:listitem><asp:listitem>Helvetica</asp:listitem><asp:listitem>Arial</asp:listitem>
</asp:listbox></td>
</tr><tr>
<td><! Filler >
</td><td>
<asp:button text="<<" OnClick="RemoveAllBtn Click" runat=server/><asp:button text="<" OnClick="RemoveBtn Click" runat=server/> <asp:button text=">" OnClick="AddBtn Click" runat=server/><asp:button text=">>" OnClick="AddAllBtn Click" runat=server/>
</td><td>
<! Filler ></td>
</tr></table>
</form>
</body>
</html>
Ejemplo 9
Controls 5.cs<html>
<script language "C#" runat "server">
void Page Load(Object Src, EventArgs E) {
Random randomGenerator new Random(DateTime.Now.Millisecond);
int randomNum randomGenerator.Next(0, 3);
switch(randomNum) {
case 0: Name.Text "Scott";
break;
case 1: Name.Text "Fred";
break;
case 2:
www.depurando.com 60
���� ���� �������� �� %������
�
Name.Text "Adam"; break;
}
AnchorLink.NavigateUrl "controls navigationtarget cs.aspx?name " + System.Web.HttpUtility.UrlEncode(Name.Text); }
</script>
<body>
<h3><font face "Verdana">Performing Page Navigation (Scenario 1)</font></h3>
<p>
This sample demonstrates how to generate a HTML Anchor tag that will cause the client to navigate to a new page when he/she clicks it within the browser.
<p>
<hr>
<p>
<asp:hyperlink id="AnchorLink" font-size=24 runat=server> Hi <asp:label id="Name" runat=server/> please click this link!
</asp:hyperlink>
</body>
</html>
Controls NavigationTarget cs.aspx<html>
<script language "C#" runat "server">
void Page Load(Object Sender, EventArgs e) {
if (!Page.IsPostBack) { NameLabel.Text Server.HtmlEncode(Request.QueryString["Name"]); } }
</script>
<body>
<h3><font face "Verdana">Handling Page Navigation</font></h3>
<p>
This sample demonstrates how to receive a navigation request from another page, and extract the querystring argument within the Page Load event.
<p>
<hr>
<form action "controls NavigationTarget.aspx" runat server>
<font face "Verdana">
Hi <asp:label id="NameLabel" runat=server/>!
</font>
</form>
</body>
</html>
www.depurando.com 61
���� ���� �������� �� %������
�Ejemplo 10
Controls6 cs.aspx<html>
<script language "C#" runat "server">
void EnterBtn Click(Object Src, EventArgs E) {
// Navigate to a new page (passing name as a querystring argument) if// user has entered a valid name value in the <asp:textbox>
if (Name.Text ! "") { Response.Redirect("Controls NavigationTarget cs.aspx?name " + System.Web.HttpUtility.UrlEncode(Name.Text)); }
else { Message.Text "Hey! Please enter your name in the textbox!"; } }
</script>
<body>
<h3><font face "Verdana">Performing Page Navigation (Scenario 2)</font></h3>
<p>
This sample demonstrates how to navigate to a new page from within a <asp:button> click event, passing a <asp:textbox> value as a querystring argument (validating first that the a legal textbox value has been specified).
<p>
<hr>
<form action "controls6.aspx" runat server>
<font face "Verdana">
Please enter your name: <asp:textbox id="Name" runat=server/><asp:button text="Enter" Onclick="EnterBtn Click"
runat=server/>
<p>
<asp:label id="Message" forecolor="red" font-bold="true" runat=server/>
</font>
</form>
</body>
</html>
Controls NavigationTarget cs.aspx<html>
<script language "C#" runat "server">
void Page Load(Object Sender, EventArgs e) {
if (!Page.IsPostBack) { NameLabel.Text Server.HtmlEncode(Request.QueryString["Name"]); } }
</script>
<body>
www.depurando.com 62
���� ���� �������� �� %������
�
<h3><font face "Verdana">Handling Page Navigation</font></h3>
<p>
This sample demonstrates how to receive a navigation request from another page, and extract the querystring argument within the Page Load event.
<p>
<hr>
<form action "controls NavigationTarget.aspx" runat server>
<font face "Verdana">
Hi <asp:label id="NameLabel" runat=server/>!
</font>
</form>
</body>
</html>
Ejemplo 11<%@ page language="C#" %>
<script runat "server">
void Button1 Click(object sender, EventArgs e) { Label1.Text "Hello " + TextBox1.Text; } </script>
<html><head>
<title>ASP.NET Inline Pages</title></head><body>
<form id "Form1" runat "server"><h1>Welcome to ASP.NET 2.0!</h1><b>Enter Your Name:</b><asp:TextBox ID="TextBox1" Runat="server"/><asp:Button ID="Button1" Text="Click Me" OnClick="Button1 Click" Runat="server"/><br /><br /><asp:Label ID="Label1" Text="Hello" Runat="server" />
</form></body></html>
Ejemplo 11
CodeBehind cs.aspx<%@ page language="C#" CodeFile="CodeBehind cs.aspx.cs" Inherits="CodeBehind cs aspx" %>
<html><head>
<title>ASP.NET CodeBehind Pages</title></head><body>
<form runat "server"><h1>Welcome to ASP.NET 2.0!</h1><b>Enter Your Name:</b><asp:TextBox ID="TextBox1" Runat="server"/><asp:Button ID="Button1" Text="Click Me" OnClick="Button1 Click" Runat="server"/><br /><br />
www.depurando.com 63
���� ���� �������� �� %������
!
<asp:Label ID="Label1" Text="Hello" Runat="server" /></form>
</body></html>
CodeBehind cs.aspx.csusing System;
public partial class CodeBehind cs aspx : System.Web.UI.Page {
protected void Button1 Click(object sender, EventArgs e) { Label1.Text "Hello " + TextBox1.Text; }
}
Ejemplo 12
CodeFolder cs.aspx<%@ page language="C#" %>
<script runat "server">
void Button1 Click(object sender, EventArgs e) { CustomClass c new CustomClass(); Label1.Text c.GetMessage(TextBox1.Text); } </script>
<html><head>
<title>ASP.NET Inline Pages</title></head><body>
<form id "Form1" runat "server"><h1>Welcome to ASP.NET 2.0!</h1><b>Enter Your Name:</b><asp:TextBox ID="TextBox1" Runat="server"/><asp:Button ID="Button1" Text="Click Me" OnClick="Button1 Click" Runat="server"/><br /><br /><asp:Label ID="Label1" Text="Hello" Runat="server" />
</form></body></html>
CustomClass.cs (AppCode) using System;
public class CustomClass {
public String GetMessage(String input) { return "Hello " + input;
} }
Ejemplo 13<%@ Page Language="C#" %>
<html>
<body>
<% for (int i 0; i<8; i++) { %><font size "<% i%>"> Hello World! </font> <br>
<% } %>
</body>
www.depurando.com 64
���� ���� �������� �� %������
"</html>
Ejemplo 14<html>
<script language "C#" runat server>
int subtract(int num1, int num2) { return num1 num2;
}
</script>
<body>
<% int number 100;
while (number > 0) { Response.Write("Value: " + number + "<br>"); number subtract(number, 1); }
%>
</body>
</html>
Ejemplo 15<html>
<script language "C#" runat server>
void Page Load(Object sender, EventArgs e) { Message.Text "Welcome to ASP.NET"; }
</script>
<body>
<asp:label id="Message" font-size=24 runat=server/>
</body>
</html>
Ejemplo 16<html>
<script language "C#" runat server>
void Page Load(Object sender, EventArgs e) { Message.InnerHtml "Welcome to ASP.NET"; }
</script>
<body>
<span id "Message" style "font size:24" runat server/>
</body>
</html>
www.depurando.com 65
���� ���� �������� �� %������
)Ejemplo 17<html>
<script language "C#" runat server>
void Page Load(Object sender, EventArgs e) {
ArrayList items new ArrayList();
items.Add("One"); items.Add("Two"); items.Add("Three");
MyList.DataSource items; MyList.DataBind(); }
</script>
<body>
<asp:datalist id="MyList" runat=server>
<ItemTemplate>
Here is a value: <%# Container.DataItem %>
</ItemTemplate>
</asp:datalist>
</body>
</html>
Ejemplo 18<%@ Page Language "C#"%><html>
<body>
The below content has been hidden from browser clients using a server side comment (view the .aspx source to see what we mean : )
<%
<asp:calendar id "MyCal" runat server/>
<% for (int i 0; i<45; i++) { %> Hello World <br> <% } %>
%>
</body>
</html>
Ejemplo 19<%@ Page Language="C#"%><html>
<body>
<! #Include File "Header.inc" >
<br/>
<h3> Main page content </h3>
www.depurando.com 66
���� ���� �������� �� %������
�*
<br/>
<! #Include File "Footer.inc" >
</body>
</html>
www.depurando.com 67
AApliicacco
��
��
%��
��=
cioon .
��
���
���
=��
ǿǿǿΦƛƴŀŘŜŎƻΦŎƻƳ
Mne.NE
�?
����
���
��:
MCsET 3
�
� ��
:���
CTS:Web3.5
��
:b5
www.depurando.com 68
��
��
LiteReserSystemostcontrprogr
<%@ P
<!DOC"
<html<head
<<scri
</
</hea<body
<f
</</bod</htm
��� �
�=���
eralrva una ubicem.Web.UI.Wrar texto. Elrol Literal noramación el t
Page Languag
CTYPE html P"http://www.l >d><title>Liteript runat "s
void Butto { Literal }
/script>
ad>y>form id "for
<h3>Litera
<asp:LiterTextrunat
<br /><br
<asp:ButtoTextOnClirunat
/form>dy>ml>
�� � �
��:��
ación en la pWebControlscontrol Litero permite apltexto mostra
ge "C#" Auto
PUBLIC " //Ww3.org/TR/x
ral Example<erver">
onClick(Obje
1.Text "Wel
rm1" runat "al Example</
ral id "Lite"Hello Worl
t "server"/>
/>
on id "Butto"Change Litck "ButtonC
t "server"/>
��
����
���
página Web ps.Literal pararal es similarlicar un estiloado en el con
EventWireup
3C//DTD XHTMhtml1/DTD/xh
/title>
ct sender, E
come to ASP
server">h3>
ral1"d!!"
n1"eral Text" lick"
��� �? � �
���� �
para mostrara reservar unr al control Lao al texto montrol, estable
"True" %>
ML 1.0 Transhtml1 transi
EventArgs e)
.NET!!";
��������
�� %��
r texto estátna ubicaciónabel, exceptostrado. Se peciendo la pr
sitional//ENitional.dtd"
)
�� %����
����
ico. Utilice een la páginao por el hechpuede controropiedad Tex
N"">
��� ��=��
��
el controla Web paraho de que elolar mediantxt.
���:����
�
te
�
www.depurando.com 69
La prse rep
UtiliccontrLitera
ValorPassEncoTran
Si espexploconticomp
Si espen HTcontio exp
Si espdel tidispomismelem
CuanXHTMmarcTextejem
opiedad Litepresenta el c
ce la propiedrol Literal. EsalMode. En l
r DsThrough Node Esform L
cq
pecifica Passorador sin ninene una etiqpatible.
pecifica EncoTML antes deene una etiqplorador.
pecifica Tranpo de marcaositivo o explmo comportaentos de la p
do se represML, como WMado no compno admitidoplo, si la pro
eral.Mode Obcontenido de
adMode pasta propiedala siguiente t
DescripciónNo se modificEl contenido Los elementocontenido deque admite HsThrough, elnguna modifqueta <hr>, s
ode, el contee representaqueta <hr>, p
nsform, el coado que se valorador quemiento quepropiedad Te
senta el contML o cHTMLpatibles. En es en el lengu
opiedad Text
��
btiene o estael control Lit
ra especificad se establectabla se enum
ca el conteniddel control se
os del lenguajl control. Si e
HTML o XHTMcontenido coficación. Porse envía a tod
enido de la parse. Por ejemprimero se co
mportamiena a represenadmite HTMal especificaext se repres
trol Literal paL, puede utilieste caso, louaje de marcde un contr
��� �? � �
ablece un vaeral.
ar cómo se dce mediantemeran los po
do del controe convierte eje de marcadel control Lite
ML, no se modompleto deejemplo, si ldos los dispo
ropiedad Texmplo, si la pronvierte en &
nto de represtar. Cuando
ML o XHTML,ar PassThrougsentan para e
ara un lenguzar el valor Tos elementoscado de destol Literal con
��������
lor de enum
ebe represee uno de los vosibles valore
ol. en una cadendo no compateral se repredifica el contela propiedadla propiedadositivos y exp
xt se convierropiedad Tex<Hr> y
sentación dese represenal especificagh. Todas lasel explorado
aje de marcaTransform pas de lenguajeino no se repntiene una e
�� %����
eración que
ntar el contevalores de enes.
a codificada etibles se quitaesenta en unenido de contd Text se pasd Text de unploradores y
rte en una caxt de un conluego se env
e la propiedata el controlr Transform,s etiquetas dor que realizó
ado distintoara quitar loe de marcadopresentan paetiqueta <hr>
��� ��=��
especifica có
enido de unnumeración
en HTML. an del explorador trol. a al dispositicontrol Litera sea o no
adena codifictrol Literalvía al disposi
ad Text depeLiteral para, se genera ede marcado yó la solicitud
de HTML os elementoso de la propiara el contro>, se quita la
���:����
�
ómo
ivo oral
cada
itivo
ndeun
ely.
deedadol. Por
�
www.depurando.com 70
etiqucompo expetiqu
usingusingusingusingusingusingusingusingusingusingpubli{
p{
}}
<asp:L
<br />
<asp:L
El re
<span
<br />
Que la
eta antes depatible contieplorador. Poretas <XYZ> y
g System; g System.Datg System.Cong System.Colg System.Webg System.Webg System.Webg System.Webg System.Webg System.Webic partial c
protected vo{ Literal1
@"This i Literal2
@"This i Literal3
@"This i Literal1 Literal2 Literal3
}
Label ID="lblEj
>
Literal ID="ltl
esultado es:
ID=”lblEjemplo
>
a Fuerza te aco
e que se envíene contenidr ejemplo, siy </XYZ> se q
ta;nfiguration;lections;
b;b.Security;b.UI;b.UI.WebContb.UI.WebContb.UI.HtmlConclass Litera
oid Page Loa
.Text s <font siz.Text s <font siz.Text s <font siz.Mode Lit.Mode Lit.Mode Lit
emplo" runat="
lEjemplo" runat
o">Que la Fuerz
ompañe.
��
íe el contenido, sólo se qla propiedadquitan, y el t
rols;rols.WebParttrols;lControl : S
d(object sen
e 7>cool</fo
e 7>cool</fo
e 7>cool</foeralMode.TraeralMode.PaseralMode.Enc
"server" Text="
t="server" Text
za te acompañe.
��� �? � �
do a un dispuita la etiqud Text contieexto "Test" s
ts;
System.Web.U
nder, EventA
ont><script>
ont><script>
ont><script>ansform;ssThrough;code;
"Que la Fuerza
t="Que la Fuerz
</span>
��������
ositivo WMLeta, y se envene el contense envía al di
UI.Page
Args e)
>alert(""Hi"
>alert(""Hi"
>alert(""Hi"
te acompañe.">
za te acompañe.
�� %����
L. Si una etiqvía al contennido <XYZ>Tispositivo o e
"");</script
"");</script
"");</script
></asp:Label>
"></asp:Litera
��� ��=��
ueta noido al disposest</XYZ>, laexplorador.
t>";
t>";
t>";
al>
���:����
�sitivoas
�
www.depurando.com 71
Con
TabMuesespecdiseñTableconte
Es imtablafilas yParadevoutilizatodocontr
<%@ P<!DOC
"<html<head
<</hea<body
<<
<<
ntroles Ta
lestra una tablcificar sus caño proporcioe sólo se ponenido dinám
mportante recmediante py las celdas dalmacenar lolución de daar un controello es que lroles.
Page LanguagCTYPE html P"http://www.l >d id "Head1"<title>Untitad>y><form id "fo<div>
<h3>Table ex<asp:Table i
able, Tab
a en una págaracterísticasnando contene de manifieico.
cordar que crogramaciónde la tabla soos cambios etos. De hechl DataList, Da clase Table
ge "C#" %> PUBLIC " //Ww3.org/TR/x
runat "servtled Page</t
orm1" runat
xample, consd "Table1"
��
bleRow y
gina Web. Els de una formenido estáticesto cuando
cualquier mon no se conseon en sí mismen la tabla, seho, si se prevataGrid o Gre suelen utili
3C//DTD XHTMhtml1/DTD/xh
ver">itle>
"server">
tructed at drunat "serve
��� �? � �
TableCe
control Tabma sencilla. Lco, pero la pola tabla se c
odificación oervará en losmas controlee deben recovén modificaridView en luizarla princip
ML 1.0 Transhtml1 transi
design time<er"
��������
ell
le permite cLas tablas seotencia de unrea mediant
adición realis envíos al ses y no propieonstruir las fciones sustaugar del contpalmente los
sitional//ENitional.dtd"
</h3>
�� %����
onstruir unapueden crean control dete programac
izada en las fervidor. Estoedades del cfilas y celdasnciales, se retrol Table. Las desarrollad
N"">
��� ��=��
a tabla HTMLar en tiemposervidor Weción con
filas o celdasse debe a qontrol Tabledespués deecomiendaa consecuencores de
���:����
�
L yo deeb
s de laue lase.cada
cia de
�
www.depurando.com 72
<<<
</bod</htm
En elprogrlugarceldaContrfila dTableRepit
<%@ P
<!DOC
<scri
p{
}
</scr
<html<head
<</hea<body
<<
<<
CellPaddGridLineHorizont<asp:Tab
<asp
</as<asp
</as</asp:Ta<asp:Tab
<asp
</as<asp
</as</asp:Ta
</asp:Table></div></form>dy>ml>
siguiente ejeramación. La, crear los obas se agrega erol.Controlse la tabla. AgeRow. Por últa este proce
Page Languag
CTYPE html P"http://www
ipt runat "s
private void{ // Gener int numr int numc for (int { Tabl for
} Tabl }
}
ript>
l >d id "Head1"<title>Untitad>y><form id "fo<div>
<h3>Table Ex<asp:Table i
ding "10"es "Both"talAlign "CebleRow>p:TableCell>Row 0, Col p:TableCell
p:TableCell>Row 0, Col p:TableCell
ableRow>bleRow>p:TableCell>Row 1, Col p:TableCell
p:TableCell>Row 1, Col p:TableCell
ableRow>>
emplo de cóa creación debjetos TableCestableciendde TableCellgregue los obtimo, agregueso para cada
ge "C#" %>
PUBLIC " //Ww.w3.org/TR/
erver">
d Page Load(
rate rows anrows 3; cells 2; t j 0; j <
eRow r new(int i 0; TableCell c c.Controls.A + j.ToSr.Cells.Add
e1.Rows.Add
runat "servtled Page</t
orm1" runat
xample, consd "Table1"
��
nter">
0>
1>
0>
1>
ódigo se muee una tabla dCell que reprdo la propiedl. A continuabjetos Tableue el controla fila de la ta
3C//DTD XHTMxhtml1/DTD/x
Object sende
d cells.
numrows; j+
w TableRow()i < numcell new Table
Add(new Litetring() + ",(c);
(r);
ver">itle>
"server">
tructed prog
��� �? � �
estra cómo coe forma dináresenten lasdad Text o agación, cree uCell creadosTableRow a
abla.
ML 1.0 Transxhtml1 trans
er, EventArg
++)
);ls; i++) { eCell();eralControl, cell " + i
grammaticall
��������
onstruir unaámica constaceldas de ungregando conn control Tabs anteriormea la colección
sitional//ENsitional.dtd
gs e)
("row "i.ToString()
ly</h3>
�� %����
tabla mediaa de tres pasna fila. El conntroles a la cbleRow quente a la colen Rows del co
N"d">
));
��� ��=��
antesos. En primentenido de lacolecciónrepresente ucción Cells dontrol Table
���:����
�
eras
unade.
�
www.depurando.com 73
<<
</bod</htm
TabRepreTable
Esta cconteHoriz
Las ceLa co
TabReprecontrde la
La cladel coHorizconte
Se pucontrcontr
<html<head
GridLineHorizontFont NamFont SizCellPaddCellSpacRunat "s
</div></form>dy>ml>
leRowesenta una fe.
clase permitenido de la fizontalAlign y
eldas de la filección Cells
leCellesenta una crol Table. Secelda.
ase TableCelontenido dezontalAlign yenido de la c
uede especifirol Table, qurolan cuánta
l>d>
es "Both"talAlign "Cemes "Verdanae "8pt"
ding "15"cing "0"erver"/>
fila de un con
e controlar cila se especifVerticalAlig
ila pueden ads es una cole
celda en un cpuede utiliz
l permite cola celda se eVerticalAligelda se ajust
icar asimisme ocupa unas filas y colu
��
nter""
ntrol Table. L
cómo se muefica mediantn.
dministrarsección de obj
control Tablear la propied
ntrolar cómoespecifica men. Se puedeta dentro de
o el númeroa celda indivimnas se utili
��� �? � �
La clase Tabl
estra el conte el establec
e mediante petos TableCe
e. La clase Tadad Text par
o se muestraediante el esutilizar la prla misma.
o de filas o codual. Las proizan, respect
��������
eRow repres
enido de la fcimiento de l
programaciónell que repre
ableCell repra especificar
a el contenidstablecimientopiedad Wra
olumnas de lopiedades Rotivamente.
�� %����
senta una fil
fila. La alinealas propieda
n utilizandoesentan las c
esenta una cr o determin
do de la celdato de las proap para espe
a tabla, reprowSpan y Co
��� ��=��
a de un cont
ación deldes
la coleccióneldas de la f
celda en unar el conteni
a. La alineaciopiedadesecificar si el
resentada poolumnSpan
���:����
!
trol
Cells.ila.
ido
ión
or un
�
www.depurando.com 74
<
+ i.T
<
</hea<body
<
<
CellS
<
</bod</htm
ImaMues
<script lang
void Pag
// G
intint
for
ToString()))
} }
</script>
ad>y>
<h3><font fa
<form runat
<asp:TabSpacing=0 Bo
<p> Table ro
<asp:Dro<asp<asp<asp<asp
</asp:Dr
<br> Table ce
<asp:Dro<asp<asp<asp<asp
</asp:Dr
<p><asp:but
</form>
dy>ml>
agestra una ima
guage "C#" r
ge Load(Obje
Generate row
numrows inumcells
(int j 0; j
TableRow r
for (int i TableCe c.Contr; r.Cells}
Table1.Rows
ace "Verdana
server>
ble id="TableorderColor="b
ows:opDownList idp:ListItem Vp:ListItem Vp:ListItem Vp:ListItem VropDownList>
ells:opDownList idp:ListItem Vp:ListItem Vp:ListItem Vp:ListItem VropDownList>
tton Text="Ge
gen en una p
��
unat "server
ct sender, E
s and cells
nt.Parse(Droint.Parse(Dr
<numrows; j+
new TableR
0; i<numcellll c new Tols.Add(new
.Add(c);
.Add(r);
">Table Exam
e1" Font-Namblack" Borde
d=DropDown1alue="1">1</alue="2">2</alue="3">3</alue="4">4</
d=DropDown2alue="1">1</alue="2">2</alue="3">3</alue="4">4</
enerate Tabl
página Web.
��� �? � �
r">
EventArgs e)
opDown1.SeleropDown2.Sel
++) {
Row();
ls; i++) { TableCell();LiteralCont
mple</font><
mes="VerdanaerWidth="1"
runat="serv/asp:ListIte/asp:ListIte/asp:ListIte/asp:ListIte
runat="serv/asp:ListIte/asp:ListIte/asp:ListIte/asp:ListIte
le" runat=se
��������
) {
ectedItem.ValectedItem.V
;trol("row "
</h3>
a" Font-SizeGridlines="
ver">em>em>em>em>
ver">em>em>em>em>
erver/>
�� %����
alue);Value);
+ j.ToStrin
e="8pt" Cell"Both" runat
��� ��=��
ng() + ", ce
lPadding=5t="server"/>
���:����
"
ll "
�
www.depurando.com 75
Utilicrealizmueslugaralineaestab
<%@ P<!DOC
"<html<head
<<scri
ce el controlza la solicitudstra, establezde la imageación de la imbleciendo la p
Page LanguagCTYPE html P"http://www.l >d><title>Imageipt language
void Butto { switch( { case I
b
case I
b
case I
b
case I
b
case I
b
case I
b
Image parad en la páginzca la propien cuando ésmagen con rpropiedad Im
ge "C#" %> PUBLIC " //Ww3.org/TR/x
e Example</te "C#" runat
on Click(Obj
DropList1.S
e 0: mage1.ImageA
break;
e 1: mage1.ImageA
break;
e 2: mage1.ImageA
break;
e 3: mage1.ImageA
break;
e 4: mage1.ImageA
break;
e 5: mage1.ImageA
break;
��
mostrar cuala Web. Paraedad ImageUta no está direspecto a lomageAlign.
3C//DTD XHTMhtml1/DTD/xh
itle>"server">
ect sender,
electedIndex
Align Imag
Align Imag
Align Imag
Align Imag
Align Imag
Align Imag
��� �? � �
lquier imagea especificarUrl. Para espeisponible, ess demás elem
ML 1.0 Transhtml1 transi
EventArgs e
x)
geAlign.NotS
geAlign.Left
geAlign.Righ
geAlign.Base
geAlign.Top;
geAlign.Midd
��������
en válida admla ruta de acecificar el textablezca la pmentos de la
sitional//ENitional.dtd"
e)
Set;
t;
ht;
eline;
;
dle;
�� %����
mitida por elcceso a la imxto que se hapropiedad Ala página Web
N"">
��� ��=��
exploradoragen que sea de mostrarternateText.b se especifi
���:����
)
que
r en. Laca
�
www.depurando.com 76
</
</hea
<body
<f
</
</bod
case I
b
case I
b
case I
b
case I
b
defa I
b
}
}
/script>
ad>
y>
form id "for
<h3>Image
<div style
Text Te Text Te Text Te
</div>
<asp:ImageAlterImageImage
<hr />
Select Ima
<asp:DropDrunat
<asp:Li<asp:Li<asp:Li<asp:Li<asp:Li<asp:Li<asp:Li<asp:Li<asp:Li<asp:Li
</asp:Drop
<br /><br
<asp:ButtoTextOnClirunat
/form>
dy>
e 6: mage1.ImageA
break;
e 7: mage1.ImageA
break;
e 8: mage1.ImageA
break;
e 9: mage1.ImageA
break;
ault:mage1.ImageA
break;
rm1" runat "
Example</h3
e "font size
ext Text Texext Text Texext Text Tex
e id "Image1rnateText "ImeAlign "lefteUrl "images
age Align: <b
DownList idt "server">
stItem>NotSstItem>LeftstItem>RighstItem>BasestItem>Top<stItem>MiddstItem>BottstItem>AbsBstItem>AbsMstItem>Text
pDownList>
/>
on id "Butto"Apply Imagck "Button
t "server"/>
��
Align Imag
Align Imag
Align Imag
Align Imag
Align Imag
server">
>
:large">
t Text Text t Text Text t Text Text
" runat "sermage text" "/image1.jpg"
br />
"DropList1"
et</asp:List</asp:ListItt</asp:ListILine</asp:Li/asp:ListItele</asp:Listom</asp:Listottom</asp:Liddle</asp:LTop</asp:Lis
n1"e Alignment"Click"
��� �? � �
geAlign.Bott
geAlign.AbsB
geAlign.AbsM
geAlign.Text
geAlign.NotS
Text Text TText Text TText Text T
rver"
"/>
tItem>tem>Item>istItem>em>tItem>tItem>ListItem>ListItem>stItem>
"
��������
tom;
Bottom;
Middle;
tTop;
Set;
Text Text TeText Text TeText Text Te
�� %����
ext Textext Textext Text
��� ��=�����:����
*
�
www.depurando.com 77
</htm
usingusingusingusingusingusingusingusingusingusingpubli{
p{
}}
<html<head
<
<
</hea
<body
<
<
Grain
ml>
g System; g System.Datg System.Cong System.Colg System.Webg System.Webg System.Webg System.Webg System.Webg System.Webic partial c
protected vo{ Image1.I Image1.D Image1.A
}
l>d>
<script lang
void Subm
Image1 Image1 }
</script>
ad>
y>
<h3><font fa
<form runat
<asp:Imans" runat="s
<p>
Select i
<asp:Dro<asp<asp
ta;nfiguration;lections;
b;b.Security;b.UI;b.UI.WebContb.UI.WebContb.UI.HtmlConclass Image
oid Page Loa
mageUrl "DescriptionUAlternateTex
guage "C#" r
mitBtn Click
.ImageUrl "
.AlternateT
ace "Verdana
server>
age ID="Imageserver" />
mage file:
opDownList idp:ListItem Vp:ListItem V
��
rols;rols.WebParttrols;Control : Sy
d(object sen
~/Images/Girrl "~/Imagt "This is
unat "server
(Object send
images/" + Dext DropDown
">Simple Htm
e1" ImageUrl
d=DropDown1alue="Cerealalue="Cereal
��� �? � �
ts;
ystem.Web.UI
nder, EventA
rl.gif";geDescriptios a picture
r">
der, EventAr
DropDown1.Sen1.SelectedI
mlImage Samp
l="images/ce
runat="servl1.gif">Heall2.gif">Corn
��������
I.Page
Args e)
on.htm";of a girl";
rgs e) {
electedItem.Item.Text;
ple</font></
ereal1.gif"
ver">lthy Grains<n Flake Cere
�� %����
Value;
/h3>
AlternateTe
</asp:ListIteal</asp:Lis
��� ��=��
ext="Healthy
tem>stItem>
���:����
�
www.depurando.com 78
<
</bod</htm
ImaContr
Espac
Utilic
Se pr
Utilizlas cocódigorige
De mImaga un ccontrpropi
<asp<asp<asp<asp
</asp:Dr
<asp:but
</form>
dy>ml>
ageButtonrol que mues
cio de nomb
ce el control
ovocan los e
ando el contoordenadas dgo de respuen (0, 0) está
manera predeeButton. Lacontrol de varol de validaciedad Causes
p:ListItem Vp:ListItem Vp:ListItem Vp:ListItem VropDownList>
tton text="Ap
nstra una ima
bres: System.
ImageButto
eventos Click
trolador de edel punto dosta tomandosituado en l
eterminada,validación dalidación ención. Para evsValidation e
��
alue="Cerealalue="Cerealalue="Cerealalue="Cereal
pply" OnClic
agen y respon
.Web.UI.We
n para most
k y Command
eventos OnConde se ha heo como basea esquina su
la validacióne la página dla página cuvitar que se ren false.
��� �? � �
l3.gif">U.F.l4.gif">Oatel5.gif">Stril7.gif">Frui
ck="SubmitBt
nde a los clic
bControls
rar una imag
d cuando se
Click, se puedecho clic enlos valores d
uperior izquie
n de la páginadetermina simplen las rerealice la vali
��������
.O.S</asp:Liey O's</asp:ike</asp:Lisity Pops</as
tn Click" ru
cs del mouse
gen que resp
hace clic en
den determinla imagen. Ade las coordeerda de la im
a se realiza atodos los co
eglas de valididación de la
�� %����
istItem>ListItem>
stItem>sp:ListItem>
unat=server/
e (ratón) en l
ponde a los c
el control Im
nar medianteA continuacióenadas. Obs
magen.
al hacer clic eontroles de edación especa página, esta
��� ��=��
>
>
a imagen.
lics del mou
mageButton.
e programacón, se puedeerve que el
en un controentrada asoccificadas porablezca la
���:����
�
se.
cióncrear
oliadosel
�
www.depurando.com 79
usingusingusingusingusingusingusingusingusingusingpubli{
p{
}p{
}}
g System; g System.Datg System.Cong System.Colg System.Webg System.Webg System.Webg System.Webg System.Webg System.Webic partial c
protected vo{ ImageBut ImageBut ImageBut
}protected vo{ ImageBut
string.F}
ta;nfiguration;lections;
b;b.Security;b.UI;b.UI.WebContb.UI.WebContb.UI.HtmlConclass ImageB
oid Page Loa
tton1.ImageUtton1.Descriptton1.Altern
oid ImageBut
tton1.AlternFormat("Butt
��
rols;rols.WebParttrols;utton Contro
d(object sen
rl "~/ImagptionUrl "ateText "T
ton1 Click(o
ateText on Clicked a
��� �? � �
ts;
ol : System.
nder, EventA
ges/Girl.gif"~/ImageDescThis is a pi
object sende
at {0},{1}",
��������
.Web.UI.Page
Args e)
f";cription.htmicture of a
er, ImageCli
, e.X, e.Y);
�� %����
e
m";girl";
ickEventArgs
��� ��=��
e)
���:����
�
�
www.depurando.com 80
<html<head
<
<
</hea<body
<
<
Borde
<
</bod</htm
ImaCreala zondatos
Utilicdefinuna dejemun usURL q
l>d>
<script lang
void Ima
intint
Labe Labe
if (
} el
} }
</script>
ad>y>
<h3><font fa
<form runat
<table w<tr>
<td
erWidth="2px</td<td>
</td</tr>
</table>
<asp:Lab
</form>
dy>ml>
ageMapun control qna activa defs al servidor
ce el controlidas. Cuandodevolución dplo, puede usuario hace cque proporci
guage "C#" r
ageButton1 O
x e.X;y e.Y;
el1.Text "el2.Text "
x > 60 ) Label3.Textse { Label3.Text
ace "Verdana
server>
width "100%"
width "25%"<asp:ImageBu
x" onclick="d>><asp:Label
<br>
<asp:Labeld>
>
bel id=Label
que muestrafinida dentroo se desplaz
ImageMap po un usuarioe datos al seutilizar este cclic en una reiona datos a
��
unat "server
nClick(objec
X: " + x.ToSY: " + y.ToS
{ "You clic
"You clic
">Using Imag
border 0>
>utton id=ButImageButton1
id=Label1 Te
id=Label2 Te
3 font-bold=
una imageno del controlza a una direc
para crear unhace clic en
ervidor o descontrol paraegión concredicionales so
��� �? � �
r">
ct Source, I
String();String();
cked on the
cked on some
geButton as
tton1 ImageU1 OnClick" r
ext="X:" run
ext="Y:" run
="true" Text
en una págiImageMap,cción URL es
na imagen quuna región
splazarse a umostrar un meta del mapaobre la regió
��������
ImageClickEv
Purple Rain
e Extreme Or
an Image Ma
Url="images/runat="serve
nat="SERVER"
nat="SERVER"
t="" runat="
na. Cuando sel control gespecificada.
ue contengade zona activna direcciónmapa de una, el control sn selecciona
�� %����
ventArgs e)
n!";
range!";
ap</font></h
/imagebuttoner" />
"/>
"/>
"SERVER"/>
se hace clic eenera una de
las regionesva, el contron URL especifa región geogse desplaza aada. También
��� ��=��
{
h3>
n4.gif"
en una regióevolución de
s de zona actol puede genficada. Porgráfica. Cuana una dirección puede utiliz
���:����
�
n dee
tivaerar
ndoónzar
�
www.depurando.com 81
este cfunciImaghaceregistregióTambejemotra r
Utilicen elcontrPolygHotS
Hay dImagdel copropiestabHotS
control paraón de la regieMap para cclic en la regtrar una respn de zona acbién puede mplo, puede eregión de zo
ce la propiedcontrol Imarol ImageMagonHotSpot ppot abstract
dos maneraseMap cuandontrol Imageiedades se eblecen ambapot individua
generar unaión de zona acapturar lasgión de zonapuesta afirmctiva definidamezclar estosespecificar unna activa pa
ad ImageUrlgeMap. Pueap. Puede utipara definira para defin
s de especificdo se hace cleMap o la prstablecen ms propiedadeal tiene prio
��
a devoluciónactiva en la qrespuestas dactiva definativa en unaa para los vos dos escenana región dera devolver l
para especide definir cuilizar las claslas regionesir un objeto
car el compoic en el objeropiedad Hotediante unoes, la propieridad sobre l
��� �? � �
de datos alque se hizo cdel usuario enida para losa base de datotos negativoarios dentro de zona activalos datos al s
ficar la rutaualquier númes CircleHotde zona actipropio de zo
ortamiento dto HotSpot.tSpotMode dde los valordad HotSpotla propiedad
��������
servidor y ejclic. Por ejemn forma de vvotos afirmatos. Cuandoos, se registrade un contropara desplaservidor.
de acceso amero de objetSpot, Rectaniva. Tambiénona activa pe
e un objetoPuede utilizade un objetores de enumetMode especd HotSpotMo
�� %����
jecutar códigmplo, puede uvotos. Cuandativos, se llamun usuario ha una respueol ImageMapzarse a una d
la imagen qutos HotSpotngleHotSpotn, puede deriersonalizado
HotSpot enar la propiedo HotSpot inderación HotScificada en code del cont
��� ��=��
go concretoutilizar un codo un usuarioma al códigohace clic en laesta negativap único. Pordirección UR
ue se va a mdentro de uyivar de la cla.
un controldad HotSpotMdividual. EstaSpotMode. Scada objetorol ImageMa
���:����
�enontroloo paraaa.
RL y
ostrarn
se
Modeasi se
ap.
�
www.depurando.com 82
ParapropiNavig
ParaImagUtilicEste neventdatosrealizcontr
Paracompcompobjetpropi
ParaImagen Ho
<%@ p
<!DOC"
<html<head
<ti</hea
<bo<
desplazarseiedad HotSpgateUrl para
generar unaeMap.HotSpce la propiednombre se pto de devolus, se producezadas cuandorolador de ev
hacer que toportamiento,portamientoto HotSpot iniedad HotSp
especificar deMap, estabotSpotMode
page languag
CTYPE html P"http://www.l >d id "head1"itle>ImageMaad>ody><form id "fo
<h3>ImageM
<h4>Shoppi
<asp:imageimageurlwidth "1height "alternatrunat "S
<asp:cirnavigax "75"y "290radiushotspoaltern
</asp:ci
<asp:cirnavigax "75"y "120radiushotspoaltern
</asp:ci
a una direccot.HotSpotMespecificar l
devoluciónpotMode o lad PostBackpasa en los daución de datoe el evento Co se hace clicventos para
odos los obje, utilice la pr. A continuacndividual enot.HotSpotM
diferentes coblezca la proe.Navigate o
ge "C#" %>
PUBLIC " //Ww3.org/TR/x
runat "servap Class Nav
orm1" runat
Map Class Nav
ng Choices:
emap id "Shop"Images/Sh
50"360"
tetext "Shopperver">
rclehotspotateurl "http
""75"
otmode "Navinatetext "Shrclehotspot
rclehotspotateurl "http
""75"
otmode "Navinatetext "Shrclehotspot
��
ción URL, estMode en Hotla URL a la qu
de datos al sa propiedadValue para eatos del eveos. Cuando sClick. Para coc en un objetel evento Cli
etos HotSpotropiedad Imación, estableHotSpotMoMode.
omportamienpiedad HotSHotSpotMo
3C//DTD XHTMhtml1/DTD/xh
ver">igate Exampl
"server">
vigate Examp
</h4>
p"opChoice.jpg
ping choices
://www.tails
gate"op for toys">
://www.cohow
gate"op for wine">
��� �? � �
tablezca la prtSpotMode.ue desplazar
servidor, estHotSpot.Hoespecificar unto ImageMe hace clic eontrolar medto HotSpot dick.
t de un contrageMap.Hotezca la propieode.NotSet o
ntos para losSpot.HotSpotode.PostBack
ML 1.0 Transhtml1 transi
le</title>
ple</h3>
g"
s"
spintoys.com
">
winery.com"
">
��������
ropiedad ImaNavigate. Utrse.
ablezca la protSpotModen nombre paapEventArgsn un objetoiante prograde devolució
rol ImageMatSpotMode pedad HotSpoo no especifiq
s objetos HottMode de cak.
sitional//ENitional.dtd"
m"
�� %����
ageMap.Hottilice la prop
ropiedaden HotSpotara la regións cuando se pHotSpot deamación las aón de datos, p
ap tengan elpara especifiot.HotSpotMque ningún v
tSpot de unada objeto H
N"">
��� ��=��
tSpotMode oiedad
Mode.Postbde zona actiproduce undevolución daccionesproporcione
mismocar el
Mode de cadavalor para la
objetootSpot indiv
���:����
�o la
back.iva.
de
un
a
vidual
�
www.depurando.com 83
<</b
</htm
usingusingusingusingusingusingusingusingusingusingpubli{
p{
</asp:imag
</form>body>ml>
g System; g System.Datg System.Cong System.Colg System.Webg System.Webg System.Webg System.Webg System.Webg System.Webic partial c
protected vo{ ImageMap ImageMap ImageMap ImageMap
CircleHoRectanglPolygonH
chs ne chs.X chs.Y chs.Radi chs.Post ImageMap chs ne chs.X chs.Y chs.Radi chs.Post ImageMap phs ne phs.Coor phs.Post ImageMap phs ne phs.Coor phs.Post ImageMap rhs ne rhs.Top rhs.Bott rhs.Left rhs.Righ rhs.Post ImageMap phs ne phs.Coor phs.Post ImageMap phs ne phs.Coor
"28,150, +
"103,9,1 +
"135,154 +
"51,56,4 phs.Post ImageMap chs ne chs.X chs.Y chs.Radi chs.Post
gemap>
ta;nfiguration;lections;
b;b.Security;b.UI;b.UI.WebContb.UI.WebContb.UI.HtmlConclass ImageM
oid Page Loa
p1.ImageUrlp1.Descriptip1.Alternatep1.HotSpotMootSpot chs; eHotSpot rh
HotSpot phs; ew CircleHot75;75;us 6;
tBackValue p1.HotSpots.Aew CircleHot100;75;us 6;
tBackValue p1.HotSpots.Aew PolygonHordinates "tBackValue p1.HotSpots.Aew PolygonHordinates "tBackValue p1.HotSpots.Aew Rectangle
101; tom 110; t 74; ht 110; tBackValue p1.HotSpots.Aew PolygonHordinates "tBackValue p1.HotSpots.Aew PolygonHordinates 17,141,10,1
29,22,141,4
,128,142,12
2,81,44,140tBackValue p1.HotSpots.Aew CircleHot87;81;us 50;
tBackValue
��
rols;rols.WebParttrols;ap Control
d(object sen
"~/Images/onUrl "~/IText "Thisde HotSpot
s;
Spot();
"Left Eye CAdd(chs);Spot();
"Right Eye Add(chs);tSpot();76,57,82,64,"Left Eye";
Add(phs);tSpot();99,57,105,64"Right Eye"
Add(phs);HotSpot();
"Mouth";Add(rhs);tSpot();92,82,101,95"Nose";
Add(phs);tSpot();
29,22,57,46,
7,152,93,152
9,71,117,47,
";"Hair";
Add(phs);Spot();
"Face";
��� �? � �
ts;
: System.Web
nder, EventA
/Girl.gif";ImageDescrips is a pictutMode.PostBa
Center";
Center";
,81,76,76,82;
4,104,76,99,";
5,85,95";
,21,80,9,"
2,142,144,15
,93,34,69,34
��������
b.UI.Page
Args e)
ption.htm";ure of a girack;
2,71,76,70,6
,82,94,76,93
56,"
4,"
�� %����
rl";
63";
3,63";
��� ��=�����:����
!
�
www.depurando.com 84
}p{
}
<%@ P<!DOC"http<scri
</scr<html<head
<</hea<body
<
Examp
butto
ImageMap rhs ne rhs.Top rhs.Bott rhs.Left rhs.Righ rhs.Post ImageMap
}protected vo{ Label1.Tex
Page LanguagCTYPE html Pp://www.w3.oipt runat "s
ript>l xmlns "httd runat "ser<title>Untitad>y><form id "fo
<div><h3>
ple</font></
<aspons"
p1.HotSpots.Aew Rectangle
127; tom 142; t 69; ht 107; tBackValue p1.HotSpots.A
oid ImageMapxt "You cl
ge="C#" %>PUBLIC " //Worg/TR/xhtmlerver">
tp://www.w3.rver">tled Page</t
orm1" runat
><font faceh3>
p:imagemap id
runat="Serve
<asp:Rectanghotspotmode=NavigateUrl=alternatetextop="30"left="175"bottom="110right="355"</asp:Rectan
<asp:Rectanghotspotmode=
��
Add(chs);HotSpot();
"Neck";Add(rhs);
1 Click(objeicked the "
3C//DTD XHTM1/DTD/xhtml1
org/1999/xht
itle>
"server">
"Verdana">Im
d="Buttons"
er">
gleHotSpot="Navigate"="navigate1xt="Button 1
">ngleHotSpot>
gleHotSpot="Navigate"
��� �? � �
ect sender, + e.PostBac
ML 1.0 Trans1 transition
tml">
mageMap Clas
imageurl="h
.htm"1"
>
��������
ImageMapEveckValue; }
sitional//ENnal.dtd">
ss Mixed Hot
hotspot.jpg"
�� %����
entArgs e)
N"
tSpotMode
" alternatet
��� ��=��
text="Naviga
���:����
"
te
�
www.depurando.com 85
<</bod</htm
<%@ P
<!DOC"http
<scriv{
}</scr
<html<head
<</hea<body
<
Examp
butto
</as
</div></form>dy>ml>
Page Languag
CTYPE html Pp://www.w3.o
ipt runat "svoid Buttons{ label1.T
}ript>
l xmlns "httd runat "ser<title>Untitad>y><form id "fo
<div><h3>
ple</font></
<aspons"
NavigateUrl=alternatetextop="155"left="175"bottom="240right="355"</asp:Rectan
<asp:Rectanghotspotmode=NavigateUrl=alternatetextop="285"left="175"bottom="365right="355"</asp:Rectan
sp:imagemap>
ge="C#" %>
PUBLIC " //Worg/TR/xhtml
erver">Clicked(ob
Text e.Pos
tp://www.w3.rver">tled Page</t
orm1" runat
><font faceh3>
p:imagemap id
hotspotmode=
<asp:Rectanghotspotmode=postbackvalualternatetextop="30"left="175"bottom="110right="355"</asp:Rectan
<asp:Rectanghotspotmode=postbackvalualternatetextop="155"left="175"bottom="240right="355"</asp:Rectan
<asp:Rectanghotspotmode=postbackvalualternatetex
��
="navigate2xt="Button 2
">ngleHotSpot>
gleHotSpot="Navigate"="navigate3xt="Button 3
">ngleHotSpot>
3C//DTD XHTM1/DTD/xhtml1
ject sender,
tBackValue +
org/1999/xht
itle>
"server">
"Verdana">Im
d="Buttons"
="Postback"
gleHotSpot="Postback"ue="Button1"xt="Button 1
">ngleHotSpot>
gleHotSpot="Postback"ue="Button2"xt="Button 2
">ngleHotSpot>
gleHotSpot="Postback"ue="Button3"xt="Button 3
��� �? � �
.htm"2"
>
.htm"3"
>
ML 1.0 Trans1 transition
, ImageMapEv
+ " clicked!
tml" >
mageMap Clas
imageurl="h
onclick="Bu
"1"
>
"2"
>
"3"
��������
sitional//ENnal.dtd">
ventArgs e)
!";
ss Mixed Hot
hotspot.jpg"
uttons Click
�� %����
N"
tSpotMode
" alternatet
ked" runat="
��� ��=��
text="Naviga
Server">
���:����
)
te
�
www.depurando.com 86
></as
<</bod</htm
CaleMuesal me
UtiliccontrCalenSysteutiliza
Se pumes c
De mde lames dpuedcontrpropi
</as
<p>
sp:label></f</p>
</div></form>dy>ml>
endarstra un calenes siguiente o
ce el controlrol permite sndar admiteem.Globalizaan diferente
uede especificompleto me
manera predesemana, unde forma inde personalizrolan el estiloiedades que
top="285"left="175"bottom="365right="355"</asp:Rectan
<asp:Rectanghotspotmode=postbackvalualternatetextop="0"left="0"bottom="390right="540"</asp:Rectan
sp:imagemap>
<h3><font ffont></h3>>
ndario de uno al mes ante
Calendar paseleccionar fetodos los tiption. Además sistemas d
icar si el conediante la pr
eterminada,encabezadodividual y vínar la aparieno de las diferespecifican
��
">ngleHotSpot>
gleHotSpot="Postback"ue="Backgrouxt="Backgrou
">ngleHotSpot>
ace "verdana
solo mes querior.
ra mostrar uechas y desppos System.Gás del calende año y mes,
trol Calendaropiedad Sele
el control mo con el nomnculos para dncia del contrentes parteel estilo de l
��� �? � �
>
und"und"
>
a"><asp:labe
ue permite al
un solo mes dplazarse al mGlobalizationario gregoria, como el cal
ar permite seectionMode
uestra los díbre del mesdesplazarse arol Calendars del controlas diferente
��������
el id="label
l usuario sele
de un calendes siguienten.Calendar deano, tambiénlendario Hjir
eleccionar un.
ías del mes, ly año, víncual mes siguier establecienl. La siguients partes del
�� %����
l1" runat="s
eccionar fech
dario en unao al mes antel espacio den se incluyenri.
n solo día, un
los encabezalos para selente y al mesdo las propiee tabla conticontrol.
��� ��=��
server"
has y desplaz
página Webterior. El cone nombresn calendarios
na semana o
ados de los deccionar díasanterior. Seedades queiene las
���:����
�*
zarse
. Elntrol
s que
un
díass dele
�
www.depurando.com 87
<%@ P<!DOC
"<html<head
<</hea<body
<f
Page LanguagCTYPE html P"http://www.l >d><title>ASP.Nad>y>
form id "for
<asp:Calen
<Othe</Oth
<Titl
</Tit
<DayS</Day
<Sele
</Sel
</asp:Cale
ge "C#" AutoPUBLIC " //Ww3.org/TR/x
NET Example<
rm1" runat "
ndar id "cal
erMonthDayStherMonthDayS
eStyle BackFore
tleStyle>
tyle BackCoyStyle>
ectedDayStyl
ectedDaySty
endar>
��
EventWireup3C//DTD XHTMhtml1/DTD/xh
/title>
server">
endar1" runa
yle ForeColotyle>
Color "Blue"Color "White
lor "gray">
e BackColorFont Bold
le>
��� �? � �
"True" %> ML 1.0 Transhtml1 transi
at "server">
or "LightGra
"e">
"LightGray""True">
��������
sitional//ENitional.dtd"
>
ay">
"
�� %����
N"">
��� ��=�����:����
�
�
www.depurando.com 88
</
</bod</htm
usingusingusingusingusingusingusingusingusingusingpubli{
Hp{
}p{
}p{
}pM{
}p{
}
/form>
dy>ml>
g System; g System.Datg System.Cong System.Colg System.Webg System.Webg System.Webg System.Webg System.Webg System.Webic partial c
Hashtable scprotected vo{ GetSched Calendar Calendar Calendar Calendar Calendar Calendar Calendar Calendar Calendar Calendar Calendar Calendar Calendar System.D Calendar Calendar
}private void{ schedule schedule schedule schedule schedule schedule schedule schedule schedule
}protected vo{ Response + Calend
}protected voMonthChanged{ Response
}protected vo{
Literal lit.Visi lit.Text e.Cell.C
if (sche {
Labe lbl. lbl. e.Ce }
}
ta;nfiguration;lections;
b;b.Security;b.UI;b.UI.WebContb.UI.WebContb.UI.HtmlConclass Calend
chedule newoid Page Loa
dule();r1.Style.Addr1.Style.Addr1.Style.Addr1.Caption r1.FirstDayOr1.NextPrevFr1.TitleFormr1.ShowGridLr1.DayStyle.r1.DayStyle.Vr1.DayStyle.r1.DayStyle.Wr1.OtherMontDrawing.Color1.TodaysDatr1.VisibleDa
d GetSchedul
e["11/23/200e["12/5/2006e["12/16/200e["12/23/200e["12/24/200e["12/25/200e["12/26/200e["12/31/200e["1/1/2007"
oid Calendar
e.Write("Seldar1.Selecte
oid CalendardEventArgs e
e.Write("Mon
oid Calendar
lit new Lble true;
t "<br />"Controls.Addedule[e.Day.
el lbl newVisible tText (str
ell.Controls
��
rols;rols.WebParttrols;ar Control
w Hashtabled(object sen
("position",("left", "5p("top", "50p"Special Da
fWeek Firsormat Nextat TitleFoines true;HorizontalAlVerticalAligHeight newWidth newhDayStyle.Bar.WhiteSmokee new Datete Calenda
e()
6"] "Thank"] "Birthd6"] "First6"] "Last6"] "Chris6"] "Chris6"] "Boxin6"] "New Y] "New Yea
1 SelectionC
ection changdDate.ToShor
1 VisibleMon)
th changed t
1 DayRender
iteral();
;(lit);Date.ToShort
Label();rue;ing)schedule.Add(lbl);
��� �? � �
ts;
: System.Web
();nder, EventA
, "absolute"px");px");ays";stDayOfWeek.tPrevFormat.ormat.MonthY;lign Horizgn Verticaw Unit(75);Unit(100);
ackColor e;eTime(2006,ar1.TodaysDa
ksgiving";day";t day of Chaday of Chan
stmas Eve";stmas";ng Day";Year's Eve";ar's Day";
Changed(obje
ged to: " rtDateString
nthChanged(o
to: " + e.Ne
(object send
tDateString
e[e.Day.Date
��������
b.UI.Page
Args e)
");
.Sunday;
.ShortMonth;Year;
zontalAlign.alAlign.Top;
12, 1); ate;
anukah";nukah";
;
ect sender,
g());
object sende
ewDate.ToSho
der, DayRend
()] ! null)
e.ToShortDat
�� %����
Left;
EventArgs e
er,
ortDateStrin
derEventArgs
teString()];
��� ��=��
e)
ng());
e)
���:����
��
�
www.depurando.com 89
}
<html<head
<
Calen
<
</hea
<body
<
<
<
</bod</htm
l>d>
<script lang
void Dat Labe
ndar1.Select }
</script>
ad>
y>
<h3><font fa
<form runat
<asp:Cal
<p>
<asp:Lab
</form>
dy>ml>
guage "C#" r
te Selected(el1.Text "tedDate.ToSh
ace "Verdana
server>
lendar id=Ca
bel id=Label
��
unat "server
object s, EvSelected datortDateStrin
">Calendar E
lendar1 onse
1 runat="ser
��� �? � �
r">
ventArgs e) te is: " + ng();
Example</fon
electionchan
rver" />
��������
{
nt></h3>
nged="Date S
�� %����
Selected" ru
��� ��=��
unat="server
���:����
��
" />
�
www.depurando.com 90
<html<head
<
Calen
Calen
Calen
<
</hea
<body
<<
<
l>d><script lang
void Pag
Cale
if (
}
void Dat
swit
ndar1.Select
ndar1.Select
ndar1.Select
} }
</script>
ad>
y>
<h3><font fa<p>
<form runat
Choose a <asp:Dro Auto
<asp<asp<asp<asp
guage "C#" r
ge Load(Obje
endar1.Selec
Calendar1.SCalendar1.S
te Selected(
tch (Calendacase (0): Label1.
break;case (1): Label1.
tedDate.ToShbreak;
case (7): Label1.
tedDate.ToShbreak;
default: Label1.
tedDate.ToShbreak;
ace "Verdana
server>
a Selection MopDownList idoPostBack=trup:ListItem Vp:ListItem Sep:ListItem Vp:ListItem V
��
unat "server
ct Sender, E
tionMode
electionModeelectedDates
object s, Ev
r1.SelectedD//None
Text "No d
//DayText "The ortDateStrin
//WeekText "The ortDateStrin
//MonthText "The ortDateStrin
">Date Selec
Mode:d="lstSelModue>alue="None"elected Valualue="DayWeealue="DayWee
��� �? � �
r">
EventArgs e)
(CalendarSel
e Calendas.Clear();
ventArgs e)
Dates.Count)
dates are cu
selected dang();
selection ing();
selection ing();
ction Modes<
de" runat=se
>None</asp:ue="Day" >Daek" >DayWeekekMonth" >Da
��������
) {
lectionMode)
arSelectionM
{
) {
urrently sel
ate is " +
is a week be
is a month b
</font></h3>
erver
:ListItem>ay</asp:Listk</asp:ListIayWeekMonth<
�� %����
lstSelMode.
Mode.None)
lected";
eginning " +
beginning "
>
tItem>Item></asp:ListIt
��� ��=��
SelectedInd
+
+
tem>
���:����
��
ex;
�
www.depurando.com 91
<
</bod</htm
<html<head
<
Calen
Calen
Calen
<</hea
</asp:Dr
<p> <asp:Cal onse Font Heig Sele Toda DayH Othe Titl Titl Titl Sele Sele />
<p><asp:Lab
</form>
dy>ml>
l>d><script lang
void Dat
swit
ndar1.Select
ndar1.Select
ndar1.Select
} }
</script>ad>
ropDownList>
lendar id=Caelectionchangt-Names="Aright="180px" WectorStyle-BayDayStyle-BHeaderStyle-BerMonthDayStyleStyle-BackCleStyle-FontleStyle-FontectedDayStyleectedDayStyle
bel id=Label
guage "C#" r
te Selected(
tch (Calenda
case (0): Label1.
break;case (1): Label1.
tedDate.ToShbreak;
case (7): Label1.
tedDate.ToShbreak;
default: Label1.
tedDate.ToShbreak;
��
lendar1 runaged="Date Seal" Font-SizWidth="200pxackColor="gaackColor="gaBackColor="gyle-ForeColoColor="gray"-Bold="True"-Size="12px"e-BackColor=e-Font-Bold=
1 runat="ser
unat "server
object sende
r1.SelectedD
//NoneText "No d
//DayText "The ortDateStrin
//WeekText "The ortDateStrin
//MonthText "The ortDateStrin
��� �? � �
at="server"elected"ze="12px"x"ainsboro"ainsboro"gainsboro"or="gray""""="Navy"="True"
rver" />
r">
er, EventArg
Dates.Count)
dates are cu
selected dang();
selection ing();
selection ing();
��������
gs e) {
) {
urrently sel
ate is " +
is a week be
is a month b
�� %����
lected";
eginning " +
beginning "
��� ��=��
+
+
���:����
��
�
www.depurando.com 92
<body
<<
<
onmouonmou
onmouonmou
<</bod</htm
FileMuesselec
La claperm
y>
<h3><font fa<p>
<form runat
<asp:Cal onse DayN Sele Font Heig Toda DayH Othe Titl Titl Titl Sele Sele
Next Prev Sele Sele
useover thisuseout this. Sele
useover thisuseout this.
/>
<p>
<asp:Lab
</form>dy>ml>
eUploadstra un contrcionar un ar
ase FileUploamiten a los us
ace "Verdana
server>
lendar id=CaelectionchangNameFormat="ectionMode="Dt-Names="Verdght="180px" WayDayStyle-FHeaderStyle-erMonthDayStyleStyle-BackCleStyle-ForeCleStyle-FontectedDayStyleectedDayStyletMonthText = vMonthText ectorStyle BectWeekText.style.backstyle.backg
ectMonthText.style.backstyle.backg
bel id=Label
rol de cuadrochivo para ca
admuestra usuarios selecc
��
">Selection
lendar1 runaged="Date SeShort"DayWeekMonthdana;Arial"Width="230pxont-Bold="TrFont-Bold="Tyle-ForeColoColor="#3366Color="white-Bold="True"e-BackColor=e-Font-Bold="<img src="<img src
ackColor "#9 "<img src
groundColorroundColor
"<img srcgroundColorroundColor
1 runat="ser
o de texto yargarlo al se
un control decionar un arc
��� �? � �
Link Graphi
at="server"elected"
h"Font-Size="
x"rue"True"or="gray"6ff"e""="#ffcc66"="True"'images/mont'images/mont99ccff"'images/sel'#ffcc66'
'#99ccff'>"c 'images/se'#ffcc66'
'#99ccff'>"
rver" />
un botón dervidor.
e cuadro dechivo en el c
��������
ics</font></
"12px"
thright.gif'thleft.gif'
lweek.gif' b
elmonth.gif'
búsqueda q
texto y un bliente y carg
�� %����
/h3>
border=0>"border 0>"
border 0
border 0
que permiten
otón de búsqgarlo en el se
��� ��=��
n a los usuari
queda queervidor Web.
���:����
��
ios
El
�
www.depurando.com 93
usuarequippuedcuadr
El conusuarmecabotónguardarchivmétoPor epara
AntesmediHasFiusuarPostemanevalor
Cuanque del códarchivque laplica
El méaplicadispoaccesdeseeconce
Utiliccargaincluy
La prUtilicejemconteutiliza
rio especificapo local (pore seleccionaro de diálogo
ntrol FileUplrio lo seleccianismo que pn donde el udar el archivovo en una ruodo de controejemplo, si prguardar el a
s de llamar ao de la propile devuelverio que indicedFile para aera predeterno nulo aun
do llame al mdeba guardadigo de su apvo. Este comos usuarios pación y, a la v
étodo SaveAación ASP.NEone de dos mso de escritue guardar losede a la aplic
ce la propiedar utilizandoye la ruta de
opiedad Filece esta propiplo, puede uenido del arcar la propied
a el archivo qejemplo, C:\
ar el archivoo Elegir arch
oad no guarone para carpermita al ussuario puedo especificaduta especificaol de eventoroporciona urchivo en el
al método Saiedad HasFiltrue, llame
ca que el converiguar si eminada 0 bynque el contr
método Saverse el archivoplicación, semportamientopuedan escrvez, evitar e
s escribe el aET debe tenemedios para ora a la cuents archivos cacación ASP.N
ad FileNameel control Fi
e acceso al ar
Content obtedad para obusar el objetochivo en formdad FileBytes
��
que desea ca\MyFiles\Tehaciendo clicivo.
rda automátirgarlo. Debesuario enviara hacer clic pdo debe llamada del servios para un evun botón quemétodo de c
aveAs para ge si el controal método Satrol no contiexiste un archytes. Como corol FileUploa
eAs, especifio cargado. Sproducirá uno ayuda a mibir en ubical acceso a los
archivo cargaer derechos dobtener acceta bajo la cuaargados. O biNET.
e para obtenleUpload. Elrchivo en el c
tiene un objebtener acceso Stream devma de bytes ys para recupe
��� �? � �
argar escribieestFile.txt) enc en el botón
icamente unproporcionar el archivo epara cargar emar al métododor. Normalvento que inie permite encontrol del e
uardar el arcol FileUploadaveAs. Si deviene un archhivo para caronsecuenciaad esté en bl
que la ruta di no especificna excepciónantener segciones arbitrs directorios
ado en el dirde escrituraeso de escrital se ejecutaien, puede a
er el nombrenombre decliente.
eto Stream qso al contenivuelto por lay almacenarerar todos lo
��������
endo su rutan el cuadro dn Examinar y
archivo en ear explícitamespecificado.el archivo. Elo SaveAs, qumente, se llaicia una devonviar un archvento hacer
chivo en el sed contiene uvuelve false,ivo. No comrgar, porquea, la propiedaanco.
de acceso coca explícitamn cuando unuros los archrarias de la es raíz confide
rectorio espeen el directoura. Se puedla aplicaciónumentar el n
e de un archarchivo que
ue señala aido del archiva propiedad Flo en una maos bytes del a
�� %����
a de acceso cde texto del cy buscándolo
el servidor dmente un conPor ejemplocódigo que
ue guarda elama al métoolución de daivo, podría inclic.
ervidor, comn archivo. Si, muestra unpruebe la presta propiead PostedFile
mpleta del dmente una ruusuario inte
hivos del servestructura deenciales.
ecificado. Poorio del servide otorgar exn, en el direcnivel de conf
ivo de un cliedevuelve es
un archivo pvo en formaFileContentatriz de bytearchivo.
��� ��=��
completa encontrol. Tamo después en
espués de qntrol o uno, proporcionescriba paracontenido dodo SaveAs eatos al servidncluir un cód
mpruebe porla propiedad
n mensaje alropiedaddad contienee devuelve u
directorio enuta de accesoente cargar uvidor, al impe directorios
r consiguienidor. La aplicxplícitamentectorio dondefianza que se
ente que dessta propiedad
para cargarlode bytes. Popara leer eles. O bien, pu
���:����
�!el
mbiénn el
ue el
ne unae unen undor.digo
d
e deun
elo enunedirde la
te, lacacióneee
seed no
.or
uede
�
www.depurando.com 94
La pra cargpropitipo dobtenotrola mis
Un prlimitaEstabcargade arParaatribuarchivelem
Durasiguie
aspneperce
Si loselemespecprocenuev
Puedservidrequetamaespec
En elarchivguard
<%@ P
<!DOC"http
<scri
pro {
/
opiedad Posgar. Puede uiedad Contende contenidoner acceso alado, la propsma funcion
rocedimientoar el tamañoblezca un límarán. El límiterchivos mayoaumentar elutomaxReqvo permitidoento locatio
nte la cargaente:
et_wp.exe (Pent of availab
usuarios recento processcifica la canteso de trabajo para reem
e controlar sdor, mientraestLengthDisño del búfercificado no d
ejemplo devos en una rdar el archivo
Page Languag
CTYPE html Pp://www.w3.o
ipt runat "s
otected void
// Specify t
stedFile obtieutilizar esta pntLength obto MIME del ala propiedad
piedad FileNaalidad.
o para proteo de los archimite de tamañe de tamañoores establectamaño máuestLength eo para una pn del archivo
de archivos g
PID: 1520) wble RAM).
ciben este msModel del aidad de memjo rebasa la cplazarlo, y se
si el archivoas se procesaskThresholdr de la secuedebe exceder
código siguieruta de acceso en la ruta d
ge "C#" %>
PUBLIC " //Worg/TR/xhtml
erver">
d UploadButt
the path on
��
ene el objetopropiedad patiene la longarchivo. Tamd FileName,ame, la prop
egerse de losvos que pueño que sea ao predetermiciendo el atriximo de archen el archivoágina determo Web.config
grandes, un
was recycled b
mensaje de erarchivo Webmoria máximcantidad espe reasignan t
cargado se aa la solicitud,d del elementncia de entrar del valor es
ente se mueso que se espde acceso es
3C//DTD XHTM1/DTD/xhtml1
on Click(obj
the server t
��� �? � �
o HttpPostedara tener accgitud del archmbién puedela propiedad
piedad FileCo
ataques poreden cargarsedecuado panado es de 4ibutomaxRehivo permitido Web.configminada, defing.
usuario tam
because mem
rror, aument.config de la
ma que puedepecificada potodas las sol
almacena temestableciento httpRuntiada. El valorspecificado p
estra cómo crpecifica en especificada e
ML 1.0 Trans1 transition
ject sender,
to
��������
dFile subyaceceso a otras phivo. La proputilizar la prod InputStreaontent y el m
r denegacióne, por mediora los tipos d4096 KB (4 MequestLengthdo para la apg. Para aumena el atributo
bién podría
mory consum
te el valor deaplicación.e utilizar un pormemoryLiicitudes actu
mporalmentedo el atributme. Este atrpredeterminpara el atribu
rear un contl código. Sen el servidor
sitional//ENnal.dtd">
, EventArgs
�� %����
ente para elpropiedadespiedad Conteopiedad Posm y el métodmétodo SaveA
n de servicioo del controlde archivos qMB). Puede ph del elemenplicación comentar el tamaomaxReque
recibir el me
mption excee
el atributomEl atributomproceso de tmit, se creauales al nuev
e en la memtoibuto permitnado es 256utomaxRequ
rol FileUploallama al métr.
N"
e)
��� ��=��
archivo quedel archivo.
entType obtiestedFile parado SaveAs. PAs proporcio
consiste enFileUpload.que prevea qpermitir la canto httpRuntmpleta, definaño máximoestLength en
ensaje de err
eded 460 MB
memoryLimitmemoryLimittrabajo. Si elun procesovo proceso.
oria o en el
te administrabytes. El valuestLength
ad que guardtodo SaveAs
���:����
�"se vaLaene elaPoronan
que sergatime.na elden el
ror
B (60
en elt
ar ellor
da lospara
�
www.depurando.com 95
/S
///i{
}e{
}
} </scr
<html<head
<</hea<body
<<
<<
</bod</htm
En elarchivSyst
sistem
// save the String saveP
// Before at// on the fi// control cif (FileUplo{ // Get the String fil
// Append savePath +
// Call th // uploade // This ex // the nec // If a fi // already // the upl FileUpload
// Notify // was sav UploadStat
}else{ // Notify UploadStat
}
ript>
l >d id "Head1"<title>FileUad>y><form id "fo<div>
<h4>Selec
<asp:Filerunat
</asp:Fil
<br /><br
<asp:ButtTextOnClirunat
</asp:But
<hr />
<asp:Laberunat
</asp:Lab</div></form>dy>ml>
ejemplo devos en un ditem.Web.Ht
ma de archiv
uploaded fiPath @"c:\
ttempting to le, verify
contains a foad1.HasFile
e name of theName Fil
the name of + fileName;
he SaveAs meed file to txample does cessary errole with the
y exists in oaded file
d1.SaveAs(sav
the user of ved under. tusLabel.Tex
the user thtusLabel.Tex
runat "servUpload Examp
orm1" runat
ct a file to
eUpload id "t "server">eUpload>
r />
ton id "Uplo"Upload filck "UploadB
t "server">tton>
el id "Uploat "server">bel>
código siguierectorio espettpRequest
vos del direct
��
le to. temp\uploads
perform opethat the Filile.)
e file to upeUpload1.Fil
the file to
thod to savehe specifiednot perform r checking. same name
the specifieoverwrites ivePath);
the name of
t "Your fi
at a file wat "You did
ver">le</title>
"server">
upload:</h4
FileUpload1"
adButton"e"utton Click"
dStatusLabel
ente se mueecificado det.Physical
torio raíz par
��� �? � �
s\";
erationsleUpload
pload.leName;
o upload to
e thed path. all
ed path,it.
f the file
ile was save
as not upload not specif
4>
"
"
l"
estra cómo crl sistema delApplicati
ra la aplicaci
��������
the path.
ed as " + fi
aded.fy a file to
rear un contarchivos deionPath perón de servid
�� %����
ileName;
o upload.";
rol FileUploala aplicaciónrmite obtenedor actualme
��� ��=��
ad que guardn. La propieder la ruta físiente ejecutad
���:����
�)
da losdadca delda. Se
�
www.depurando.com 96
llamaservid
<%@ P
<!DOC"http
<scri
p{
}</scr
<html<head
<</hea<body
<<<
a al método Sdor.
Page Languag
CTYPE html Pp://www.w3.o
ipt runat "s
protected vo{ // Save // that // curre // Creat // files // users // uploa string s
// Get t // execu string a
// Befor // that if (File { stri
// C // u // T // t // I // a // t File
// N Uplo
} else { // N Uplo }
}ript>
l >d id "Head1"<title>FileUad>y><h3>FileUplo<form id "fo<div>
<h4>Selec
<asp:Filerunat
</asp:Fil
<br/><br/
<asp:ButtTextOnClirunat
SaveAs para
ge "C#" %>
PUBLIC " //Worg/TR/xhtml
erver">
oid UploadBu
the uploadealready exi
ently executting an "Upl in a separ from overw
ading files waveDir @"
the physical uting applicappPath Re
re attemptinthe FileUpl
eUpload1.Has
ng savePath Server.Html
Call the Savuploaded filThis example the necessarf a file wi
already existhe uploaded eUpload1.Sav
Notify the uoadStatusLab
Notify the uoadStatusLab
runat "servUpload Class
oad Class Exorm1" runat
ct a file to
eUpload id "t "server">eUpload>
>
ton id "Uplo"Upload filck "UploadB
t "server">
��
guardar el a
3C//DTD XHTM1/DTD/xhtml1
tton Click(o
d file to ansts in the fing ASP.NET oads" directate directorriting existwith names l\Uploads\";
file systemation.quest.Physic
g to save thoad control File)
appPath +Encode(FileU
eAs method te to the spedoes not pe
y error checth the same ts in the spfile overwr
eAs(savePath
ser that theel.Text "Y
ser that a fel.Text "Y
ver">Example</ti
ample: Save "server">
upload:</h4
FileUpload1"
adButton"e"utton Click"
��� �? � �
archivo en la
ML 1.0 Trans1 transition
object sende
n "Uploads" file system application
tory isolatery. This helting applicalike "Web.co
m path for t
calApplicati
he file, vercontains a
+ saveDir +Upload1.File
to save the ecified patherform all cking.name
pecified patrites it. h);
e file was uYour file wa
file was notYou did not
itle>
To Applicat
4>
"
"
��������
ruta de acce
sitional//ENnal.dtd">
er, EventArg
directoryof the
n.es uploaded lps preventation files onfig".
the currentl
ionPath;
rifyfile.
eName);
h.
th,
uploaded sucas uploaded
t uploaded.specify a f
tion Directo
�� %����
eso especific
N"
gs e)
by
ly
ccessfully.successfull
file to uplo
ory</h3>
��� ��=��
cada en el
y.";
oad.";
���:����
�*
�
www.depurando.com 97
<<
</bod</htm
En elarchivarchivla proarchivespecarchivelem
la apl
<%@ P
<!DOC"http
<scri
p{
uploa
</asp:But
<hr />
<asp:Laberunat
</asp:Lab</div></form>dy>ml>
ejemplo devos en una rvo que se puopiedad Convo que se cacificada del svo en el códmento http
licación.
Page Languag
CTYPE html Pp://www.w3.o
ipt runat "s
protected vo{ // Speci // save string s
// Befor // that if (File { // G int
// Aaded. if ( {
} else {
}
tton>
el id "Uploat "server">bel>
código siguieruta de accesuede cargar atentLength sarga es inferiservidor. Adeigo de la aplpRuntime en
ge "C#" %>
PUBLIC " //Worg/TR/xhtml
erver">
oid UploadBu
fy the path the uploadeavePath @
re attemptinthe FileUpl
eUpload1.Has
Get the size fileSize
Allow only f
fileSize <
// Append tsavePath +
// Call the // uploaded // This exam// the nece// If a fil// already // the uploFileUpload1
// Notify tUploadStatu
e
// Notify tUploadStatu
��
dStatusLabel
ente se mueso que se espa 5 MB. La psubyacente yor a 2 MB, seemás de comicación, puedn un tamaño
3C//DTD XHTM1/DTD/xhtml1
tton Click(o
on the servd file to. "c:\temp\upl
g to save thoad control File)
in bytes ofFileUpload1
iles less th
2100000)
he name of tServer.Html
SaveAs methfile to the
mple does nossary error e with the sexists in thaded file ov.SaveAs(save
he user thatsLabel.Text
he user why sLabel.Text
��� �? � �
l"
estra cómo crpecifica en eropiedad Poy devolver ee llama al mémprobar la code estableceo máximo pe
ML 1.0 Trans1 transition
object sende
ver to
loads\";
he file, vercontains a
f the file t.PostedFile.
han 2,100,00
the uploadedlEncode(File
hod to save e specified ot perform achecking.
same name he specifiedverwrites itePath);
t the file w "Your fil
their file "Your fil
"it excee
��������
rear un contl código. El cstedFile se ul tamaño delétodo SaveAonfiguracióner el atributormitido, en e
sitional//ENnal.dtd">
er, EventArg
rifyfile.
to upload. .ContentLeng
00 bytes (ap
d file to theUpload1.Fil
thepath.
all
d path,t.
was uploadedle was uploa
was not uplle was not ueds the 2 MB
�� %����
rol FileUploacontrol limitautiliza para ol archivo. Si eAs para guardde tamaño
omaxRequesel archivo de
N"
gs e)
gth;
pproximately
he path. leName);
d successfuladed success
loaded.uploaded becB size limit
��� ��=��
ad que guarda el tamañobtener accesel tamaño dedarlo en la rumáximo destLength dele configuraci
y 2 MB) to b
ly.fully.";
cause " +t.";
���:����
�
da losdeso aeluta
ón de
e
�
www.depurando.com 98
}</scr
<html<head
<</hea<body
<<
<<
</bod</htm
En elarchivarchivla extméto
<%@ P
<!DOC"http
<scri
p{
} else { // N Uplo }
}ript>
l >d id "Head1"<title>FileUad>y><form id "fo<div>
<h4>Selec
<asp:Filerunat
</asp:Fil
<br/><br/
<asp:ButtTextOnClirunat
</asp:But
<hr />
<asp:Laberunat
</asp:Lab
</div></form>dy>ml>
ejemplo devos en una rvos con la extensión del aodo SaveAs p
Page Languag
CTYPE html Pp://www.w3.o
ipt runat "s
protected vo{ // Speci // save string s
// Befor // that if (File { // G stri
// G stri
Notify the uoadStatusLab
runat "servUpload Class
orm1" runat
ct a file to
eUpload id "t "server">eUpload>
>
ton id "Uplo"Upload filck "UploadB
t "server">tton>
el id "Uploat "server">bel>
código siguieruta de accesxtensión .docarchivo que spara guardar
ge "C#" %>
PUBLIC " //Worg/TR/xhtml
erver">
oid UploadBt
fy the path the uploadeavePath @
re attemptinthe FileUpl
eUpload1.Has
Get the name ng fileName
Get the exteng extensio
��
ser that a fel.Text "Y
ver">Example</ti
"server">
upload:</h4
FileUpload1"
adButton"e"utton Click"
dStatusLabel
ente se mueso que se espc o .xls. Se llase carga. Si erlo en la ruta
3C//DTD XHTM1/DTD/xhtml1
n Click(obje
on the servd file to. "c:\temp\upl
g to save thoad control File)
of the file Server.Ht
nsion of then System.I
��� �? � �
file was notYou did not
itle>
4>
"
"
l"
estra cómo crpecifica en eama al métoel archivo tieespecificada
ML 1.0 Trans1 transition
ect sender,
ver to
loads";
he file, vercontains a
e to upload.tmlEncode(Fi
e uploaded fIO.Path.GetE
��������
t uploaded.specify a f
rear un contl código. Estdo Path.Gene una extena del servido
sitional//ENnal.dtd">
EventArgs e
rifyfile.
.ileUpload1.F
file.Extension(fi
�� %����
file to uplo
rol FileUploae ejemplo sóetExtensio
nsión .doc oor.
N"
e)
FileName);
ileName);
��� ��=��
oad.";
ad que guardólo permite con para devo.xls, se llama
���:����
��
da loscargarolvera al
�
www.depurando.com 99
}
</scr
<html<head
<</hea<body
<<
<<
</bod</htm
usingusingusingusingusingusingpubli{
p{
// A // t if ( {
} else {
}
}
}
ript>
l >d id "Head1"<title>FileUad>y><form id "fo<div>
<h4>Sele
<asp:Filruna
</asp:Fi
<br/><br
<asp:ButTextOnClruna
</asp:Bu
<hr />
<asp:Labruna
</asp:La</div></form>dy>ml>
g System.Webg System.Webg System.Webg System.Webg System.Webg System.Webic partial c
protected vo{
if (File
Allow only fto be upload(extension
// Append tsavePath +
// Call the // uploaded // This exam// the nece// If a fil// already // the uploFileUpload1
// Notify tUploadStatu
e
// Notify tUploadStatu
runat "servUpload Class
orm1" runat
ect a file t
eUpload idat "server">leUpload>
r/>
tton id "Uplt "Upload fiick "Upload
at "server">utton>
bel id "Uploat "server">abel>
b;b.Security;b.UI;b.UI.WebContb.UI.WebContb.UI.HtmlConclass FileUp
oid Button1
eUpload1.Has
��
iles with .ded.
".doc")
he name of tfileName;
SaveAs methfile to the
mple does nossary error e with the sexists in thaded file ov.SaveAs(save
he user thatsLabel.Text
he user why sLabel.Text
ver">Example</ti
"server">
o upload:</h
"FileUpload1
oadBtn"le"Btn Click"
adStatusLabe
rols;rols.WebParttrols;load : Syste
Click(object
File)
��� �? � �
doc or .xls
| (extension
the file to
hod to save e specified ot perform achecking.
same name he specifiedverwrites itePath);
t their file "Your fil
their file "Your fil
"it does
itle>
h4>
1"
el"
ts;
em.Web.UI.Pa
t sender, Ev
��������
extensions
n ".xls")
upload to t
thepath.
all
d path,t.
e was succesle was uploa
was not uplle was not unot have a
age
ventArgs e)
�� %����
)
the path.
ssfully uploaded success
loaded.uploaded bec.doc or .xl
��� ��=��
oaded.fully.";
cause " +s extension
���:����
��
.";
�
www.depurando.com 100
}}
PanRepreconteprogr
La prmost
El concompmostespec
<%@ P<!DOC
"<html<hea
<<scri
{ Labe + File +
"<br +
"Fil + File +
"<br +
"MIM + Fi File MapP }
else { Labe }
}
nelesenta un coenedor de otramación, oc
opiedad Direrar texto par
ntrol Panel pportamientorar una imagcificar las ba
Page LanguagCTYPE html P"http://www.l >ad><title>Panelipt runat "s
el1.Text "
eUpload1.Fil
r />"
e Name: "
eUpload1.Fil
r />"
ME Type: " leUpload1.P
eUpload1.SavPath("~/Uplo
el1.Text "N
ontrol que actros controlecultar o most
ection es útilra idiomas q
proporcionay la presentgen personalrras de desp
ge "C#" AutoPUBLIC " //Ww3.org/TR/x
Example</terver">
��
File Length
eBytes.Lengt
eName
ostedFile.CoeAs(ads/" + File
No file rece
ctúa como coes. Resulta estrar un grupo
l para adaptaue se escribe
varias propieación de su clizada del coplazamiento d
EventWireup3C//DTD XHTMhtml1/DTD/xh
itle>
��� �? � �
: "
th
ontentType;
eUpload1.Fil
eived.";
ontenedor despecialmenteo de controle
ar el contenien de derech
edades quecontenido. Untrol Panel.del control.
"True" %> ML 1.0 Transhtml1 transi
��������
leName));
e otros contre útil si desees o adaptar
do de un conha a izquierd
le permitenUtilice la propUtilice la pro
sitional//ENitional.dtd"
�� %����
roles. El conta generar cor un grupo de
ntrol Panel cda, como el á
personalizarpiedad Backopiedad Scro
N"">
��� ��=��
trol Panel esontroles mede controles.
con el fin deárabe o el he
r elImageUrl paollBars para
���:����
��
s undiante
breo.
ra
�
www.depurando.com 101
<
</he<bod
<
<
void Page
// Sho
if (Ch Pan } else { Pan }
// Gen
int nu
for (i Lab l.T l.I Pan Pan }
// Gen
int nu
for (i Tex t.T t.I Pan Pan } }
</script>
ead>dy>
<h3>Panel Ex
<form id "fo
<asp:PaneBackHeigWidt
Pane<br
</asp:Pan
<br />
Generate <asp:Drop
<asp:L<asp:L<asp:L<asp:L<asp:L
</asp:Dro
<br />
Generate <asp:Drop
<asp:L<asp:L<asp:L<asp:L<asp:L
</asp:Dro
e Load(Objec
ow or hide t
heck1.Checkenel1.Visible
nel1.Visible
nerate the L
umlabels I
nt i 1; i<bel l new Text "LabeD "Label"
nel1.Controlnel1.Control
nerate the T
umtexts In
nt i 1; i<xtBox t newText "TextD "TextBo
nel1.Controlnel1.Control
xample</h3>
orm1" runat
el id "PanelkColor "gainght "200px"th "300px">
el1: Here is />
nel>
Labels:pDownList idListItem ValListItem ValListItem ValListItem ValListItem ValopDownList>
TextBoxes:pDownList idListItem ValListItem ValListItem ValListItem ValListItem ValopDownList>
��
t sender, Ev
he Panel con
d) { false;
true;
abel control
nt32.Parse(D
numlabels; iLabel();l" + (i).ToS+ (i).ToStr
s.Add(l);s.Add(new Li
extbox contr
t32.Parse(Dr
numtexts; i+w TextBox();Box" + (i).Tx" + (i).ToSs.Add(t);s.Add(new Li
"server">
1" runat "sesboro"
some static
"DropDown1"ue "0">0</asue "1">1</asue "2">2</asue "3">3</asue "4">4</as
"DropDown2"ue "0">0</asue "1">1</asue "2">2</asue "3">3</asue "4">4</as
��� �? � �
ventArgs e)
ntents.
ls.
DropDown1.Se
i++) {
String();ring();
iteralContro
rols.
ropDown2.Sel
++) { ;ToString();String();
iteralContro
erver"
c content...
" runat "sersp:ListItem>sp:ListItem>sp:ListItem>sp:ListItem>sp:ListItem>
" runat "sersp:ListItem>sp:ListItem>sp:ListItem>sp:ListItem>sp:ListItem>
��������
{
electedItem.
ol("<br />")
lectedItem.V
ol("<br />")
.
rver">>>>>>
rver">>>>>>
�� %����
Value);
);
Value);
);
��� ��=�����:����
��
�
www.depurando.com 102
<
</bo</ht
usingusingusingusingusingusingusingusingusingpubli{
p{
}p{
}p{
}}
<br /><asp:Chec
<br /><asp:Butt
</form>
ody>tml>
g System.Datg System.Cong System.Colg System.Webg System.Webg System.Webg System.Webg System.Webg System.Webic partial c
protected vo{ Panel1.V
}protected vo{
Unit lef left n Panel1.S
}protected vo{
Unit lef left n Panel1.S
}
ckBox id "Ch
ton ID "Butt
ta;nfiguration;lections;
b;b.Security;b.UI;b.UI.WebContb.UI.WebContb.UI.HtmlConclass Panel
oid Button2
Visible !P
oid Button3
ft new Uninew Unit((dotyle["left"
oid Button4
ft new Uninew Unit((dotyle["left"
��
eck1" Text "
on1" Text "R
rols;rols.WebParttrols;Control : Sy
Click(object
anel1.Visibl
Click(object
t(Panel1.Styuble)left.Va] left.ToS
Click(object
t(Panel1.Styuble)left.Va] left.ToS
��� �? � �
"Hide Panel"
Refresh Pane
ts;
ystem.Web.UI
t sender, Ev
le;
t sender, Ev
yle["left"])alue 10, lString();
t sender, Ev
yle["left"])alue + 10, lString();
��������
" runat "ser
el" runat "s
I.Page
ventArgs e)
ventArgs e)
);left.Type);
ventArgs e)
);left.Type);
�� %����
rver"/>
server"/>
��� ��=�����:����
��
�
www.depurando.com 103
<html<head
<
Syste
Syste
<
</hea<body
<
<
l>d>
<script lang
void Pag
// S
if (
} else
}
// G
int
for
em.Web.UI.We
}
// G
int
for
em.Web.UI.We
} }
</script>
ad>y>
<h3><font fa
<form runat
<asp:Pan Back Heig Widt
Pane<p>
</asp:Pa
<p>
Generate<asp:Dro
<asp<asp<asp<asp<asp
</asp:Dr
<br>
Generate<asp:Dro
guage "C#" r
ge Load(Obje
how/Hide Pa
Check1.ChecPanel1.Visib
e { Panel1.Visib
Generate lab
numlabels
(int i 1; iSystem.Web.
ebControls.Ll.Text "Ll.ID "LabPanel1.ContPanel1.Cont
Generate tex
numtexts
(int i 1; iSystem.Web.
ebControls.Tt.Text "Tt.ID "TexPanel1.ContPanel1.Cont
ace "Verdana
server>
nel id="PanekColor="gainght="200px"th="300px">
el1: Here is
anel>
e Labels: opDownList idp:ListItem Vp:ListItem Vp:ListItem Vp:ListItem Vp:ListItem VropDownList>
e TextBoxes: opDownList id
��
unat "server
ct sender, E
nel Contents
ked) { ble false;
ble true;
el controls
int.Parse(D
< numlabels;UI.WebControabel();abel" + i.Toel" + i.ToStrols.Add(l);rols.Add(new
tbox control
int.Parse(Dr
< numtexts;UI.WebControextBox();extBox" + itBox" + i.Torols.Add(t);rols.Add(new
">Panel Exam
l1" runat="ssboro"
some static
d=DropDown1alue="0">0</alue="1">1</alue="2">2</alue="3">3</alue="4">4</
d=DropDown2
��� �? � �
r">
EventArgs e)
s
DropDown1.Se
; i++) { ols.Label l
oString();tring();;w LiteralCon
ls
ropDown2.Sel
i++) { ols.TextBox
.ToString();oString();;w LiteralCon
mple</font><
server"
c content...
runat="serv/asp:ListIte/asp:ListIte/asp:ListIte/asp:ListIte/asp:ListIte
runat="serv
��������
) {
electedItem.
new
ntrol("<br>"
lectedItem.V
t new
;
ntrol("<br>"
</h3>
.
ver">em>em>em>em>em>
ver">
�� %����
Value);
"));
Value);
"));
��� ��=�����:����
�!
�
www.depurando.com 104
<<
</bod</htm
Mul
MulRepreMultcontraplicacomoparámasisterepredesarun coestá dclientvistacontecontrejecu
La vispropise proprimecómo
<asp:
Si la pal mérepreprefe
<asp<asp<asp<asp<asp
</asp:Dr
<p><asp:Che
<p><asp:But
</font></form>
dy>ml>
ltiView y
tiviewesenta un coiView es unroles View enación puedeo la identidadmetro de cadentes. En estesenta un parrollar aplicaontrol View adefinido comte. Puede utiactiva. Si la penido en el crolMultiViewución.
sta activa seiedad Activeovoca que eera vez que so establecer
:MultiView id
propiedad Acétodo SetActesentar en elerencias del u
p:ListItem Vp:ListItem Vp:ListItem Vp:ListItem Vp:ListItem VropDownList>
eckBox id="Ch
tton Text="Re
y View
ontrol que accontenedorn el que cadarepresentard del usuariodena de conste escenario,so o páginaciones de ma la vez comomo la vista acilizar la proppropiedad Acliente. Si la vw, se produc
puede defineViewIndex sl control Viese llama al cola propiedad
d="MultiView
ctiveViewIndtiveView, lacliente en tusuario.
��
alue="0">0</alue="1">1</alue="2">2</alue="3">3</alue="4">4</
heck1" Text=
efresh Panel
ctúa como copara un grupa control Vier un control Vo, las preferesulta. El cont, cada controdiferente deúltiples panto vista activactiva, los conpiedad ActiveActiveViewInvista activa sce una excep
ir mediantese establecew establecidontrolMultiVd ActiveView
w1" ActiveVi
dex se estabaplicación puiempo de eje
��� �? � �
/asp:ListIte/asp:ListIte/asp:ListIte/asp:ListIte/asp:ListIte
="Hide Panel
l" runat="se
ontenedor depo de controew contieneView concreencias del ustrolMultiVieol View conteel asistente. Etallas para da en un contntroles secuneViewIndex odex está vace establecepción Argume
programaciómediante dedo como la vView. En el ewIndexmedi
iewIndex=0
blece medianuede determecución segú
��������
em>em>em>em>em>
l" runat="se
erver"/>
e un grupo doles View. Pecontroles seto en el clienuario e inforew también senido en unEste controlispositivos mrolMultiViewndarios que co el métodocía, el controen un controentOutOfRan
ón o medianeclaración alista activa seejemplo de cante declara
runat="Serve
nte programaminar qué coún criterios c
�� %����
erver"/>
de controlesermite definiecundarios. Ante basándosrmación pasase puede uticontrolMultambién se dmóviles. Sólow. Cuando ucontiene se rSetActiveVieolMultiViewol View quengeException
te declaraciól definir el coe representecódigo siguieación.
er">
ación o medintrol View secomo la ident
��� ��=��
View. El conir un grupo dA continuacióse en criterioada en unlizar para crtiViewdebe utilizarse puede de
un control Virepresentanew para defino represenno existe enn en tiempo
ón. Si laontrolMultiVe en el clienteente se mues
iante una llae va atidad o las
���:����
�"
troldeón, laos
ear
paraefinirewen elnir lantaelde
View,e lastra
mada
�
www.depurando.com 105
ParaMultaprovactuael valcompNextVSwitc
En eluna eCuanActivclic eaume
<%@ P
<!DOC"
<html<head
<<scri
pro {
///i
permitir a loiView, puedvecharse dealmente activlor de uno deportamientoViewCommachViewByInd
ejemplo deencuesta básdo el usuarioveViewIndexn el botón Senta para de
Page Languag
CTYPE html P"http://www.l >d><title>Multiipt runat "s
otected void
// Determine// and set t// the view if (DevPollM
os usuarios de agregar unla actualizacvo, establezce los camposde desplaza
andName, SwexCommand
código siguiesica. Cada coo hace clic enx disminuye piguiente en csplazarse al
ge "C#" %>
PUBLIC " //Ww3.org/TR/x
View ActiveVerver">
d NextButton
e which buttthe ActiveViselected by
MultiView.Ac
��
esplazarse en control Linkción automátca la propieds de nombremiento desewitchViewBydName.
ente se muentrol View en el botón Apara desplazcualquier pácontrol View
3C//DTD XHTMhtml1/DTD/xh
ViewIndex Ex
Command(obj
on was clickewIndex propthe user.
tiveViewInde
��� �? � �
entre los conkButton o Butica en el condad Commande comando
eado: PrevioIDCommand
estra cómo ues una pregunterior en cuarse al contrgina, el valow siguiente.
ML 1.0 Transhtml1 transi
xample</titl
ject sender,
kedperty to
ex > 1 & De
��������
troles Viewutton a cadantrolMultiVindName delo siguientesusViewCommdName o
tilizar un connta indepenualquier págrol View anter de la propi
sitional//ENitional.dtd"
le>
, EventArgs
evPollMultiV
�� %����
dentro de uncontrol Viewiew del contbotón o botque correspmandName,
ntrolMultiVdiente de lagina, el valorerior. Cuandedad ActiveV
N"">
e)
View.ActiveV
��� ��=��
n controlw. Paratrol Viewón de vínculonda al
iew para creencuesta.de la propieo el usuarioViewIndex
ViewIndex <
���:����
�)
o en
ear
edadhace
3)
�
www.depurando.com 106
{
}e{
}e{
} }
pro {
i{
}e{
}e{
} }
</s
</hea<body
<
{ // Increme // by one DevPollMul
}else if (Dev{ // This is // The use // Insert // Disable Page4Save. Page4Resta
}else{ throw new
}
otected void
if (DevPollM{ // Decreme // by one DevPollMul
}else if (Dev{ // This is // The use // Return DevPollMul
}else{ throw new
}
script>
ad>y><form id "Fo
<h3>Mult
<asp:PanWidtHeigHoriFontBackBordBordruna
<asp
ent the Activto advance tiView.Activ
vPollMultiVi
the final ver wants to code here t
e the navigaEnabled f
art.Enabled
Exception("A
d BackButton
MultiView.Ac
ent the Activto return ttiView.Activ
vPollMultiVi
the final ver wants to to the firstiView.Activ
Exception("A
orm1" runat
tiView Activ
nel id "Pageth "330px"ght "150px"zontalAlign
t size "12"kColor "#C0CderColor "#4derStyle "Doat "Server">
p:MultiViewActiveViewIrunat "Serv
<asp:View irunat "
<asp:LabFonTexrunAss
</asp:L
<asp:RaTeChGr
��
veViewIndexto the next veViewIndex
ew.ActiveVie
view.save the suro save survetion buttonsalse; false;
An error occ
Command(obj
tiveViewInde
veViewIndexo the previoveViewIndex
ew.ActiveVie
view.restart the t view. veViewIndex
An error occ
"Server">
eViewIndex E
1ViewPanel"
"Left"
0FF"04040"uble"
id "DevPollMndex "0"er">
d "Page1"Server">
bel id "Paget bold "truet "What kindat "Server"ociatedContrabel><br /><
dioButton idxt "Web Applecked "FalseoupName "Rad
��� �? � �
propertyview.+ 1;
ewIndex 3
rvey resultsey results.s.
curred.");
ject sender,
ex > 0 & Dev
propertyous view.
1;
ewIndex 3
survey.
0;
curred.");
Example</h3>
MultiView"
e1Label"e"d of applica
rolID "Page1<br />
d "Page1Radilications"e"dioGroup1"
��������
3)
s.
, EventArgs
vPollMultiVi
3)
>
ations do yo
1">
io1"
�� %����
e)
iew.ActiveVi
ou develop?"
��� ��=��
ewIndex <
���:����
�*
2)
�
www.depurando.com 107
ru</asp:R
<asp:RaTeChGrru
</asp:
<asp:BuTexOnCHeiWidrun
</asp:B
</asp:View>
<asp:View irunat "
<asp:LabFonTexrunAss
</asp:L
<asp:RaTeChGrru
</asp:
<asp:RaTeChGrru
</asp:
<asp:BuTexOnCHeiWidrun
</asp:B
<asp:BuTexOnCHeiWidrun
</asp:B
</asp:View>
<asp:View irunat "
<asp:LabFonTexrunAss
</asp:L
<asp:RaTeChGrru
��
nat "server"adioButton><
dioButton idxt "Windowsecked "FalseoupName "Radnat "server"RadioButton>
tton id "Pagt "Next"lick "NextBught "25"th "70"at "Server"utton>
d "Page2"Server">
bel id "Paget bold "truet "How long at "Server"ociatedContrabel><br /><
dioButton idxt "Less thaecked "FalseoupName "Radnat "Server"RadioButton>
dioButton idxt "More thaecked "FalseoupName "Radnat "Server"RadioButton>
tton id "Pagt "Previoulick "BackBught "25"th "70"at "Server"utton>
tton id "Pagt "Next"lick "NextBught "25"th "70"at "Server">utton>
d "Page3"Server">
bel id "Paget bold "truet "What is at "Server"ociatedContrabel><br /><
dioButton idxt "Visual Becked "FalseoupName "Radnat "Server"
��� �? � �
" ><br />
d "Page1RadiForms Appli
e"dioGroup1"" >><br /><br /
ge1Next"
utton Comman
">
e2Label"e"have you be
rolID "Page2<br />
d "Page2Radian five yeare"dioGroup1"">><br />
d "Page2Radian five yeare"dioGroup1"">><br /><br /
ge2Back"us"utton Comman
">
ge2Next"
utton Comman
>
e3Label1"e"your primar
rolID "Page3<br />
d "Page3RadiBasic .NET"e"dioGroup1"">
��������
io2"ications"
/><br />
nd"
een a develo
2">
io1"rs"
io2"rs"
/><br />
nd"
nd"
ry programmi
3">
io1"
�� %����
oper?"
ing language
��� ��=��
e?"
���:����
�
�
www.depurando.com 108
<</bod</htm
usingusingusingusingusing
</as
</asp:Pa
</form>dy>ml>
g System; g System.Datg System.Cong System.Colg System.Web
</asp:
<asp:RaTeChGrru
</asp:
<asp:RaTeChGrru
</asp:
<asp:BTexOnCHeiWidrun
</asp:B
<asp:BuTexOnCHeiWidrun
</asp:B
</asp:View>
<asp:View irunat "
<asp:LabFonTexrunAss
</asp:L
<br /><b
<asp:BuTexOnCHeiWidrun
</asp:B
<asp:BuTexOnCHeiWidrun
</asp:B
</asp:View>
p:MultiView
anel>
ta;nfiguration;lections;
b;
��
RadioButton>
dioButton idxt "C#"ecked "FalseoupName "Radnat "Server"RadioButton>
dioButton idxt "C++"ecked "FalseoupName "Radnat "Server"RadioButton>
utton id "Pat "Previoulick "BackBught "25"th "70"at "Server">utton>
tton id "Pagt "Next"lick "NextBught "25"th "70"at "Server">utton><br />
d "Page4"Server">
bel id "Labet bold "truet "Thank yat "Server"ociatedContrabel>
br /><br /><
tton id "Pagt "Save Relick "NextBught "25"th "110"at "Server">utton>
tton id "Pagt "Retakelick "BackBught "25"th "110"at "Server"utton>
>
��� �? � �
><br />
d "Page3Radi
e"dioGroup1"">><br />
d "Page3Radi
e"dioGroup1"">><br /><br /
age3Back"us"utton Comman
>
ge3Next"
utton Comman
>>
el1"e"you for taki
rolID "Page4
<br /><br />
ge4Save"esponses"utton Comman
>
ge4Restart"Survey"
utton Comman
">
��������
io2"
io3"
/>
nd"
nd"
ing the surv
4">
><br />
nd"
nd"
�� %����
vey."
��� ��=�����:����
��
�
www.depurando.com 109
usingusingusingusingusingpubli{
p{
}p{
}p{
}p{
}}
g System.Webg System.Webg System.Webg System.Webg System.Webic partial c
protected vo{ MultiVie
}protected vo{ MultiVie
}protected vo{ MultiVie
}protected vo{
if (!IsP { Mult }
}
b.Security;b.UI;b.UI.WebContb.UI.WebContb.UI.HtmlConclass MultiV
oid Button1
ew1.ActiveVi
oid Button2
ew1.ActiveVi
oid Button3
ew1.SetActiv
oid Page Loa
PostBack)
tiView1.Activ
��
rols;rols.WebParttrols;iew and View
Click(object
ewIndex 1;
Click(object
ewIndex 2;
Click(object
eView((View)
d(object sen
veViewIndex
��� �? � �
ts;
w Controls :
t sender, Ev
;
t sender, Ev
;
t sender, Ev
)MultiView1.
nder, EventA
0;
��������
: System.Web
ventArgs e)
ventArgs e)
ventArgs e)
.FindControl
Args e)
�� %����
b.UI.Page
l("View1"));
��� ��=�����:����
��
�
www.depurando.com 110
<%@ P<!DOC"http<scri
p{
}
</scr<html<head
<</hea<body
<
OnSel
</str
Navig
Navig
<</bod</htm
ViewReprecontr
El conestarcomo
La prde uncuanddeterrepre
Page LanguagCTYPE html Pp://www.w3.oipt runat "s
protected vo{ MultiVie
}
ript>l xmlns "httd id "Head1"<title>Untitad>y><form id "fo
<div><h3>
</h3<asp
lectedIndexC
</as<hr<asp
rong>
gateUrl="htt
gateUrl="htt
</as</form>dy>ml>
wesenta un corol MultiView
ntrol View econtenido d
o vista activa
opiedad Actn controlMudo el controrminar si unesentan en e
ge="C#" %>PUBLIC " //Worg/TR/xhtmlerver">
oid DropDown
ew1.ActiveVi
tp://www.w3. runat "serv
tled Page</t
orm1" runat
><font face>
p:DropDownLiChanged="Drop<asp:ListIte<asp:ListIte<asp:ListIte
sp:DropDownL/>
p:MultiView<asp:View ID Now show
<asp:Tex
<asp:Bu<asp:View ID Now show
<asp:Hyptp://www.asp
<asp:Hyptp://www.asp<asp:View ID Now show
<asp:Ca</asp:View>
sp:MultiView
ontrol que acw.
s un contenedentro de una en un contr
iveViewIndeultiView. El clMultiViewcontrol Viewl cliente.
��
3C//DTD XHTM1/DTD/xhtml1
List1 Select
ewIndex Co
org/1999/xhtver">itle>
"server">
"Verdana">Mu
st ID="DropDpDownList1 Sem Value="0"em Value="1"em Value="2"ist><br />
ID="MultiVieD="View1" ruwing View #1xtBox ID="Te
tton ID="ButD="View2" ruwing View #2perLink ID=".net">HyperLperLink ID=".net">HyperLD="View3" ruwing View #3lendar ID="C
></div>
ctúa como co
edor de un gn controlMurolMultiView
ex especificacontrol de viscontenedorw y sus contr
��� �? � �
ML 1.0 Trans1 transition
tedIndexChan
onvert.ToInt
tml">
ultiView wit
DownList1" rSelectedInde">View 1</as">View 2</as">View 3</as
ew1" runat="unat="server1<br />extBox1" run
tton1" runatunat="server2<br />"HyperLink1"Link</asp:Hy"HyperLink2"Link</asp:Hyunat="server3<br />Calendar1" r
ontenedor de
grupo de conltiView. Sólow.
el control Vista activa seesté visible.roles secunda
��������
sitional//ENnal.dtd">
nged(object
t32(DropDown
th 3 Views</
runat="serveexChanged">sp:ListItem>sp:ListItem>sp:ListItem>
"server" Actr">
nat="server"
t="server" Tr">
" runat="seryperLink>" runat="seryperLink></ar">
runat="serve
e un grupo d
troles. Un coo se puede d
ew activo derepresenta eUtilice la prarios están v
�� %����
N"
sender, Eve
nList1.Selec
/font>
er" AutoPost
>>>
tiveViewInde
"></asp:Text
Text="Button
rver"
rver"asp:View>
er"></asp:Ca
de controles
ontrol View sefinir un con
entro de la cen el cliente,opiedad Visivisibles en la
��� ��=��
entArgs e)
ctedValue);
tBack="True"
ex="0">
tBox><strong
n" /></asp:V
alendar>
contenidos e
siempre debntrol View a
colección Vie, siempre yble parapágina y se
���:����
��
>
iew>
en un
bela vez
ews
�
www.depurando.com 111
Un coMultView
La clacuandpropicontrcuandActiv
ParaMultpropidesee
WizPropovario
�
�
�
El con
�
�
�
�
Pued
�
�
�
ontrol View piView. Un co
w, agregue un
ase View prodo el controiedad Activerol View difedo cambie lavate para Vie
permitir a loiView, puediedad Comme desplazars
zardorciona expls pasos. Pue
Recopilar
Separar edatos pro
Permitir l
ntrolWizard
Una coleccada paso
Funcionemostrar e
Un área dconcreta
Un área dpasos del
e utilizar el c
Recopilar
Separar edatos pro
Permitir l
puede conteontrol View nno o más con
oporciona losl View actuaeViewIndex cerente. Por eja propiedad Aew2 y el even
os usuarios de agregar un
mandName de.
oración y unede utilizar el
r datos relac
en pasos lógioporcionado
la exploració
d está formad
cción Wizardo, según lo d
es de desplazen función d
de encabezapara el paso
de barra latel control.
controlWiza
r datos relac
en pasos lógioporcionado
la exploració
��
ener controleno admite prntroles Panel
s eventos Acl se conviertcambia o sejemplo, si ViActiveViewInto Deactiva
esplazarse en control Linkdel control Li
na interfaz del controlWiz
ionados en v
icos menoress por el usua
ón lineal o no
do por los co
dStepCollectidefinido por e
zamiento inteel valor de S
do que se puo en el que se
eral que se pu
ard para:
ionados en v
icos menoress por el usua
ón lineal o no
��� �? � �
es de cualquropiedades dl al control V
tivate y Deate en la vistallama al métew1 es la visndex para este para View
entre varios ckButton o BunkButton o
e usuario (IUzard para:
varios pasos.
s una páginaario.
o lineal en lo
omponentes
ion de pasosel desarrolla
egradas quetepType.
uede persone encuentra
uede utilizar
varios pasos.
s una páginaario.
o lineal en lo
��������
ier tipo, include estilo. ParView.
ctivate. Se pactiva. Estotodo SetActivsta activa enspecificar View1.
controles Vieutton a cadaButton en el
) para recop
a Web mayor
s pasos.
siguientes:
s que contiendor de págin
determinan
alizar con elel usuario.
r para despla
a Web mayor
s pasos.
�� %����
uidos otros cra aplicar est
rovoca el evocurre cuanveView paraun controlMew2, se gene
ew contenidocontrol Viewl Id. del cont
pilar datos re
r utilizada pa
nen la interfanas.
n los botones
fin de mostr
azarse rápida
r utilizada pa
��� ��=��
controlestilos a un con
ento Activatndo el valor despecificar uMultiView,erará el even
os en un conw. Establezcarol View al q
lacionados e
ara recopilar
az de usuario
s adecuados
rar informac
amente por l
ara recopilar
���:����
��ntrol
tede laun
nto
ntrola laque
en
o para
para
ión
os
�
www.depurando.com 112
El con
�
�
�
�
Pueddinám
El aspy conSideBStepN
TengaInternInternde m
El signombseparpeticStep2Wizapropi
<%@ P
<!DOC"http<html<head
<</hea<body
<<
OnAct
to fa
ntrolWizard
Una coleccada paso
Funcionemostrar e
Un área dconcreta
Un área dpasos del
e utilizar el mmicamente e
pecto del connfiguración dBarTemplateNavigationTe
a en cuentanet Explorernet Exploreranera prede
uiente ejembre y la direcrado. Si el usión para agre2 a Finish. Enrd haciendoiedad AllowR
Page Languag
CTYPE html Pp://www.w3.ol>d id "Head1"<title>ASP.Nad>y><form id "fo<asp:Wizard
BackColoBorderCo
tiveStepChan<StepSty<WizardS
<asp
alse,
d está formad
cción Wizardo, según lo d
es de desplazen función d
de encabezapara el paso
de barra latel control.
método Movel paso que s
ntrolWizarde estilo. Por, StartNavigaemplate para
que el contrr para el modr utilizando eeterminada e
plo de códigcción del ususuario no selegar una diren el paso Finiclic en GoBaReturn de St
ge "C#" Code
PUBLIC " //Worg/TR/xhtml
runat "servNET Example<
orm1" runatID "Wizard1
or "#EFF3FB"olor "#B5C7Dnged "OnActivyle ForeColoteps>
p:WizardStepWelcome to
so after yo
��
do por los co
dStepCollectidefinido por e
zamiento inteel valor de S
do que se puo en el que se
eral que se pu
veTo o la proe muestra ac
d es totalmenejemplo, puationTemplaa personaliza
olWizard nodo no estándel controlWizen Visual We
o muestra cóuario, con la oecciona Sepaección de enish, el usuariackButton; step1 está est
File "Wizard
3C//DTD XHTM1/DTD/xhtml1
ver">/title>
"server">" runat "serFont Names
E" Style "foveStepChanger "#333333"
ID "Step1"the Wizard e
u leave this
��� �? � �
omponentes
ion de pasosel desarrolla
egradas quetepType.
uede persone encuentra
uede utilizar
opiedad Activctualmente
nte personaluede utilizarate, FinishNaar la interfaz
o admite la rdar o quirks.zard, use elb Developer
ómo definiropción de esarateShippinnvío separado tiene la opsin embargo,tablecida en
dClass.cs" I
ML 1.0 Trans1 transition
rver" OnFini"Verdana" F
ont size: meed">Font Size "
Title "One"example. Thi
s step you w
��������
siguientes:
s que contiendor de págin
determinan
alizar con elel usuario.
r para despla
veStepIndexen el control
izable a travlas propiedaavigationTemdel controlW
representacióPara obtenetipo de docur y en Visual
un controlWscribir una dingCheckBoxa, el controlpción de volvlleva al usuafalse.
Inherits "Wi
sitional//ENnal.dtd">
ishButtonCliFont Size "0edium; font
"0.8em" />
" AllowReturis step's Al
will not be
�� %����
nen la interfanas.
n los botones
fin de mostr
azarse rápida
x para cambilWizard.
és de las plaades HeaderTmplate yWizard.
ón especial der la mejor reumento XHTMStudio.
Wizard para rirección de ey, por lo tanWizard pasaver al principario a Step2,
izardClasscs
N"
ick "OnFinis0.8em" Bordefamily: Ver
rn "false" rllowReturn p
able to ret
��� ��=��
az de usuario
s adecuados
rar informac
amente por l
ar
ntillas, máscTemplate,
de MicrosoftepresentacióML, que se a
recopilar elenvío pornto, envía una directamenpio del contro, porque la
aspx" %>
hButtonClicerWidth "1pxrdana;"
runat "serveproperty is
turn to it.
���:����
��o para
para
ión
os
caras
tón degrega
ante deol
k""
r">set
�
www.depurando.com 113
/>
Heigh
Heigh
Heigh
/>
/>
check
>
Heigh
Heigh
Heigh
OnCli
</as<asp
ht "17px" />
ht "17px" />
ht "17px" />
k here if yo</as<asp
ht "17px" />
ht "17px" />
ht "17px" />
</as<asp
ick "OnGoBac
p:WizardStepp:WizardStep<! ... PuPlease ente<br />Name:<br /><asp:TextBo
<br />E mail Addr<asp:TextBo
><br />Address Lin<br /><asp:TextBo
><br />Address Lin<br /><asp:TextBo
><br />City:<br /><asp:TextBo
<br />State:<br /><asp:TextBo
<br />ZIP Code: <br /><asp:TextBo<br /><br /><asp:CheckB
ou would likp:WizardStep
p:WizardStep<! Gather
Please ente<br />Name:<br /><asp:TextBo<br />Address Lin<br /><asp:TextBo
><br />Address Lin<br /><asp:TextBo
><br />City:<br /><asp:TextBo<br />State:<br /><asp:TextBo
><br />ZIP Code: <br /><asp:TextBop:WizardStep
p:WizardStep<! Put UI <asp:Button
ckButtonClic
��
p>ID "Step2"
t UI elementr your billi
x runat "ser
ess:<br />x runat "ser
e 1:
x runat "ser
e 2:
x runat "ser
x runat "ser
x runat "ser
x runat "ser
ox runat "see to add a sp>ID "Step3"the shippin
r your shipp
x runat "ser
e 1:
x runat "ser
e 2:
x runat "ser
x runat "ser
x runat "ser
x runat "serp>ID "Finish"elements herunat "serv
k"
��� �? � �
Title "Two"ts here ... ing informat
rver" ID "Bi
rver" ID "Em
rver" ID "Bi
rver" ID "Bi
rver" ID "Bi
rver" ID "Bi
rver" ID "Bi
erver" ID "Sseparate shi
Title "Threng address i
ping informa
rver" ID "Sh
rver" ID "Sh
rver" ID "Sh
rver" ID "Sh
rver" ID "Sh
rver" ID "Sh
" Title "Finere for the ver" ID "GoB
��������
" runat "ser>
tion.
illingName"
mailAddress"
illingAddres
illingAddres
illingCity"
illingState"
illingZip" H
SeparateShipipping addre
ee" runat "sin this step
ation.
hippingName"
hippingAddre
hippingAddre
hippingCity"
hippingState
hippingZip"
nish" runatFinish step
BackButton"
�� %����
rver">
Width "226p
" Width "224
ssLine1" Wid
ssLine2" Wid
Width "155p
" Width "75p
Height "17px
ppingCheckBoess." />
server">p if CheckBo
" Height "17
ess1" Width
ess2" Width
" Height "17
e" Width "65
Height "17p
"server">p. > Text "Go Ba
��� ��=��
px" Height "
px"
dth "314px"
dth "314px"
px" Height "
px" Height "
x" />
ox" Text "Pl
ox1 was sele
px" />
"370px"
"370px"
px" />
px"
px" />
ack to Step
���:����
�!
17px"
17px"
17px"
ease
cted.
2"
�
www.depurando.com 114
Borde
ID "C
Heigh
Size
BackC
Bold
Borde
ForeC
<<
</bod</htm
usingusingusingusingusingusingusingusingusingusingpubli{
p{
}p{
}p{
}}
erStyle "Sol
</as<asp
Complete">
ht "24px">
</as</Wizard<Navigat
"1.0em"Bord
Color "White<HeaderS
"True"Back
erWidth "2px<SideBar
Color "#0000Back
<HeaderT<b>W
</Header</asp:Wizard</form>dy>ml>
g System; g System.Datg System.Cong System.Colg System.Webg System.Webg System.Webg System.Webg System.Webg System.Webic partial c
protected vo{
if (!IsP}protected vo{ Wizard1.
}protected vo{
if (Wiza { Labe {
} }
}
ForeColid"
BorderWp:WizardStep
p:WizardStep
<asp:Label
</asp:Labelp:WizardStep
dSteps>tionButtonSt
derStyle "Soe" />tyle ForeCo
kColor "#284x" />rStyle Verti99"
kColor "#EFFTemplate>Wizard ExamprTemplate>d>
ta;nfiguration;lections;
b;b.Security;b.UI;b.UI.WebContb.UI.WebContb.UI.HtmlConclass Wizard
oid Page Loa
PostBack) { W
oid Wizard1
Visible f
oid Wizard1 N
ard1.WizardS
el1.Text S
foreach (Co{
if (c i {
Che {
} } }
��
or "#284E98"
idth "1px" Bp>runat "serv
runat "serve
>p>
yle ForeColo
lid" BorderW
lor "White"
E98" BorderS
calAlign "To
3FB" Width "
le</b>
rols;rols.WebParttrols;Control : S
d(object sen
Wizard1.Acti
FinishButton
alse; Respon
NextButtonCl
teps[e.NextS
tring.Empty;
ntrol c in w
s CheckBox)
ckBox cb
Label1.Text
��� �? � �
" Font Names
BorderColor
ver" StepTyp
er" ID "Comp
or "#284E98"
Width "1px"
HorizontalA
Style "Solid
op" Horizont
"45px" />
ts;
System.Web.U
nder, EventA
iveStepIndex
nClick(objec
nse.Write("F
lick(object
StepIndex].T
; foreach (W
ws.Controls)
(CheckBox)c;
t + cb.Text
��������
s "Verdana"
"#507CD1" B
pe "Complete
pleteMessage
" Font Names
BorderColor
Align "Cente
d" BorderCol
talAlign "Ce
UI.Page
Args e)
x 0; }
ct sender, W
Finished<br
sender, Wiz
Title "Su
WizardStep w
)
; if (cb.Che
t + "<br />"
�� %����
Font Size "
BackColor "W
e" Title "Co
eLabel" Widt
s "Verdana"
r "#507CD1"
er" Font Siz
lor "#EFF3FB
enter" Font
WizardNaviga
/>" + Label
zardNavigati
ummary")
ws in Wizard
ecked)
";
��� ��=��
1.0em"
White" />
omplete"
th "408px"
Font
e "0.9em" F
B"
Size "0.8em
ationEventAr
1.Text);
onEventArgs
d1.WizardSte
���:����
�"
ont
"
gs e)
e)
ps)
�
www.depurando.com 115
<%@ P
<!DOC"http
<scrivoi
{ L
DropD } </scr
<html<head
<ti</hea<body
<fo<
OnAct
Font-
StepT
<</f
</bod</htm
Page Languag
CTYPE html Pp://www.w3.o
ipt languageid GetFavori
Label1.TextDownList1.Se
ript>
l xmlns "httd id "Head1"itle>Simplead>y>orm id "form<div>
<h2>Simple <asp:Wizar
tiveStepChan BackColo
-Names="Verd Font-Siz
<WizardS<asp:W
<str<br
Favo<asp
<a<a<a<a<a<a<a<a<a<a
</as<br
</asp:<asp:W
Type="Comple<str<br<asp
</asp:</Wizard<SideBar
</asp:Wiza</div>form>dy>ml>
ge="C#" %>
PUBLIC " //Worg/TR/xhtml
e "C#" runatteNumberOnA
"Thank yoelectedItem.
tp://www.w3. runat "servSingle Step
m1" runat "s
e Single Steprd ID="Wizardnged="GetFavor="#FFFBD6"dana"ze="0.8em" Wteps>
WizardStep IDrong>Wizard/><br />
orite Numberp:DropDownLiasp:ListItemasp:ListItemasp:ListItemasp:ListItemasp:ListItemasp:ListItemasp:ListItemasp:ListItemasp:ListItemasp:ListItemsp:DropDownL/>WizardStep>
WizardStep IDete">rong>Wizard/>
p:Label ID="LWizardStep>
dSteps>rStyle Widthard>
��
3C//DTD XHTM1/DTD/xhtml1
"server">ctiveStepInd
u for tellinText;
org/1999/xhtver">Wizard Cont
erver">
p Wizard Cond1" runat="soriteNumberOBorderColor
idth="322px"
D="WizardSteStep 1</stro
:st ID="DropD>1</asp:List>2</asp:List>3</asp:List>4</asp:List>5</asp:List>6</asp:List>7</asp:List>8</asp:List>9</asp:List>10</asp:Lisist>
D="WizardSte
Step 2</stro
Label1" runa
"75px" Vert
��� �? � �
ML 1.0 Trans1 transition
dex(Object S
ng that your
tml">
trol</title>
ntrol</h2>server" ActiOnActiveStepr="#FFDFAD"
">
ep1" runat="ong>
DownList1" rtItem>tItem>tItem>tItem>tItem>tItem>tItem>tItem>tItem>stItem>
ep2" runat="
ong><br />
at="server"/
ticalAlign "
��������
sitional//ENnal.dtd">
Sender, Even
r favorite n
>
iveStepIndexpIndex"BorderWidth
"server" Tit
runat="serve
"server" Tit
/>
"Top"/>
�� %����
N"
ntArgs e)
number is:"
x="0"
h="1px" Cell
tle="Step 1"
er">
tle="Step 2"
��� ��=��
+
lPadding="5"
>
���:����
�)
�
www.depurando.com 116
XmlMuesTransXML
Paraque fdocucadenrecog
PropieDocu
Docu
Docu
De mda foestabrepreutilizamediestilohojapredede es
PropieTran
lstra un docusformationssin formato
especificar efiguran a conmento XMLna XML o ungen las propi
edadument
umentConte
umentSourc
manera opciormato al docbleciendo unesentan los dar para dar fante un objeo de transforde estilo deeterminado.stilos de tran
edadsform
mento XML(XSLT). El coo utilizando
el documentontinuación. Eque se puedarchivo XMiedades para
DescripEstableSystem
ent Estable
ce Estable
nal, se puedcumento XMa de las dosdiferentes tipformato al doeto System.Xrmación XSL,transformacEn la siguien
nsformación
DescripcAplica foSystem.
��
sin formatontrol Xml setransformac
o XML que sstas tres proden mostrar.L si se estaba especificar
ciónce el docume
m.Xml.XmlDce el docume
ce el docume
e especificarML antes de qpropiedadespos de hojasocumento XMXml.Xsl.XslCoestablecien
ción XSL, se mnte tabla se eXSL.
ciónormato al docXml.Xsl.XslT
��� �? � �
o que utilizautiliza paraciones XSL.
e va a mostropiedades reSe puede mlece la propiel document
ento XML meDocument.ento XML me
ento XML me
r una hoja deque se escribs que figurande estilo deML. Se puedompiledTrando la propiedmostrará el denumeran la
cumento XMLransform esp
��������
a Extensible Smostrar el c
rar, establezcpresentan loostrar un Syedad adecuato XML.
diante un obj
diante una ca
diante un arc
e estilo de trba éste en lan a continuactransformace dar formatsform o meddad adecuaddocumento Xas propiedad
L mediante elpecificado.
�� %����
Stylesheet Laontenido de
ca una de lasos distintos tstem.Xml.Xmada. En la sig
jeto
adena.
chivo.
ansformaciósecuencia deción. Las dosción XSL queto al documediante un arcda. Si no se eXML con el fodes para espe
l objeto
��� ��=��
anguageun docume
s tres propieipos demlDocumentguiente tabla
ón XSL (XSLT)e salidas propiedadese puedenento XMLchivo de hojaespecifica ninormatoecificar una h
���:����
�*
nto
dades
t, unaa se
) que
es
a denguna
hoja
�
www.depurando.com 117
Tran
<!The fXslTrThe odocumthe s
>
<%@ P<%@ I<%@ I<!DOC
"<html
<s
</<head
<</hea<body
<h
</bod</htm
<!For tnamedyour
<?xml
<xsl: <xs
< </x
<xs<
sformSourc
following exransform objobjects are ment. Make ssample XSL T
Page LanguagImport NamesImport NamesCTYPE html P"http://www.l >script runat void Page { XmlDocu doc.Loa
XslTran trans.L
xml1.Do xml1.Tr }
/script>d id "Head1"<title>Xml Cad>y>h3>Xml Examp
<form id "<asp:Xm
</form>dy>ml>
this exampled peopletabl.aspx file.
l version "1
stylesheetsl:template<xsl:apply txsl:template
sl:template<table width <tr> <td> <b> <xsl  <xsl </b> </td> </tr> <tr> <td> <xsl:v <xsl:v , <xsl:v <xsl:v </td> </tr>
ce Aplica fode trans
xample demonects from tthen used bure the samp
Transform fi
ge "C#" Autopace "Systempace "System
PUBLIC " //Ww3.org/TR/x
t "server">Load(Object
ument doc ad(Server.Map
nsform trans Load(Server.M
ocument doransform t
runat "servClass Exampl
ple</h3>form1" runa
ml id "xml1"
e to work, pe.xsl. Stor
.0" encodin
version "1.match "/Peop
templates see>
match "Persh "100%" bor
:value of s0;:value of s
value of selvalue of sel
value of selvalue of sel
��
ormato al docsformación XS
strates how he sample XMy the Xml cople XML filele is called
EventWireupm.Xml" %> m.Xml.Xsl" %3C//DTD XHTMhtml1/DTD/xh
sender, Eve
new XmlDocumpPath("peopl
new XslTrMapPath("peo
c;rans;
ver">e</title>
t "server">runat "serv
aste the fole the file i
g "utf 8"?>
0" xmlns:xslple">lect "Person
on">der "1">
elect "Name/
elect "Name/
ect "Addressect "Address
ect "Addressect "Address
��� �? � �
cumento XMLSL especificad
to create XML and XSL Tontrol to die is called d Peopletabl
"True" %>
%>ML 1.0 Transhtml1 transi
entArgs e)
ment();le.xml"));
ransform();opletable.xs
ver" />
llowing codein the same
l "http://ww
n" />
/FirstName"
/LastName" /
s/Street" />s/City" />
s/State" />s/Zip" />
��������
L mediante eldo.
XmlDocumentTransform fiisplay the XPeople.xml
le.xsl.
sitional//ENitional.dtd"
sl"));
e into a fildirectory a
ww.w3.org/19
/>
/>
><br />
�� %����
l archivo de h
andiles.XMLand
N"">
leas
999/XSL/Tran
��� ��=��
hoja de estilo
nsform">
���:����
� o
�
www.depurando.com 118
< </x
<xs
</
<x
</
</xsl
>
<!For tnamedyour
<?xml<Peop <Pe
<
<<
<<
< </P
<Pe<
<<
<<
< </P
<Pe<
<tr> <td> Job Ti Descri </td> </tr>
</table>xsl:template
sl:template
<bookstore <xsl:ap </bookstor
/xsl:templat
xsl:template <book> <xsl:at <xsl </xsl:a <price> <xsl </price <xsl:te </xsl:t </book>
/xsl:templat
l:stylesheet
this exampled people.xml.aspx file.
l version "1ple>erson><Name> <FirstName <LastName>
</Name><Address> <Street>18 <City>Redm <State>WA< <ZipCode>9
</Address><Job> <Title>CEO <Descripti
</Job>Person>
erson><Name> <FirstName <LastName>
</Name><Address> <Street>13 <City>Paso <State>CA< <ZipCode>9
</Address><Job> <Title>Att <Descripti
</Job>Person>
erson><Name> <FirstName
tle: <xsl:vption: <xsl
e>
match "book
e>pply templatre>te>
e match "boo
ttribute nam:value of s
attribute>>:value of s
e>ext>text>
te>
t>
e to work, p. Store the
.0" encodin
e>Joe</FirstN>Suits</LastN
00 Success Wmond</City></State>8052</ZipCo
O</Title>on>Wears th
e>Linda</Fir>Sue</LastNam
02 American o Robles</Ci</State>3447</ZipCo
torney</Titlon>Stands up
e>Jeremy</Fi
��
alue of sele:value of se
store">
es select "b
k">
e "ISBN">elect "@ISBN
elect "price
aste the folfile in the
g "utf 8" ?>
Name>Name>
Way</Street>
de>
e nice suit<
stName>me>
St.</Streetty>
de>
e>p for justic
rstName>
��� �? � �
ect "Job/Titelect "Job/D
book"/>
N"/>
e"/>
llowing codee same direc
>
>
</Descriptio
t>
ce</Descript
��������
tle" /><br /Description"
e into a filctory as
on>
tion>
�� %����
/>" />
le
��� ��=�����:����
��
�
www.depurando.com 119
<<
<<
< </P
<Pe<
<<
<<
< </P</Peo
>
XML <?xml <CarLi<Car V<Car V<Car V<Car V
<Car V
XSL T<?xml versiocom:xs
<xsl:t
<title
<cente
</cent
<xsl:t
<font
</font
<font
</font
<font
</font
<font
</font
<font
</th>
</tabl<xsl:t<xsl:v
<LastName></Name><Address> <Street>34 <City>Waik <State>HI< <ZipCode>9
</Address><Job> <Title>Pro <Descripti
</Job>Person>
erson><Name> <FirstName <LastName>
</Name><Address> <Street>70 <City>Redm <State>WA< <ZipCode>9
</Address><Job> <Title>Web <Descripti
</Job>Person>ople>
File – CarLisversion="1.0ist> Vin="1A59B" MVin="9B25T" MVin="3H13R" MVin="7D67A" M
Vin="4T21N" M
Transformatversion="1.0on="1.0"xmlnsslt" xmlns:la
template matc
e>Car List</t
er> <h1>Car L
ter> </body>
template name=
size="4" > <
t> </th> <th
size="4" > <
t> </th> <th
size="4" > <
t> </th> <th
size="4"> <b>
t> </th> <th
size="4" > <
</tr> <xsl:c
le> </xsl:temtemplate name=value of sele
>Boards</Las
Palm Avenukiki</City></State>8052</ZipCo
o Surfer</Tion>Rides th
e>Joan</Firs>Page</LastN
0 Webmaster mond</City></State>8073</ZipCo
b Site Develon>Writes t
st.xml " encoding="u
ake="Chevroleake="Ford" Moake="BMW" Modake="Mazda" M
ake="VW" Mode
tion File – Ca" encoding="u:xsl="http://bs="http://la
h="/"> <html>
itle> </head>
ist</h1> <xsl
</html> </xsl
="CreateHeadi
b>VIN</b>
bgcolor="yell
b>Make</b>
bgcolor="yell
b>Model</b>
bgcolor="yell
>Year</b>
bgcolor="yell
b>Price</b> <
all template
plate> ="CreateTablect="@Vin"/> <
��
tName>
e</Street>
de>
tle>e big waves<
tName>ame>
Road</Stree
de>
oper</Title>he pretty pa
utf 8" ?>
et" Model="Impodel="F 250" Ydel="Z4" Year=Model="Miata"
el= "Beetle" Y
arList.xslutf 8" ?> <xsl/www.w3.org/19abs.com/myname
> <head>
> <body>
:call templat
:template>
ng"> <table b
ow">
ow">
ow">
ow">
</font>
name="CreateT
e"> <xsl:for e</td>
��� �? � �
</Descriptio
et>
>ages</Descri
pala" Year="19Year="1970" Pr="2006" Price=Year="2003" P
Year="1956" Pr
l:stylesheet 999/XSL/Transfespace">
te name="Creat
border="1" cel
Table"/>
each select="/
��������
on>
iption>
963" Price="1rice="1595.00="55123.00" />Price="28250.
rice="500.00"
form" xmlns:m
teHeading"/>
llpadding="5">
/CarList/Car">
�� %����
125.00" /> " /> > 00" />
/></CarList>
sxsl="urn:sch
> <tr > <th b
> <tr> <td al
��� ��=��
>
hemas microsof
bgcolor="yello
ign="center">
���:����
��
ft
ow">
>
�
www.depurando.com 120
<td al
<xsl:v
<xsl:v
<xsl:v<xsl:v</xsl
publi{
}
Tes
1. Wcontr
2. Yoyourand othe be
lign="center">
value of sele
value of sele
value of selevalue of sele:template> </
ic partial c{
protecte { Xml1 Xml1 }
}
t
Which of the rols? (Choose
A. To creB. To creC. To creD. To dis
our graphics company sel
others are comest way to in
A. Use Imclicks to fB. Use thare displaproduct liC. Use thin each Vthe produD. Use anthe PostB
>
ct="@Make"/>
ct="@Model"/>
ct="@Year"/> ct="format nuxsl:styleshee
class Xml Co
ed void Page
.DocumentSo
.TransformS
following re one.) eate and popueate a customeate and popusplay a tabuladepartment jlls. Some of mplex shape
ncorporate thmageButtonfigure out whhe Table, Taayed in the ine that was he MultiViewView control uct line that wn ImageMapBackValue to
��
</td> <td>
></td> <td>
</td> <td aliumber(@Price,'et>
ntrol : Syst
Load(object
urce "~/Apource "~/A
represents th
ulate a Tablemized controlulate a Tablear result set just completethe product
es. You want he image into
and use the hat product l
ableRow, andcells, and usclicked.
w control andfor each pro
was clicked. control and identify the
��� �? � �
ign="right"> '$#,##0.00')"/
tem.Web.UI.P
t sender, Ev
pp Data/CarLApp Data/Car
he best use
e in Design vl that needs toe with images
ed an elaborline graphicsto use this im
o your Web sx- and y-co
line the user d TableCell se the Table
d break up thoduct line. U
define hot sproduct line
��������
/> </td> </tr>
Page
ventArgs e)
List.xml";rList.xsl";
of the Tabl
viewo display dats
ate image ths are circularmage as a msite? (Chooseoordinates thclicked.controls, bre
eCell control
he image intUse the Click
pot areas fore that was cli
�� %����
> </xsl:for e
le, TableRow
ta in a tabula
at shows ther, while othe
menu on your e one.)hat are return
eak the imagl’s Click eve
o pieces thatk event of th
r each of the icked.
��� ��=��
each>
w, and Tabl
ar fashion
e product lineers are rectan
Web site. W
ned when the
ge into pieceent to identi
t can be dispe View to id
product line
���:����
��
e-Cell
es that ngular,
What is
e user
es that fy the
played dentify
s. Use
�
www.depurando.com 121
3. Yospreadata,to gaWhatpage?
ou are writinads over mult
validate the ather the datat is the easie? (Choose on
A. The ViB. The TeC. The WD. The D
ng a Web sitetiple Web padata, and sav
a that is spreest control tone.)
View controlextBox contro
Wizard controDataCollectio
��
e that collectages. When tve the data to
ead over mulo implement
ololon control
��� �? � �
ts lots of datthe user reaco the databasltiple pages t that can be
��������
ta from yourches the last pse. You noticand you wan used to col
�� %����
r users, and tpage, you nece that it cannt to simplifllect the data
��� ��=��
the data colleeed to gathern be rather dify this applica on a single
���:����
��ection
r all of fficult
cation.e Web
�
www.depurando.com 122
AApliicaccocioon .
��
��
%��
��
���
Mne.NE
��� �
����
����
��:��
���
MCsET 3
����
��� ��
�� ��
��� �
ǿǿǿΦƛƴŀŘŜŎƻΦŎƻƳ
CTS:Web3.5
�
��
:b5
www.depurando.com 123
��
�
El endesarparaefecthastasino mcódigordenagreg
Éste cparteinmecorrecontr
El usofundadeclaASPXdatoscódigdesapexisteinterf
usingusingusingusingusingusingusingusingusingusing/// </// S/// <publi{
pp
vin;p{
}pp
��� �
��:��
lace a datosrrolladores eel acceso a dividad. No oa cierto puntmás bien engo para contrnación o elimga un nuevo
consiste en des visuales densa mayoríaectamente faroles: los com
o de componamental conarativo. EsteX o repartidos obliga a losgo de formaparecer y sonente. Los comfaces conoci
g System; g System.Datg System.Cong System.Webg System.Webg System.Webg System.Webg System.Webg System.Webg System.Col<summary>Summary desc</summary>ic class Car
public Car()public Car(sMake make
public strin{
get { reset { vi
}private stripublic strin
���� �
��� �
fue una de len ASP.NET 1datos, el enlabstante, al eo imperfectoel hecho derolar inclusominación. Pamodelo de o
diferentes coe los controldel código q
actorizado y cmponentes d
nentes de orsiste en la ponuevo modeentre las clas desarrolladinherente. Lon sustituidosmponentes ddas y ofrece
ta;nfiguration;b;b.Security;b.UI;b.UI.WebContb.UI.WebContb.UI.HtmlConlections.Ge
cription for
r
{ } tring vin,
e; Model mng Vin
eturn vin; } n value;
ng vin; ng Make
� ����
����
� ����
as sorpresas1.x. Comparaace a datos senfrentarse ao. Las limitacque los desalas operaciora aportar unorigen de dat
ontroles nuees enlazadosque los desacreado, se ede origen de
igen de datoosibilidad deelo reduce elases de códigores a seguios extensoss por compode origen den, en genera
rols;rols.WebParttrols;neric;
Car
string make,odel; Year
}
�������
���� �
��
s más agradaado con la cosupuso una ma las necesidaciones no searrolladoresones sencillana solución atos.
vos sin IU qus a datos y lorrolladores dncuentra ahodatos.
os aporta nume un modelol código flexigo subyacentr unas reglasbloques de cnentes que sdatos se deal, un nivel m
ts;
, string mod year; Pric
� �� %���
�� %��
ables con lasompatibilidadmezcla extraades de los dencuentrandeben escribs y habitualea este proble
ue completanos contenedodebían escribora incrustad
merosas vende enlace able insertadte. La nuevas estrictas. Acódigo asociasimplementerivan de clas
más alto de re
del, int yeace price;
��� ���
����
que se encod de las págiordinaria dedesarrolladoen la funciobir una granes tales comoema, en ASP
n el vacío exores de datobir en ASP.NEdo en una nu
ntajas: la primdatos complo en línea enarquitecturademás, camados a evente se conectases abstractaeutilización.
ar, decimal}
���:���
�� ��
ontraron losnas Active Sesimplicidadres reales, renalidad genecantidad deo la paginaci.NET 2.0 se
istente entres. BásicamenET 1.x,ueva familia
mera yletamenten los recursoa de enlace abia la calidatos tienden an al marcoas, implemen
price) { Vi
�� � �����
���
erveryesultóeral,
ón,
e lasnte, la
de
os dead dela
ntan
n
�
www.depurando.com 124
{
}pp{
}pp{
}pp{
}pp{
"Impa1595.Car(""Beet
}}
ConLos cocontr
��
�
. NETcomu
El Hiecontr
El DaCompque d
{get { reset { ma
}private stripublic strin{
get { reset { mo
}private stripublic int Y{
get { reset { ye
}private intpublic decim{
get { reset { pr
}private decipublic stati{
List<Carala", 1963, 00M)); carL
"7D67A", "Matle", 1956, }
troles Enontroles Datroles Data�Bo
Los contr
Los contrFormsVie
Los jerárq
T Frameworkunes y el com
erarchicalDatroles que mu
taBoundConpositeDataBodeben mostr
eturn make; ake value;
ng make; ng Model
eturn model; odel value
ng model; Year
eturn year; ear value;
year;mal Price
eturn price; rice value
mal price; c List<Car>
r> carList 1125.00M));
List.Add(newazda", "Miat500.00M));
lazados ata�Bound sonound se clas
roles Simples
roles Compuew.
quicos son aq
k proporcionamportamient
taBoundConuestran dato
ntrol heredaoundControlrarse en form
� ����
}}
}; }
}}
}; }
GetList()
new List<CacarList.AddCar("3H13R"
a", 2003, 28return carLi
a Datosn controles qifican en Sim
s son aquello
estos son aq
quellos relac
a varias claseto de los dato
ntrol heredas jerárquicos
de la BaseDal y la ListConma de cuadro
�������
ar>(); carLid(new Car("9", "BMW", "Z8250.00M));ist;
que se enlazamples, Compu
os que hered
quellos que h
cionados con
es base que sos concretos
de la BaseDas, como el m
ataBoundCotrol, que sono de datos, ta
� �� %���
ist.Add(new9B25T", "ForZ4", 2006, 5carList.Add
an o conectauestos o Jera
dan de ListCo
heredan de G
n controles d
se utilizan pas sujetos a co
ataBoundConmenú y contro
ntrol y es lan las clases dales como el
��� ���
Car("1A59B"rd", "F 250"55123.00M));d(new Car("4
an a las fuentarquicos.
ontrol y AdRo
GridView, De
de menú y Tr
ara proporciontroles.
ntrol y es la coles TreeView
clase padrede padres a oGridView y
���:���
, "Chevrole, 1970, carList.AdT21N", "VW"
tes de datos
otator.
etailsView, y
eeView
onar propied
clase padre aw.
a laotros controlDropDownL
�� � �����
�
t",
d(new,
. Los
dades
a los
esist.
�
www.depurando.com 125
La clacuandeste mcontr
UsanEl Basclase
La prrecupclase
La prdatos
Normdos, t
El conejecu
ase DataBoudo los datosmétodo en uroles.
ndo ObjetseDataBouncontiene las
opiedad Datpera su listaque implem
opiedad Dats recupera su
malmente, fijtoma priorid
ntrol DataBoución llamand
ndControl tieestén listosun control, re
tos DataSdControl ess propiedade
taSource Obtde elemento
menta IEnume
taSourceID Ou lista de ele
aremos unadad DataSour
ound se conedo al método
� ����
ene un métopara ser llamecursivamen
Sourceun control des DataSourc
tiene o estabos de datos.erable, IListS
Obtiene o estementos de d
de las propirceID.
ecta automáto DataBind e
�������
odo llamadomados desdente se llama a
e Web que hce y DataSou
blece el objeEl objeto DaSource, IData
tablece el Iddatos.
edades Data
ticamente alen este cont
� �� %���
DataBind. Lle el origen dea este mismo
hereda direcurceID.
eto del que eataSource esaSource, o IH
. del control
aSource o Da
control de orol.
��� ���
lamaremos ae datos. Cuano método en
tamente de
l control enlun ejemplo
HierarchicalD
del cual el c
ataSourceID.
origen de dat
���:���
a este métodndo se llaman todos los
Control. Esta
azado a datotípico de un
Datasource.
ontrol enlaz
Si fijamos la
tos en tiemp
�� � �����
�
doa a
a
osna
ado a
as
po de
�
www.depurando.com 126
Tene
�����
MapUn cosimplplant
Los co
GridV
En un
�������
UsanPropogenehered
mos una ser
AccessDa
SqlDataS
XmlDataS
ObjectDa
SiteMapD
pear Campontrol de plalemente protillas para de
ontroles con
View, Details
n control pod
HeaderTe
FooterTe
ItemTem
Alternatin
SelectedI
Separato
EditItemT
ndo la claorciona comrar y analizadar.
rie de objeto
ataSource
Source
Source
ataSource
DataSource
pos a las Pantilla es un cvee el mecaterminar el i
n soporte a p
sView, and Fo
demos usar l
emplate
mplate
plate
ngItemTemp
temTemplat
rTemplate
Template
ase DataBpatibilidad cr la sintaxis d
� ����
s fuente de d
Plantillascontrol que nnismo parainterface de
plantillas son
ormView
as siguiente
plate
te
Bindercon diseñadode expresion
�������
datos que po
sno tiene inteenlazar los dusuario.
:
s plantillas:
ores de desarnes de enlace
� �� %���
odemos cone
erface de usudatos. Los De
rrollo rápidoe de datos. E
��� ���
ectar a un ob
uario por defesarrolladore
o de aplicacioEsta clase no
���:���
bjeto DataBo
fecto. El contes usaran las
ones (RAD) pse puede
�� � �����
�ound
trols
para
�
www.depurando.com 127
Las exutilizaunidi(actuuna een loproce
Las excontrexpredel co
En elun co
<aspDaDaRu
<I
Eval
Eval
Eval
Eval
Eval
</</as
Utiliz
El mécontrejecuelempartefila denlac
El mévalorsegun
xpresiones dan las funcioreccional (dealizable). Adexpresión des delimitadoesamiento de
xpresiones drol o de la claesiones de enontrol y no e
ejemplo deontrol FormV
p:FormViewataSourceIataKeyNameunAt="serv
ItemTempla<table><tr><td
l("Product<tr><td
l("Product<tr><td
l("Categor<tr><td
l("Quantit<tr><td
l("UnitPri</table>/ItemTemplsp:FormVie
zar el métod
étodo Eval evroles enlazadución, el métento de datoe más pequee un controlce dentro de
étodo Eval tode dicho cando parámet
de enlace deones Eval y Be sólo lecturademás de llame enlace de dores <%# y %e la página.
de enlace dease Page. Panlace de dates necesario
código siguieView en una
w ID="FormID="SqlDates="Producver">
ate>
d align="rtID") %></d align="rtName") %>d align="rryID") %><d align="rtyPerUnit"d align="rice") %></
late>ew>
o Eval
valúa las expdos a datos, codo Eval llamos actual delña del controGridView. Plas plantillas
oma el nombmpo desde etro opcional
� ����
datos estánind. La funcia). La funciómar a los méatos, puede> para ejecu
datos se resra los controos se resuelvllamar al mé
ente se muepropiedad It
mView1"taSource1"ctID"
right"><b>/td></tr>right"><b>></td></trright"><b></td></tr>right"><b>") %></td>right"><b>/td></tr>
presiones decomo GridVima al métodcontenedorol enlazado aPor consiguies de un cont
bre de un camel registro aca fin de espe
�������
contenidasión Eval se un Bind se utiétodos Eval yllamar a cuatar dicho có
suelven cuanoles como Grven automátétodo DataBi
estra el uso dtemTemplat
"
>Product I
>Product Nr>>Category>>Quantity></tr>>Unit Pric
datos enlazaiew, DetailsVo Eval del obr de nombresa datos queente, el métorol enlazado
mpo de datoctual en el orecificar un fo
� �� %���
dentro de lotiliza para deiliza para el ey Bind para ralquier códigdigo y devolv
ndo se llamaridView, Detaticamente duind de forma
de las exprese
ID:</b></t
Name:</b><
ID:</b></
Per Unit:
ce:</b></t
ados tardíamView y Formbjeto DataBis. El contenecontiene unodo Eval sóloo a datos.
os y devuelverigen de datoormato para
��� ���
os delimitadoefinir un enlaenlace de tipealizar el engo de ámbitover un valor
al método DailsView y Fourante el evea explícita.
iones de enl
td>
</td>
/td>
:</b></td>
td>
mente en lasmView. En tiender, hacienedor de nomregistro como se puede u
e una cadenaos. Puede prola cadena de
���:���
ores <%# y %ace de tipopo bidirecciolace de datoo público incldurante el
DataBind deormView, lasento PreRen
ace de datos
<td><%#
<td><%#
<td><%#
><td><%#
<td><%#
plantillas deempo dendo referencibres suele sempleto, comotilizar para e
a que contienoporcionar uevuelta. El
�� � �����
�%>, y
nalos enuido
unsder
s con
e
ia aler lao unael
ne elun
�
www.depurando.com 128
parámString
Utiliz
El mésignifmétomodi
En ASutilizade orUpdaDetailos coorigerazónInser
El méfila Gentra
<Edi<t
metro de forg.
zar el métod
étodo Bind tificativas. Aunodo Bind o coficar los dato
SP.NET, los car automáticrigen de datoate para el coilsView, o enontroles secun de datos an, la funciónrtItemTempl
étodo Bind sGridView en mada como pa
itItemTemptable><tr><td ali<b>Em
</td><td>
<%# E</td>
</tr><tr><td ali<b>Fi
</td><td><asp:Tex
</td></tr><tr><td ali<b>La
</td><td><asp:
T</td>
</tr><tr><td col<asp:
rmato de cad
o Bind
iene algunasnque los valoon el métodoos.
ontroles enlcamente lasos. Por ejempontrol de orign una plantilundarios dea su vez ejecuBind se utilizate de un co
uele empleamodo de edirte de su pro
plate>
ign=right>mployee ID
Eval("Empl
ign=right>irst Name:
TextBox Ixt='<%# Bi
ign=right>ast Name:<
TextBox IText='<%#
lspan="2">LinkButto
� ����
dena utiliza la
s similitudesores de los cao Eval, el mé
azados a datoperacionesplo, si ha defgen de datosla de controlla plantilla yuta el comanza dentro deontrol enlaza
rse con contición. Cuandopia represe
>D:</b>
loyeeID")
></b>
ID="EditFiind("First
></b>
ID="EditLaBind("Las
>on ID="Upd
�������
a sintaxis de
con el métoampos enlazétodo Bind ta
tos como Grs de actualizafinido instrucs, el uso de Bl FormViewpasarlos al cndo correspoe las propiedado a datos.
troles de ento el control entación, pue
%>
irstNameTetName") %>
astNameTexstName") %
dateButton
� �� %���
finida para e
do Eval, perozados a datosambién se ut
idView, Detaación, suprescciones SQLBind en un copermite al cocontrol de orondiente parades EditIte
trada como Tenlazado a dede extraer lo
extBox" Ru>' />
xtBox" Run%>' />
n" RunAt="
��� ���
el método Fo
o hay diferens se puedentiliza cuando
ailsView y Fosión e insercSelect, Inserontrol GridVontrol extraerigen de datoa la base demTemplate
TextBox reprdatos crea esos valores de
unAt="Serv
nAt="Serve
"server"
���:���
ormat de la c
nciasrecuperar co
o se pueden
ormView puión de un cort, Delete yView oer los valoreos. El controdatos. Por eo
resentado postos controlee entrada.
ver"
er"
�� � �����
!clase
on el
edenontrol
s del deesta
or unaes de
�
www.depurando.com 129
</</Ed
<%# Bi
<%# Bi
RepEl condispocadaplantformaHTM
ProgLa claINam
Conti
PropiAlter
DataM
DataS
DataS
Foote
Head
Tex <asp:Tex
</td></tr>/table>ditItemTem
<%# Eval
<%# Eval
ind("Vin") %>
ind("Vin", "{
peaterntrol Repeatosición persoelemento vitillas. No tienato y de dispL y clases AS
gramacióase RepeatermingContaine
iene las sigui
iedadrnatingItemT
Member
Source
SourceID
erTemplate
derTemplate
xt="Updatep;LinkButtoxt="Cancel
mplate>
("Vin") %>
("Vin", "{0:C
0:C}" ) %>
ter es un cononalizada. Fusualizado enne caracterísposición debSP.NET
ón de la inr hereda de Cer.
ientes propie
Template
� ����
e" Command
on ID="Canl" Command
C}" ) %>
ntrol con vincnciona por rn la lista. Esteticas de dispe ser declara
nterfaz deControl y act
edades:
�������
dName="Upd
ncelUpdatedName="Can
culación a darepetición dee control es bposición interada explícita
l controltúa como un
DescLa plalos eModDatacontrModIEnumparaModorigeparaLa plaparteLa plaparte
� �� %���
date" />
eButton" Rncel" />
atos que muee una plantillbásico en curna ni de estmente y cod
Repeatercontenedor
ripciónantilla utilizalementos resifica o obtienSource que trolifica u obtienmerable querellernar la lifica u obtienen de datos qrellernar lasantilla que de inferiorantilla que de superior
��� ���
RunAt="ser
estra datos ula ASP.NET danto al funciilo. Toda la idificada medi
r.r implementa
ada para dibustantesne la tabla estiene que vin
ne el origene proporcionlistane el nombreque proporcis listaefine cómo
efine cómo
���:���
rver"
usando unadeterminadaionamiento cnformacióniante etiquet
ando la inter
ujar cada un
specífica dencularse con
de datosa cualquier d
e del controiona los dato
se dibuja la
se dibuja la
�� � �����
"
paracondetas
rfaz
o de
este
dato
l deos
�
www.depurando.com 130
Items
ItemT
Sepa
Las pcontr
La prdatos
El confuent
Even
Item
Item
punto
Item
datos
Para
1
2
3
En elDataLmues
s
Template
ratorTempla
ropiedades sroles.
opiedad Items mostrada.
ntrol Repeatte de datos v
ntos
mCommandSe desenc
mCreatedSe desenc
o, la propied
mDataBoundSe desenc
s subyacente
responder a
1. Incluya u
2. Establezcfunción, c
3. Cree un mhaga lo si
a. Cp
b. E
ejemplo siguList. En el ejestra un carro
ate
son element
ms contiene
ter rellena lavinculada.
cadena cuan
cadena cuandad DataItem
dcadena despes. Esta vez,
a eventos de
n control Bu
ca la propiedcomo "sort"
método paraiguiente:
Compruebe lpara ver qué
Ejecute la lóg
uiente se muemplo, la proo de la compr
� ����
tos de la plan
la lista de ele
colección Ite
ndo un botón
ndo se está cm, siempre de
pués de que ula propiedad
e botón en co
tton, LinkBu
ad Commano "copy".
a el evento It
a propiedadcadena de c
gica adecuad
uestra cómoopiedad Itemra. El botón e
�������
DevuestoRepereprerepeaLa PlaelemLa plalos e
ntilla que for
ementos hijo
ems enumer
n se pulsa de
reando unoevuelve nulo
un elementod DataItem n
ontroles Dat
tton o Image
ndName del
temComman
CommandNomando se h
a para el bot
se puede remTemplate coenvía el com
� �� %���
uelve un objees, una coleceaterItem. Caesenta una fiaterantilla que dentosantilla que dlementos
rman la inter
os que están
rando todos
entro del con
de los elemeo.
o de Repeateo es nula.
taList y Repe
eButton en u
botón en un
nd del contro
Name del objha transferid
tón en que h
sponder a uontiene un c
mando AddTo
��� ���
eto Repeatercción de elemada elementila de datos m
efine cómo
ibuja los sep
rfaz de usuar
n asociados c
los objetos d
ntrol Repeate
entos de la re
er se haya vin
eater
una plantilla
a cadena qu
ol contenedo
jeto argumedo.
hizo clic el us
n clic del botcontrol ImageoCart. El cont
���:���
rItemcollectimentoso de la colecmostrados e
se dibujan lo
paradores en
rio de los
con cada fila
de datos en l
er
epetición. En
nculado con
de control.
e identifique
or. En el mét
nto del even
suario.
tón en un coeButton quetrolador de
�� � �����
)on,
cciónen
os
ntre
de
la
n este
los
e su
odo,
nto
ontrole
�
www.depurando.com 131
eventcomp
1
2
3
4
5
6
7
8
9
1
<%@ PInher
<!DOC"http
<html<head
<</hea<body
<<
Comma%></t></as
Comma%></t
%></F
<<<
</bod</htm
prote{
Respoxt);
ListActúatodos
tos ItemCompra, ejecuta l
. protected
. DataL
. {
. if (e
. {
. //
. //
. //
. }
0. }
Page Languagrits "eRepea
CTYPE html Pp://www.w3.o
l xmlns "httd runat "ser<title>Páginad>y><form id "fo<div>
<asp:Reponit<Hea<Ite
andName "Imptd><td><asp:sp:TextBox><
<Alt
andArgumenttd></tr></Al
<FooFooterTempla
</asp:Re<asp:Obj
Sele
</div><asp:Label I</form>dy>ml>
ected void R{ Label1. Response
onse.Write(( }
tControla como la clas los controle
mmand deterla lógica corr
d void DataL
ListCommandE
.CommandName
Add code he
Use the val
item in the
ge "C#" Autoater1" %>
PUBLIC " //Worg/TR/xhtml
tp://www.w3.rver">na sin títul
orm1" runat
peater ID "Rtemcommand "aderTemplateemTemplate><<asp:Button
par" CommandATextBox ID
</td></tr></ternatingItem<asp:Button'<%# Eval("VternatingIt
oterTemplateate>epeater>ectDataSour
ectMethod "G
D "Label1"
Repeater1 It
Text e.Come.Write(e.It(TextBox)(e
ase base abstes de tipo de
� ����
rmina el botórespondiente
List1 ItemCo
EventArgs e)
e "AddToC
ere to add t
lue of e.Ite
e control.
EventWireup
3C//DTD XHTM1/DTD/xhtml1
org/1999/xht
o</title>
"server">
epeater1" ruRepeater1 It><h1>Venta dtr><td>ID "Button1
Argument '<%"TextBox1" rItemTemplatemTemplate><tID "Button2
Vin") %>'/><emTemplate>></table><%
ce ID "ObjecetList" Type
runat "serve
emCommand(ob
mmandName + em.ItemIndex.Item.Contro
tracta que de lista.
�������
ón en que see.
ommand(objec
Cart")
the item to
em.ItemIndex
"true" Code
ML 1.0 Trans1 transition
tml">
unat "servertemCommand"de Coches</h
1" runat "se%# Eval("Vinrunat "servee>tr bgcolor "2" runat "se<%# Eval("Vi
DateTime.N
ctDataSourceeName "Car">
er" Text "La
bject source
" : " + e.Cx);ols[e.Item.I
efine las pro
� �� %���
e hizo clic y, s
t source,
the shopping
to retrieve
eFile "eRepe
sitional//ENnal.dtd">
r" DataSourc>
h1><table></
erver" Textn") %>' /><%er" Text '<%
"#eeeeee"><terver" Textin") %></td>
Now.ToLongDa
e1" runat "s></asp:Objec
abel"></asp:
e, RepeaterC
CommandArgum
ItemIndex].F
opiedades, m
��� ���
si fue el botó
g cart.
e the data
eater1.aspx.
N"
ceID "Object
/HeaderTempl
"Button"%# Eval("Vin%# Eval("Mod
td>"Button" Co
><td><%# Eva
ateString()
server"ctDataSource
Label>
CommandEvent
ment;
FindControl(
métodos y eve
���:���
ón del carro d
cs"
tDataSource1
ate>
n")del") %>'
ommandName "al("Model")
e>
tArgs e)
"TextBox1")
entos comun
�� � �����
*de la
"
Par"
)).Te
nes a
�
www.depurando.com 132
No seello, oListBo
Las pel cona enlapropidistinelemrespecontr
TodoUtilicíndicepropi
La claselecperm
<%@ P
<!DOC"
<html
<head<
<scri
</
</hea
<body
<f
e puede creaotras clasesox y RadioBu
ropiedades dntrol de listaazar al contriedad DataMntos camposentos del coectivamente.rol de lista es
s los elemence la propiede de un elemiedad del ele
ase ListContrción del con
mite incluir un
Page Languag
CTYPE html P"http://www.l >
d id "Head1"<title> Listipt runat "s
void Butto {
// Perftry
{ List Mess }
catch ( { List Mess }
}
/script>
ad>
y>
form id "for
<h3> ListC
<asp:ListBrunat
<asp:Li<asp:Li
ar directameheredan estauttonList, y a
de la clase Lia. Utilice la prol de lista. SMember paradel origen dntrol de lista. Se puede dstableciendo
ntos mostradad SelectedI
mento seleccemento selec
rol proporciotrol de lista cn controlado
ge "C#" Auto
PUBLIC " //Ww3.org/TR/x
runat "servtControl Selerver">
on Click(Obj
form this op
t.SelectedVaageLabel.Te
Exception e
t.SelectedVaageLabel.Te
rm1" runat "
Control Sele
Box ID "Listt "server">
stItem>ItemstItem>Item
� ����
nte una instaa clase comoasí se propor
istControl peropiedad Dai el origen dea especificarde datos a lasa establecienar formato ao la propieda
dos en el conndex para esionado en elccionado me
ona el eventocambia valoror personaliza
EventWireup
3C//DTD XHTMhtml1/DTD/xh
ver">ectedValue E
ect sender,
eration in a
lue ItemText "You se
x)
lue null;xt "Item n
server">
ctedValue Ex
"
1</asp:List2</asp:List
�������
ancia de la co, por ejempciona una fu
ermiten espetaSource pae datos contla tabla ques propiedadendo las propial texto que sad DataTextF
ntrol de listaspecificar o dl control de lediante la pro
o SelectedInres de un enado para est
"True" %>
ML 1.0 Transhtml1 transi
Example </ti
EventArgs e
a try catch
extBox.Text;elected " +
not found in
xample </h3>
tItem>tItem>
� �� %���
lase abstractplo, las clasesncionalidad
ecificar el orira especificaiene más dese va a utilizes ListItem.Tiedades Datase muestra pFormatString
se almacenadeterminar mista. Se puedopiedad Sele
dexChangedvío a otro ente evento.
sitional//ENitional.dtd"
itle>
e)
block in ca
;List.Select
n ListBox co
>
��� ���
ta ListContros CheckBoxLibásica comú
igen de los dar el origen duna tabla, uzar. Se puedeext y ListItemaTextField ypara cada ele.
an en la colecmediante prode obtener aectedItem.
d que se provnvío en el ser
N"">
ase the item
tedValue + "
ontrol.";
���:���
ol. En lugar dist, DropDowún.
datos que relde datos queutilice laen vincularm.Value de loDataValueFiemento en e
cción Items.ogramaciónacceso a la
voca cuandorvidor. Esto
m is not fou
.";
�� � �����
dewnList,
lenanse va
oseld,l
el
la
nd.
�
www.depurando.com 133
</
</bod</htm
<asp:Li<asp:Li
</asp:List
<hr />
Enter the <asp:TextB
MaxLeTextrunat
&nbs
<asp:ButtoTextOnClirunat
<br /><br
<asp:Labelrunat
/form>
dy>ml>
stItem>ItemstItem>Item
tBox>
value of thBox ID "Itemength "6""Item 1"
t "server"/>
p;
on ID "Selec"Select Itemck "Button
t "server"/>
/>
ID "Messagt "server"/>
� ����
3</asp:List4</asp:List
e item to seTextBox"
tButton"m"Click"
eLabel"
�������
tItem>tItem>
elect: <br /
� �� %���
/>
��� ��� ���:����� � �����
�
�
www.depurando.com 134
DroRepredespl
UtilicParaBorde
ParaobjetDrop
El conorigeconteContr
Utilicelem
<%@ P
<!DOC"
<html<s
</
<head<
</hea<body
opDownLesenta un colegable.
ce el controlcontrolar laerColor, Bord
especificar loto ListItem, pDownList.
ntrol DropDon de datos, cenga los elemrol.DataBind
ce la propiedento seleccio
Page Languag
CTYPE html P"http://www.l >script runat
void Selec {
// Set // base// Drop
Calenda Sys
}
/script>
d id "Head1"<title> Dropad>y>
Listontrol que pe
DropDownLapariencia dderStyle y Bo
os elementopor cada entr
ownList admcree un origementos que sd para enlaza
ad SelectedIonado por e
ge "C#" Auto
PUBLIC " //Ww3.org/TR/x
t "server" >
ction Change
the backgroed on the vapDownList coar1.DayStyletem.Drawing
runat "servpDownList Ex
� ����
ermite al usu
List para creadel control DorderWidth.
os que debenrada, entre l
mite asimismoen de datos,se van a mosar el origen d
ndex para dl usuario en
EventWireup
3C//DTD XHTMhtml1/DTD/xh
(Object send
und color folue selectedntrol..BackColor.Color.FromN
ver">ample </titl
�������
uario seleccio
ar un controlropDownLis
n aparecer enas etiquetas
o el enlace dcomo un obstrar en el code datos al co
eterminar mel control Dr
"True" %>
ML 1.0 Transhtml1 transi
der, EventAr
or days in td by the use
Name(ColorLi
le>
� �� %���
onar un únic
de lista despt, establezca
n el control Dde apertura
de datos. Parbjeto Systemontrol. A conontrol DropD
mediante proropDownList
sitional//ENitional.dtd"
rgs e)
the Calendarer from the
ist.Selected
��� ���
o elemento
plegable dea las propied
DropDownLia y de cierre
ra enlazar el.Collections.tinuación, utDownList.
gramación et.
N"">
r control
dItem.Value)
���:���
de una lista
selección únades
ist, coloque udel control
control a unArrayList, qutilice el méto
el índice del
;
�� � �����
�
nica.
un
ueodo
�
www.depurando.com 135
<f
</
</bod</htm
usingusingusingusingusingusingusingusingusingusing//addusingpubli{
pp{
form id "for
<h3> DropD
Select a b
<br /><br
<asp:CalenShowGShowTrunat
<br /><br
<table cel
<tr>
<td>
B
</td
</tr>
<tr>
<td>
<
<
</td
</tr>
</table>
/form>
dy>ml>
g System; g System.Datg System.Cong System.Colg System.Webg System.Webg System.Webg System.Webg System.Webg System.Webdedg System.Colic partial c
private Listprotected vo{
if (!IsP
rm1" runat "
DownList Exam
background c
/>
ndar id "CalGridLines "TTitle "True"t "server"/>
/>
lpadding "5
>
Background c
d>
>
<asp:DropDowAutoPosOnSelecrunat "
<asp:List<asp:List<asp:List<asp:List<asp:List
</asp:DropDow
d>
ta;nfiguration;lections;
b;b.Security;b.UI;b.UI.WebContb.UI.WebContb.UI.HtmlCon
lections.Geclass DropDow
t<Car> carLioid Page Loa
PostBack)
� ����
server">
mple </h3>
olor for day
endar1"rue"
">
olor:
nList id "CotBack "True"tedIndexChanserver">
Item SelecteItem Value "Item Value "Item Value "Item Value "
wnList>
rols;rols.WebParttrols;
neric;wnList Contr
st Car.Getd(object sen
�������
ys in the ca
olorList""nged "Select
ed "True" Va"Silver"> Si"DarkGray">"Khaki"> Kha"DarkKhaki">
ts;
rol : System
tList();nder, EventA
� �� %���
alendar.
tion Change"
alue "White"ilver </asp:Dark Gray <
aki </asp:Li> Dark Khaki
m.Web.UI.Pag
Args e)
��� ���
"
"> White </aListItem>
</asp:ListItistItem>i </asp:List
ge
���:���
asp:ListItem
tem>
tItem>
�� � �����
�
>
�
www.depurando.com 136
DropD{0:C}
}p
DropD}
<%@ PInher
<!DOC"http
<html<head
<</hea<body
<<
<<
{ Drop
DownList1.Da}"; DropDown }
}protected voDownList1.Se
Page Languagrits "DropdD
CTYPE html Pp://www.w3.o
l xmlns "httd runat "ser<title>Páginad>y><form id "fo<div>
<asp:Droonse<asp<asp<asp
</asp:Dr<asp:Lab<asp:Lab<asp:Lab
<br /><asp:Dro
AutoDataonse<asp
</asp:Dr<asp:Obj
Sele<br /><asp:Lab<br /><asp:Lab<br /><asp:Lab
</div></form>
pDownList1.DataValueFielnList1.DataB
oid Button1electedValue
ge "C#" AutoDownList1" %
PUBLIC " //Worg/TR/xhtml
tp://www.w3.rver">na sin títul
orm1" runat
opDownList Ielectedindexp:ListItem Vp:ListItem Vp:ListItem VropDownList>bel ID "Labebel ID "Labebel ID "Labe
opDownList IoPostBack "TaValueFieldelectedindexp:ListItem><ropDownList>ectDataSour
ectMethod "G
bel ID "Labe
bel ID "Labe
bel ID "Labe
� ����
ataSource d "Price";ind();
Click(object; }
EventWireup>
3C//DTD XHTM1/DTD/xhtml1
org/1999/xht
o</title>
"server">
D "DropDownLchanged "Droalue "E1">Elalue "E2">Elalue "E3">El
l1" runat "sl2" runat "sl3" runat "s
D "DropDownLrue" DataSou"Vin"changed "Dro/asp:ListIte
ce ID "ObjecetList" Type
l4" runat "s
l5" runat "s
l6" runat "s
�������
carList; Dr; DropDownLi
t sender, Ev
"true" Code
ML 1.0 Trans1 transition
tml">
List1" runatopDownList1lemento1</aslemento2</aslemento3</as
server" Textserver" Textserver" Text
List2" runaturceID "Obje
opDownList2em>
ctDataSourceeName "Car">
server" Text
server" Text
server" Text
� �� %���
ropDownList1ist1.DataTex
ventArgs e)
eFile "Dropd
sitional//ENnal.dtd">
t "server" ASelectedInd
sp:ListItem>sp:ListItem>sp:ListItem>
t "Label"></t "Label"></t "Label"></
t "server" AectDataSourc
SelectedInd
e1" runat "s></asp:Objec
t "Label"></
t "Label"></
t "Label"></
��� ���
1.DataTextFixtFormatStri
{ Label1.Te
dDownList1.a
N"
AutoPostBackdexChanged">>>>
/asp:Label></asp:Label></asp:Label>
AppendDataBoce1" DataTex
dexChanged">
server"ctDataSource
/asp:Label>
/asp:Label>
/asp:Label>
���:���
eld "Pricng "Price
ext
aspx.cs"
k "True">
<br /><br />
oundItems "TxtField "Mod
>
e>
�� � �����
�e";:
rue"el"
�
www.depurando.com 137
</bod</htm
usingusingusingusingusingusingusingusingusingusingusingusing
publi{
p{
}p{
}p{
}}
ListRepre
UtilicelemselecListSe
dy>ml>
g System; g System.Colg System.Cong System.Datg System.Ling System.Webg System.Webg System.Webg System.Webg System.Webg System.Webg System.Xml
ic partial c
protected vo{
}protected vo{ Label1.T Label2.T Label3.T
}protected vo{ Label4.T Label5.T Label6.T
}
tBoxesenta un co
ce el controlentos. Utiliceción de varioelectionMod
lections;nfiguration;ta;nq;b;b.Security;b.UI;b.UI.HtmlConb.UI.WebContb.UI.WebCont.Linq;
class DropdD
oid Page Loa
oid DropDown
Text "El eText "El VText "El I
oid DropDown
Text "El eText "El VText "El I
ontrol de cua
ListBox parae la propiedaos elementode.Multiple.
� ����
trols;rols;rols.WebPart
ownList1 : S
d(object sen
List1 Select
lemento selealor seleccindice selecc
List2 Select
lemento selealor seleccindice selecc
adro de lista
a crear un coad Rows pars, establezca
�������
ts;
System.Web.U
nder, EventA
tedIndexChan
eccionado esionado es "cionado es "
tedIndexChan
eccionado esionado es "cionado es "
que permite
ntrol de listaa especificara la propieda
� �� %���
UI.Page
Args e)
nged(object
s " + DropDo+ DropDownL
" + DropDown
nged(object
s " + DropDo+ DropDownL
" + DropDown
e la selección
a que permitr el alto del cad SelectionM
��� ���
sender, Eve
ownList1.SelList1.SelectnList1.Selec
sender, Eve
ownList2.SelList2.SelectnList2.Selec
n de uno o va
te la selecciócontrol. ParaMode en
���:���
entArgs e)
ectedItem;tedValue;ctedIndex;
entArgs e)
ectedItem;tedValue;ctedIndex;
arios elemen
ón de uno o vhabilitar la
�� � �����
�
ntos.
varios
�
www.depurando.com 138
Utilicejemcolec
<%@ P
<!DOC"
<html<head
<<scri
</
</hea<body
<h
<f
</
</bod</htm
usingusingusingusingusingusingusingusingusingusingpubli{
pp{
ce la coleccióplo, puede dcción Items y
Page Languag
CTYPE html P"http://www.l >d><title>ListBipt language
void Submi {
if (Lis Labe }
/script>
ad>y>
h3>ListBox E
form id "for
<asp:ListBRowsWidthSelecrunat
<asp:Li<asp:Li<asp:Li<asp:Li<asp:Li<asp:Li
</asp:List
<asp:buttoTextOnClirunat
<asp:LabelFontFontrunat
/form>
dy>ml>
g System; g System.Datg System.Cong System.Colg System.Webg System.Webg System.Webg System.Webg System.Webg System.Webic partial c
private Listprotected vo{ ListBox1
ón Items paradeterminar loy comproban
ge "C#" Auto
PUBLIC " //Ww3.org/TR/x
Box Example<e "C#" runat
tBtn Click(
tBox1.Selecel1.Text "Yo
Example</h3>
rm1" runat "
Box id "List"6"
h "100px"ctionMode "St "server">
stItem>ItemstItem>ItemstItem>ItemstItem>ItemstItem>ItemstItem>Item
tBox>
on id "Butto"Submit"ck "SubmitB
t "server" /
id "Label1Names "VerdSize "10pt"
t "server"/>
ta;nfiguration;lections;
b;b.Security;b.UI;b.UI.WebContb.UI.WebContb.UI.HtmlConclass ListBo
t<Car> carLioid Page Loa
.SelectionM
� ����
a examinar loos elementondo el valor S
EventWireup
3C//DTD XHTMhtml1/DTD/xh
/title>"server">
Object sende
tedIndex > u chose: " +
server">
Box1"
ingle"
1</asp:List2</asp:List3</asp:List4</asp:List5</asp:List6</asp:List
n1"
tn Click">
"ana"
rols;rols.WebParttrols;//addex Control :
st Car.Getd(object sen
ode ListSe
�������
os objetos Lis seleccionadSelected de c
"True" %>
ML 1.0 Transhtml1 transi
er, EventArg
1)+ ListBox1.S
tItem>tItem>tItem>tItem>tItem>tItem>
ts;ed using SysSystem.Web.
tList();nder, EventA
electionMode
� �� %���
stItem incluidos en el concada elemen
sitional//ENitional.dtd"
gs e)
SelectedItem
stem.Collect.UI.Page
Args e)
e.Multiple;
��� ���
idos en el control ListBoxnto ListItem.
N"">
m.Text;
tions.Generi
���:���
ontrol ListBox enumerand
c;
�� � �����
!x. Pordo la
�
www.depurando.com 139
}p{
}}
CheCreade fo
ListBox2if (!IsP
{ List List List List List }
}protected vo{
foreach {
if ( {
} } ListBox2
}
eckBoxLisun grupo derma dinámic
.SelectionMPostBack)
tBox1.DataSotBox1.DataTetBox1.DataVatBox1.DataTetBox1.DataBi
oid Button1
(ListItem i
item.Select
ListBox2.It
.DataBind()
ste casillas de vca enlazando
� ����
ode ListSe
urce carLixtField "PlueField "xtFormatStrind();
Click(object
tem in ListB
ed)
ems.Add(item
;
verificación do el control a
�������
electionMode
ist;Price";"Price";ing "Price
t sender, Ev
Box1.Items)
m);
de selecciónal origen de d
� �� %���
e.Multiple;
e: {0:C}";
ventArgs e)
múltiple cuydatos.
��� ���
ya creación p
���:���
podría realiza
�� � �����
"
arse
�
www.depurando.com 140
El conque sde Itedetercomp
Es poRepevalorla listestabRepe
El concontr
<%@ P
<!DOC"
<html
<head<
<scri
ntrol CheckBse pueden geems con mierminar cuálepruebe la pro
osible especifatLayout y Rpredetermita se presentblece en RepeatDirection.
ntrol CheckBroles CheckB
Page Languag
CTYPE html P"http://www.l >
d id "Head1"<title> Checipt runat "s
void Check {
Message
// Iter// contfor (in
{
BoxList propoenerar dinámembros que ss son los eleopiedad Sele
ficar la formaRepeatDirectnado), la listta sin estructeatDirection.Horizontal,
BoxList aportBox individua
ge "C#" Auto
PUBLIC " //Ww3.org/TR/x
runat "servckBoxList Exerver">
k Clicked(Ob
e.Text "Se
rate through trol and dispnt i 0; i<ch
� ����
orciona un gmicamente mse corresponmentos seleected de cada
a en que se mtion. Si Repeaa se presenttura de tablan.Vertical. Sila lista se pr
ta prácticas fales permiten
EventWireup
3C//DTD XHTMhtml1/DTD/xh
ver">ample </titl
ject sender,
lected Item
the Items cplay the seleckboxlist1
�������
rupo de casimediante el enden a elemeeccionados, ra elemento d
muestra la liatLayout seta en una taba. De forma pse estableceesenta de fo
funciones den un mayor c
"True" %>
ML 1.0 Transhtml1 transi
le>
, EventArgs
(s):<br /><b
collection olected items.Items.Count
� �� %���
llas de verifienlace de datentos individrecorra la colde la lista.
sta utilizandestablece enbla. Si se estapredetermine esta propieorma horizon
e enlace de dcontrol sobre
sitional//ENitional.dtd"
e)
br />";
of the Checks.t; i++)
��� ���
cación de setos. Contieneuales de la lilección en ite
o las propiedn RepeatLayoablece en Reada, Repeatedad enntal.
datos. Sin eme el diseño.
N"">
kBoxList
���:���
elección múlte una coleccista. Paraeración y
dadesout.Table (eepeatLayouttDirection se
mbargo, los
�� � �����
)
tipleión
l.Flow,e
�
www.depurando.com 141
</
</hea
<body
<f
</
</bod
</htm
RadReprecontropcióContide laSelec
PuedRepeprede
if ( {
M
}
}
}
/script>
ad>
y>
form id "for
<h3> Check
Select ite
<br /><br
<asp:CheckAutoPCellPCellSRepeaRepeaRepeaTextAOnSelrunat
<asp:Li<asp:Li<asp:Li<asp:Li<asp:Li<asp:Li
</asp:Chec
<br /><br
<asp:label
/form>
dy>
ml>
dioButtonesenta un corol RadioButón de selecciiene una colelista. Para dctedItem de l
e especificaratDirection.eterminado)
checkboxlis
Message.Text
rm1" runat "
kBoxList Exam
ems from the
/>
kBoxList idPostBack "TrPadding "5"pacing "5"
atColumns "2atDirectionatLayout "FlAlign "RightectedIndexC
t "server">
stItem>ItemstItem>ItemstItem>ItemstItem>ItemstItem>ItemstItem>Item
ckBoxList>
/>
id "Messag
nListontrol de listattonList propón única queección Itemseterminar cula lista.
r la represenSi RepeatLa, la lista se re
� ����
t1.Items[i]
+ checkbox
server">
mple </h3>
CheckBoxLis
"checkboxlisue"
""Vertical"ow""hanged "Chec
1</asp:List2</asp:List3</asp:List4</asp:List5</asp:List6</asp:List
e" runat "se
a que encapsporciona a loe se puedens con miembuál es el elem
ntación de layout se estaepresenta en
�������
.Selected)
xlist1.Items
st.
st1"
ck Clicked"
tItem>tItem>tItem>tItem>tItem>tItem>
erver" Assoc
sula un grups desarrolladgenerar dináros que se cmento selecc
lista con lasablece en Repn una tabla.
� �� %���
s[i].Text +
ciatedContro
po de controldores de págámicamenteorrespondencionado, prue
propiedadepeatLayout.TSi se estable
��� ���
"<br />";
olID "checkb
les de botónginas un grupe mediante en con elemenebe la propie
s RepeatLayoTable (el valece en Repea
���:���
boxlist1"/>
de opción. Epo de botonel enlace de dntos individuedad
out yoratLayout.Flo
�� � �����
�*
Eles dedatos.uales
w, la
�
www.depurando.com 142
lista sRepeRepe
<%@ P<!DOC
"<html<hea
<<scri
</he<bod
Text
Text
se representeatDirectioneatDirection.
Page LanguagCTYPE html P"http://www.l >ad><title>Radioipt language
void But {
if (R { La } }
void chk {
if (c { Ra }
else { Ra } }
void chk {
if (c { Ra }
else { Ra } }
</script>
ead>dy>
<h3>RadioBu
<form id "f
<asp:Ra<asp<asp<asp<asp<asp<asp
</asp:R
<br />
<asp:Ch"Display Ta
<br />
<asp:Ch"Display Ho
<br />
ta sin estructse establece.Horizontal,
ge "C#" AutoPUBLIC " //Ww3.org/TR/x
oButtonListe "C#" runat
tton1 Click(
RadioButtonL
abel1.Text
kLayout Chec
chkLayout.Ch
adioButtonLi
adioButtonLi
kDirection C
chkDirection
adioButtonLi
adioButtonLi
uttonList Ex
form1" runat
adioButtonLip:ListItem>Ip:ListItem>Ip:ListItem>Ip:ListItem>Ip:ListItem>Ip:ListItem>IRadioButtonL
heckBox id "able Layout"
heckBox id "orizontally"
� ����
tura con forme en RepeatDla lista se re
EventWireup3C//DTD XHTMhtml1/DTD/xh
Example</tit"server">
object Sourc
ist1.Selecte
"You select
kedChanged(O
ecked tru
st1.RepeatLa
st1.RepeatLa
heckedChange
.Checked
st1.RepeatDi
st1.RepeatDi
ample</h3>
"server">
st id "Radiotem 1</asp:Ltem 2</asp:Ltem 3</asp:Ltem 4</asp:Ltem 5</asp:Ltem 6</asp:List>
chkLayout" OChecked "tr
chkDirectionAutoPostBac
�������
ma de tabla.Direction.Vepresenta en
"True" %> ML 1.0 Transhtml1 transi
tle>
ce, EventArg
edIndex > 1
ted: " + Rad
Object sende
ue)
ayout Repe
ayout Repe
ed(Object se
true)
irection R
irection R
oButtonList1ListItem>ListItem>ListItem>ListItem>ListItem>ListItem>
OnCheckedCharue" AutoPos
n" OnCheckedck "true" ru
� �� %���
De forma prrtical. Si estaformato hor
sitional//ENitional.dtd"
gs e)
1)
dioButtonLis
er, EventArg
eatLayout.Ta
eatLayout.Fl
ender, Event
RepeatDirect
RepeatDirect
1" runat "se
anged "chkLastBack "true
dChanged "chunat "server
��� ���
redeterminadablece esta prizontal.
N"">
st1.Selected
gs e)
able;
low;
tArgs e)
tion.Horizon
tion.Vertica
erver">
ayout Checkee" runat "se
hkDirectionr" />
���:���
da,propiedad en
dItem.Text;
ntal;
al;
edChanged"erver" />
CheckedChan
�� � �����
� n
ged"
�
www.depurando.com 143
</bo</ht
usingusingusingusingusingusingusingusingusingusingpubli{
pp{
}}
<asp:Bu
<br />
<asp:La
</form>
ody>tml>
g System; g System.Datg System.Cong System.Colg System.Webg System.Webg System.Webg System.Webg System.Webg System.Webic partial c
private Listprotected vo{ RadioBut RadioBut CheckBox CheckBox
if (!IsP { List List List Radi Radi Radi Chec Chec Chec Data }
}
utton id "Bu
abel id "Lab
ta;nfiguration;lections;
b;b.Security;b.UI;b.UI.WebContb.UI.WebContb.UI.HtmlConclass CheckB
t<Car> carLioid Page Loa
ttonList1.RepttonList1.RepxList1.RepeaxList1.RepeaPostBack)
tBox1.DataSotBox1.DataTetBox1.DataVaoButtonListoButtonListoButtonList
ckBoxList1.DckBoxList1.DckBoxList1.DaBind();
� ����
tton1" Text
el1" font na
rols;rols.WebParttrols;//addeoxList and R
st Car.Getd(object sen
peatColumnspeatDirectiotColumns 3tDirection
urce carLixtField "MlueField "1.DataSource1.DataTextFi1.DataValueFataSource ataTextFieldataValueFiel
�������
"Submit" on
ames "Verdan
ts;ed using SysRadioButtonL
tList();nder, EventA
3; on RepeatD3;
RepeatDire
ist;Make";"Price";e carList;ield "MakeField "PricarList;
d "Make";ld "Price"
� �� %���
nclick "Butt
na" font siz
stem.CollectList Control
Args e)
Direction.Ve
ection.Horiz
;e";ice";
";
��� ���
ton1 Click"
ze "8pt" run
tions.Generils : System.
ertical;
zontal;
���:���
runat "serv
nat "server"
c;Web.UI.Page
�� � �����
��er"/>
/>
�
www.depurando.com 144
BullCreaBulleespecsitúecontr
ParaBulleenum
EstiloNotSNumLoweUppeLoweUppeDiscCircleSquaCusto
UtilicelemFirstBSquaCusto
letedListun control qetedList paracificar los eleun objeto Lirol BulletedL
especificar eetedList, estameración Bul
o de viñeta SetberederAlphaerAlphaerRomanerRoman
eareomImage
ce la propiedentos de listBulletNumbere, Circle o ComImage pa
tque genera ucrear una lisementos de vistItem por cList.
el tipo de viñablezca la proletStyle. En l
ad FirstBulleta en un conter se omite sCustomImagra especifica
� ����
na lista de esta de elemevista individucada entrada
eta con el quopiedad Bulla tabla sigui
DescripciónNo establecUn númeroUna letra mUna letra mUn númeroUn númeroUn círculo rUn círculo vUn cuadradUna image
etNumber patrol Bulletedsi la propiedage. Si establear una image
�������
lementos coentos a los quales que dea entre las et
ue desea moetStyle en uente se enum
ncido. o.minúscula. mayúscula. o romano en o romano en relleno. vacío.do relleno. n personaliza
ara especificadList ordenadad BulletStyce la propieden personaliz
� �� %���
on formato due se da un feben apareceiquetas de a
ostrar los eleno de los tipmeran los es
minúsculas. mayúsculas.
ada.
ar el valor indo. El valor qle está estabdad BulletStyzada de la viñ
��� ���
e viñetas. Utformato coner en el contpertura y de
mentos de lios de viñetastilos de viñe
icial de la nuque se asignablecida en elyle en el valoñeta, tambié
���:���
tilice el contviñetas. Parrol BulletedLe cierre del
ista en un codefinidos po
eta disponibl
umeración dea a la propiedcampo Disc,or del campoén deberá
�� � �����
��rolraList,
ontrolor laes.
e losdad,o
�
www.depurando.com 145
estabimage
ParaBulleenumText,
CuanValueTargeprodu
Si la pelemParavíncupropiaplicaparahizo c
usingusingusingusingusingusingusingusingusingusingpubli{
pp{
}pE{
}pE{
blecer la propen.
especificar eetedList, estameración BulHyperLink y
do se hace ce para especet para especuce el despla
propiedad Dentos de listcontrolar meulo, proporcioiedades Seleables al contdeterminar eclic.
g System; g System.Datg System.Cong System.Colg System.Webg System.Webg System.Webg System.Webg System.Webg System.Webic partial c
private Listprotected vo{ ListBox1 ListBox2
if (!IsP { Bull Bull Bull List
Enum List
Enum Data }
}protected voEventArgs e){ Bulleted (BulletS
typeof(B ListBox1
}protected voEventArgs e){ Bulleted (Bullete
piedad Bulle
el comportamablezca la proletedListDispy LinkButton.
clic en un hipificar la direccificar la venazamiento al
isplayModeta como víncediante progone un contrectedIndex ytrol Bulletedel índice del
ta;nfiguration;lections;
b;b.Security;b.UI;b.UI.WebContb.UI.WebContb.UI.HtmlConclass Bullet
t<Car> carLioid Page Loa
.AutoPostBa
.AutoPostBaPostBack)
etedList1.DetedList1.DetedList1.D
tBox1.DataSom.GetNames(ttBox2.DataSom.GetNames(taBind();
oid ListBox1
dList1.Bulletyle)Enum.P
BulletStyle).SelectedVa
oid ListBox2
dList1.DispledListDispla
� ����
tImageUrl de
miento de propiedad DispplayMode. Lo
pervínculo, sección URL a lntana o el mal hacer clic e
se estableceulos que devgramación larolador de evSelectedItemList. Utilice lbotón de vín
rols;rols.WebParttrols;//addeedList Contr
st Car.Getd(object sen
ck true;ck true;
ataSource ataTextFieldataValueFielurce ypeof(Bulleturce ypeof(Bullet
SelectedInd
tStyle arse(,lue);
SelectedInd
ayMode yMode)Enum.P
�������
e forma que
resentación dplayMode enos comporta
e desplaza ala que desplaarco donde sn un hiperví
e en LinkButtvuelven datos acciones qventos param se heredanos datos denculo de un o
ts;ed using Sysrol : System
tList();nder, EventA
carList;d "Make";ld "Price"
tStyle));
tedListDispl
dexChanged(o
dexChanged(o
Parse(
� �� %���
especifique
de los elemen uno de los vamientos de
una direccióaza un hipervse muestra lanculo.
ton, el contros al servidorue se realizael evento Cln de la claseevento de laobjeto Bulle
stem.Collectm.Web.UI.Pag
Args e)
";
layMode));
object sende
object sende
��� ���
la ubicación
entos de listavalores definpresentación
ón URL. Utilicvínculo. Utilia página Web
rol BulletedLr cuando se han al hacer click. Tenga enListControl ya clase BullettedList en el
tions.Generige
er,
er,
���:���
n del archivo
a en un contrnidos por lan definidos s
ce la propiedice la propieb a la que se
Listmuestrahace clic en elic en un botn cuenta quey no sontedListEventAl que el usua
c;
�� � �����
��de
rol
son
daddad
losellos.ón dee las
Argsario
�
www.depurando.com 146
}}
AdRMuesun titcamb
La infXMLincluyestabimageno va
<%@ P<!DOC
"<html
<hea<
</hea
<bod<
<</bo
typeof(B ListBox2
}
Rotatorstra un titulatular de anunbia cada vez q
formación sopermite manyen la ruta dblece un víncen no está dalida la inform
Page LanguagCTYPE html P"http://www.l >
ad id "Head1<title>AdRotad>
dy><form id "fo
<h3>AdRot
<asp:AdRoTargAdve
</form>ody>
BulletedList.SelectedVa
ar de anuncioncio seleccioque se actua
obre los anunntener una lide acceso a uculo al hacerisponible, unmación cont
ge "C#" AutoPUBLIC " //Ww3.org/TR/x
" runat "setator Exampl
orm1" runat
tator Exampl
otator id "Aget " self"ertisementFi
� ����
DisplayMode)lue);
o en una págonado aleatoaliza la págin
ncios se almaista de anununa imagen qclic en el cona palabra clenida en est
EventWireup3C//DTD XHTMhtml1/DTD/xh
rver">e</title>
"server">
e</h3>
dRotator1" r
le "~/App Da
�������
),
gina Web. Utoriamente ena.
acena en uncios y sus atrque se va a mntrol, el textlave y la frecte archivo.
"True" %> ML 1.0 Transhtml1 transi
runat "serve
ata/Ads.xml"
� �� %���
tilice el contrn la página W
archivo XMLributos asocimostrar, la dio alternativocuencia del a
sitional//ENitional.dtd"
er"
"/>
��� ���
rol AdRotatoWeb. El anunc
L independieiados. Entrerección URLo que se muenuncio. El co
N"">
���:���
or para mostcio mostrado
ente. El archilos atributosa la que seestra cuandoontrol AdRot
�� � �����
��
raro
ivos se
o latator
�
www.depurando.com 147
</ht
<?xml<Adve1.2"> <Ad
<<<<<
</A <Ad
<<<<<
</A <Ad
<<<<<
</A</Adv
usingusingusingusingusingusingusingusingusingusingpubli{
p{
tml>
l version "1ertisements>d xmlns ""><Keyword>Adv<ImageUrl>~/<NavigateUrl<AlternateTe<ImpressionsAd>d xmlns ""><Keyword>Con<ImageUrl>~/<NavigateUrl<AlternateTe<ImpressionsAd>d xmlns ""><Keyword>Nor<ImageUrl>~/<NavigateUrl<AlternateTe<ImpressionsAd>vertisements
g System; g System.Datg System.Cong System.Colg System.Webg System.Webg System.Webg System.Webg System.Webg System.Webic partial c
protected vo{ AdRotato
.0" encodinxmlns "http
ventureWorksimages/Adve>http://www
ext>Ad for A>100</Impre
ntoso</Keywoimages/Cont>http://www
ext>Ad for C>100</Impre
rthwind</Keywimages/Nort>http://http
ext>Ad for N>50</Impres
>
ta;nfiguration;lections;
b;b.Security;b.UI;b.UI.WebContb.UI.WebContb.UI.HtmlConclass AdRota
oid Page Loa
or1.Advertis
� ����
g "utf 8" ?>://schemas.m
</Keyword>ntureWorks.g.adventure wdventure Worssions>
rd>oso.gif</Ima.contoso.comontoso Ltd. ssions>
word>hwindTradersp://www.nortorthwind Trasions>
rols;rols.WebParttrols;tor Control
d(object sen
ementFile
�������
>microsoft.co
gif</ImageUrworks.com</Nrks Web site
ageUrl>m/</NavigateWeb site</A
s.gif</Imagethwindtraderaders Web si
ts;
: System.We
nder, EventA
"~/App Data
� �� %���
om/AspNet/Ad
rl>NavigateUrl>e</Alternate
eUrl>AlternateTex
eUrl>rs.com</Naviite</Alterna
eb.UI.Page
Args e)
a/Ads.config
��� ���
dRotator Adv
>eText>
xt>
igateUrl>ateText>
g";
���:���
vertisement
�� � �����
��
File
�
www.depurando.com 148
}}
Se rno tsólo
ComReprecontr
La clacomp
AdRotato AdRotato
}
recomiendatienen acco lectura.
mpositeDesenta la claroles de serv
ase Composipuesto que s
or1.Height or1.Width
a colocar ceso los n
DataBounse base paravidor.
teDataBoune enlaza a lo
� ����
60;468;
el archivnavegadore
ndControa un control t
ndControl siros datos de u
�������
vo xml en es. Poner
oltabular enlaz
rve como claun origen de
� �� %���
la carpetextensión
zado a datos
se base paradatos. Un co
��� ���
ta App_Datn .config
s que se com
a un control dontrol de ser
���:���
ta, a la cy permiti
mpone de otr
de servidorrvidor compu
�� � �����
�!
cualir
os
uesto
�
www.depurando.com 149
es undesarsu luga dat
Las clCreataccescolec
DatContrcontroadmit
<%@ PInher
<!DOC"http
<html<head
<</hea<body
<<
<<
</bod</htm
n control querrolladores dgar, utilizan cos compuest
lases que heteChildContrso a los contcción Control
taListol de lista enlol DataList pate la selección
Page Languagrits "eDataL
CTYPE html Pp://www.w3.o
l xmlns "httd runat "ser<title>Páginad>y><form id "fo<div>
<asp:DatBordDataGrid<Foo<Alt<Ite<Sel<Hea<Ite
</It</asp:Da<asp:Obj
Sele
</div></form>dy>ml>
e se componede páginas nocontroles qutos son los c
redan del corols(IEnumerroles secundls.
azada a datosara mostrar u y la edición.
ge "C#" AutoList1" %>
PUBLIC " //Worg/TR/xhtml
tp://www.w3.rver">na sin títul
orm1" runat
taList ID "DderColor "#DaKeyField "VdLines "VertoterStyle BaternatingItememStyle BackectedItemSt
aderStyle BaemTemplate>Vin:<asp:Label<br />Make:<asp:Label<br />Model:<asp:Label<br />Year:<asp:Label<br />Price:<asp:Label<br /><br />
temTemplate>ataList>ectDataSour
ectMethod "G
� ����
e de una como utilizan dirue derivan deontroles Det
ontrol Comporable,Booleadarios de un
s que muestrauna lista enlaz
EventWireup
3C//DTD XHTM1/DTD/xhtml1
org/1999/xht
o</title>
"server">
ataList1" ruEDFDE" Bordein" DataSourical" WidthckColor "#CCmStyle BackCColor "#F7F7yle BackColockColor "#6B
ID "VinLabel
ID "MakeLabe
ID "ModelLab
ID "YearLabe
ID "PriceLab
ce ID "ObjecetList" Type
�������
mbinación deectamente le esta clase.tailsView, Fo
ositeDataBon) para creacontrol enla
a los elementoada a datos d
"true" Code
ML 1.0 Trans1 transition
tml">
unat "servererStyle "NonrceID "Objec"377px">
CCC99" />Color "White7DE" />or "#CE5D5A"B696B" Font
l" runat "se
el" runat "s
bel" runat "
el" runat "s
bel" runat "
ctDataSourceeName "Car">
� �� %���
e otros contra clase CompAlgunos ejemormView y Gr
oundControlr la jerarquíazado a datos
os mediante edefinida por un
eFile "eData
sitional//ENnal.dtd">
r" BackColorne" BorderWictDataSource
e" />
" Font BoldBold "True"
erver" Text
server" Text
"server" Tex
server" Text
"server" Tex
e1" runat "s></asp:Objec
��� ���
roles de servpositeDataBmplos de conridView.
deben reema de controles compuesto
el uso de plantna plantilla. E
aList1.aspx.
N"
r "White"idth "1px" Ce1" ForeColo
"True" Fore" ForeColor
'<%# Eval("
t '<%# Eval(
xt '<%# Eval
t '<%# Eval(
xt '<%# Eval
server"ctDataSource
���:���
vidor. LosBoundControntroles enlaz
mplazar el mées. Para teneo, utilice la
tillas. Utilice el control Data
cs"
CellPaddingor "Black"
eColor "Whit"White" />
Vin") %>' /
"Make") %>'
("Model") %
"Year") %>'
("Price") %
e>
�� � �����
�"ol; enzados
étodoer
elaList
"4"
e" />
>
/>
>' />
/>
>' />
�
www.depurando.com 150
GridMuescampedita
El concolumlas ca
�
�
�
�
�
�
�
�
�
dViewstra los valorpo y cada filar estos elem
ntrol GridViemna represenaracterísticas
Enlace a c
Funcione
Funcione
Funcione
Funcione
Acceso mpropieda
Varios ca
Varios ca
Personali
res de un oria representamentos.
ew se utilizanta un camps siguientes:
controles de
es de ordenac
es de actualiz
es de paginac
es de selecció
mediante prodes dinámic
mpos de clav
mpos de dat
ización de la
� ����
gen de datosun registro.
para mostrapo y cada fila
e origen de d
ción integrad
zación y elim
ción integrad
ón de fila inte
gramación aamente, con
ve.
tos para las c
apariencia a
�������
s en una tabEl control G
ar los valoresrepresenta
atos, como S
das.
minación integ
das.
egradas.
al modelo dentrolar event
columnas de
a través de te
� �� %���
la donde cadridView perm
s de un origeun registro.
SqlDataSourc
gradas.
e objetos Gridtos, etc.
e hipervínculo
emas y estilo
��� ���
da columna rmite seleccio
en de datos eEl control Gr
ce.
dView para e
o.
os.
���:���
representa uonar, ordena
en una tabla.ridView adm
establecer
�� � �����
�)unar y
. Cadamite
�
www.depurando.com 151
El Griobjetconti
idView consitos DataContene la propi
iste en una ctrolField (coledad Cells, q
� ����
colección deumnas) . El oque es una co
�������
objetos Gridobjeto GridVolección de D
� �� %���
dViewRow (fiViewRow herDataControlF
��� ���
ilas) y una coreda de TableFieldCell (cel
���:���
olección deeRow, el cualdas).
�� � �����
�*
al
�
www.depurando.com 152
<%@ PInher
<!DOC"http<html<head
<</hea<body
<<<<<
Delet
<<
posit
DataS
Page Languagrits "eGridv
CTYPE html Pp://www.w3.ol xmlns "httd runat "ser<title>Páginad>y><form id "fo<asp:Button<div></div><asp:ObjectD
TypeNameteMethod "De
InsertMe<InsertP
<asp<asp<asp<asp<asp
</Insert</asp:Object<asp:GridVietion: absolu
top: 75pSourceID "Ob
ge "C#" Autoview1" %>
PUBLIC " //Worg/TR/xhtmltp://www.w3.rver">na sin títul
orm1" runatID "Button1
DataSource Ie "CarList"elete"ethod "InserParameters>p:Parameter Np:Parameter Np:Parameter Np:Parameter Np:Parameter NtParameters>tDataSource>ew ID "GridVute;px" AllowPagbjectDataSou
� ����
EventWireup
3C//DTD XHTM1/DTD/xhtml1org/1999/xht
o</title>
"server">" runat "ser
D "ObjectDatSelectMethod
t">
Name "vin" TName "make"Name "model"Name "year"Name "price"
iew1" runat
ing "True" Arce1"
�������
"true" Code
ML 1.0 Trans1 transitiontml">
rver" OnClic
taSource1" rd "Select" U
Type "StringType "Strin
" Type "StriType "Int32
" Type "Deci
"server" St
AutoGenerate
� �� %���
eFile "eGrid
sitional//ENnal.dtd">
ck "Button1
runat "serveUpdateMethod
g" />ng" />ing" />2" />imal" />
tyle "z inde
eColumns "Fa
��� ���
dview1.aspx.
N"
Click" Text
er" DataObjed "Update"
ex: 100; lef
alse"
���:���
cs"
t "Load Car"
ectTypeName
ft: 20px;
�� � �����
�
/>
"Car"
�
www.depurando.com 153
GridL
ShowS
ReadO
/>
Heade
<<
</bod</htm
usingusingusingusingusingusingusingusingusingusingusingusing
publi{
p{
}p{
}}
DetMuesla tabinsert
El contablacombDetai
�
Width "1Lines "None"
<Columns<asp
SelectButton<asp
Only "True"<asp<asp
<asp<asp
erText "Pric
</as</Column<FooterS<RowStyl<EditRow<Selecte<PagerSt<HeaderS<Alterna
</asp:GridVi</form>dy>ml>
g System; g System.Colg System.Cong System.Datg System.Ling System.Webg System.Webg System.Webg System.Webg System.Webg System.Webg System.Xml
ic partial c
protected vo{
}protected vo{
CarList. GridView
}
tailsViewstra los valorbla representtar registros
ntrol Details, donde cadabinación conilsView adm
Enlace a c
35px" CellP>>
p:CommandFien "True" />p:BoundField/>
p:BoundFieldp:BoundField
p:BoundFieldp:BoundFieldce" HtmlEncoSortExpress<ItemStylep:BoundFiel
ns>tyle BackCoe BackColor
wStyle BackCedRowStyle Btyle BackColtyle BackCo
atingRowStylew>
lections;nfiguration;ta;nq;b;b.Security;b.UI;b.UI.HtmlConb.UI.WebContb.UI.WebCont.Linq;
class eGridv
oid Page Loa
oid Button1
Initialize(w1.DataBind(
wres de un únta un campo.
View se utilia campo delun control Gite las caract
controles de
� ����
adding "4" D
ld ShowDelet
DataField "
DataField "DataField "
DataField "DataField "
de "False"ion "Price">HorizontalAld>
lor "#5D7B9D"#F7F6F3" F
olor "#99999ackColor "#Eor "#284775"lor "#5D7B9De BackColor
trols;rols;rols.WebPart
iew1 : Syste
d(object sen
Click(object
););
ico registro do del registro
iza para mosregistro se mGridView parterísticas sig
e origen de d
�������
DataKeyNames
teButton "Tr
"Vin" Header
"Make" Heade"Model" Head
"Year" Heade"Price" Data
>lign "Right"
D" Font BoldForeColor "#99" />E2DED6" Font" ForeColorD" Font Bold"White" For
ts;
em.Web.UI.Pa
nder, EventA
t sender, Ev
de un origeno. El control D
strar un únicomuestra en ura escenariosuientes:
atos, como S
� �� %���
s "Vin" Fore
rue" ShowEdi
rText "Vin"
erText "MakederText "Mod
erText "YearaFormatStrin
" />
d "True" For#333333" />
t Bold "True"White" Hor
d "True" ForreColor "#28
age
Args e)
ventArgs e)
de datos enDetailsView
o registro deuna fila de las de detalles
SqlDataSourc
��� ���
eColor "#333
itButton "Tr
SortExpress
e" SortExpredel" SortExp
r" SortExpreng "{0:C}"
reColor "Whi
e" ForeColorrizontalAligreColor "Whi84775" />
n una tabla, dpermite edit
e un origen dtabla. Se pu
s maestros. E
ce.
���:���
333"
rue"
ion "Vin"
ession "Makepression "Mo
ession "Year
te" />
r "#333333"gn "Center"te" />
donde cada ftar, eliminar
de datos en uuede utilizar eEl control
�� � �����
��
" />del"
" />
/>/>
fila dee
unaen
�
www.depurando.com 154
�
�
�
�
�
Camp
Cadadistincontrtipos
Tipocolum
Boun
Butto
Chec
Com
Hype
Imag
Tem
Funcione
Funcione
Funcione
Acceso mpropieda
Personali
pos de fila
fila de datosntos tipos deroles de camde campos d
de campo dmna
ndField
onField
ckBoxField
mandField
erLinkField
geField
plateField
es de inserció
es de actualiz
es de paginac
mediante prodes dinámic
ización del a
s del controle campos depo se derivade fila que se
deDescripc
Muestra
Muestramostrarbotón A
MuestraNormalmcampos
MuestraoperacioDetailsV
Muestrahipervíncampo a
Muestra
MuestraDetailsV
� ����
ón integrada
zación y elim
ción integrad
gramación aamente, con
specto medi
DetailsViewfila determinan de DataCoe pueden ut
ción
a el valor de
a un botón dr una fila conAgregar o Qu
a una casillamente, estecon un valo
a botones deones de edicView.
a el valor denculo. Este tia la dirección
a una imagen
a el contenidView según u
�������
s.
minación integ
das.
al modelo dentrolar event
ante temas y
w se crea decnan el compoontrolField. Lilizar.
un campo d
de comandon un control ditar.
de verificacitipo de camr booleano.
e comandosción, inserció
un campo dpo de campon URL del hip
n en el contr
do definido puna plantilla
� �� %���
gradas.
e objetos Dettos, etc.
y estilos.
clarando un cortamiento dLa siguiente t
e un origen d
en el controde botón pe
ión en el conpo de fila se
integrados qón o eliminac
e un origen do de fila permpervínculo.
rol DetailsVie
por el usuarioespecificada
��� ���
tailsView pa
control de cade las filas entabla contien
de datos com
l DetailsViewrsonalizado,
ntrol DetailsVutiliza para
que permitención en el co
de datos commite enlazar
ew.
o para una fia. Este tipo d
���:���
ra establece
ampo. Losn el control.ne los diferen
mo texto.
w. Esto permtal como un
View.mostrar
n realizarntrol
mo unun segundo
ila del controde campo de
�� � �����
��
r
Losntes
miten
o
ol
�
www.depurando.com 155
De mpermtipo eGuidfila, e
Prop
Alter
Com
EditR
Emp
Foot
Head
Inser
Page
Row
Field
manera predemite generar aenlazable dey el conjuntoen el orden e
piedad de est
rnatingRowS
mandRowSt
RowStyle
tyDataRowS
terStyle
derStyle
rtRowStyle
erStyle
wStyle
dHeaderStyle
fila perm
eterminada,automáticaml origen de do de tipos pren el que cad
tilo Descri
Style ConfigDetailsmuestde Alte
tyle Configcoman
ConfigDetails
Style Configcontro
ConfigDetails
ConfigDetails
ConfigDetails
ConfigDetails
ConfigCuandfilas dela conf
e Config
� ����
mite crear un
la propiedadmente un objdatos. Los tiprimitivos. Cada uno apare
pción
uración de esView. Cuanran alternanernatingRow
uración de endo integrad
uración de esView está e
uración de eol DetailsView
uración de esView.
uración de esView.
uración de esView está e
uración de esView.
uración de eo también see datos se mfiguración de
uración de e
�������
n campo de f
d AutoGenerjeto de camppos enlazableda campo seece en el orig
estilo de las fdo se establndo la configuwStyle.
estilo de la fios en el con
estilo de las fen modo de e
estilo de la fiw cuando el
estilo de la fi
estilo de la fi
estilo de las fen modo de i
estilo de la fi
estilo de las fe estableceuestran altee Alternating
estilo de la co
� �� %���
fila personal
ateRows se epo de fila enes válidos soe muestra engen de datos
filas de datosece esta prouración de R
la que contietrol DetailsV
filas de datosedición.
la de datos vorigen de da
la del pie de
la del encabe
filas de datosinserción.
la del localiz
filas de datosa propiedadrnando la cogRowStyle.
olumna del e
��� ���
izado.
establece enlazado paran String, Datntonces como.
s alternas deopiedad, las fRowStyle y la
ene los botoView.
s cuando el c
vacía que seatos no cont
página del c
ezado del co
s cuando el c
ador del con
s del controlAlternating
onfiguración
encabezado d
���:���
n true, lo cuacada campoteTime, Decio texto en un
el controlfilas de datoconfiguració
nes de
control
muestra entiene registro
control
ontrol
control
ntrol
DetailsViewgRowStyle, lade RowStyle
del control
�� � �����
��
aldemal,na
s seón
elos.
w.ase y
�
www.depurando.com 156
Event
El conmanesiguieDetaiDispo
Even
Item
Item
Item
Item
Item
Item
Item
Item
tos
ntrol Detailsera, se puedeente tabla seilsView tambosed, Init, Lo
nto
mCommand
mCreated
mDeleted
mDeleting
mInserted
mInserting
mUpdated
mUpdating
Details
View propore ejecutar une enumeranbién heredaad, PreRend
Descrip
Se prod
Se prodDetailsVpara mo
Se prodcontroleventoelimina
Se prodcontrolevento
Se prodcontrolpara co
Se prodcontrolpara ca
Se prodel contrpara co
Se prodcontrolpara ca
� ����
sView.
rciona variosna rutina perlos eventos aestos eventoer y Render.
pción
duce cuando
duce despuésViewRow enodificar los v
duce al hacerDetailsViewsuele utilización.
duce al hacerDetailsViewsuele utiliza
duce al hacerDetailsView
omprobar los
duce al hacerDetailsViewncelar la ope
duce al hacerrol DetailsViomprobar los
duce al hacerDetailsViewncelar la ope
�������
s eventos qursonalizada sadmitidos poos de sus cla.
se hace clic
s de haber cel control D
valores de un
r clic en un bw elimine el rrse para com
r clic en un bw elimine el rrse para can
r clic en un bw inserte el rs resultados d
r clic en un bw inserte el reración de in
r clic en un bew actualices resultados d
r clic en un bw actualice eeración de a
� �� %���
e puede utilsiempre queor el controlses base: Da
en un botón
reado todosDetailsView.n registro an
botón Eliminaregistro del omprobar el re
botón Eliminaregistro del oncelar la oper
botón Insertaegistro. Estede la operac
botón Insertaegistro. Estenserción.
botón Actualie la fila. Estede la operac
botón Actualil registro. Esctualización.
��� ���
izar para prose produzcaDetailsViewataBinding, D
n del control
los objetosEste eventotes de mostr
ar, pero desporigen de datesultado de l
ar, pero anteorigen de datración de eli
ar, pero despe evento suelción de inserc
ar, pero antee evento suel
izar, pero deevento suel
ción de actua
izar, pero ante evento su.
���:���
ogramar. Dea un evento.w. El controlDataBound,
DetailsView
suele utilizararlo.
pués de quetos. Estela operación
es de que eltos. Esteminación.
pués de quele utilizarseción.
es de que elle utilizarse
espués de que utilizarsealización.
ntes de que euele utilizarse
�� � �����
��
estaEn la
w.
rse
el
de
el
ue
ele
�
www.depurando.com 157
Mod
Mod
Page
Page
deChanged
deChanging
eIndexChang
eIndexChang
Se prod(modomenudode mod
Se prod(ediciónpara ca
ged Se prodpero dede pagrealizarregistro
ging Se prodpero anpaginacpaginac
� ����
duce despuésde edición, io para realizdo.
duce antes den, inserción oncelar un ca
duce cuandoespués de qunación. Normr una tarea do del control
duce cuandontes de que eción. Este evción.
�������
s de que el cnserción o szar una tarea
e que el cono sólo lecturmbio del mo
se hace clicue el controlmalmente esespués de q.
se hace clicel control Deento suele u
� �� %���
control Detaiólo lectura).a cuando el c
trol DetailsVa). Este evenodo.
en uno de loDetailsViewste evento seue el usuario
en uno de loetailsView seutilizarse para
��� ���
ilsView cambEste evento
control Detai
View cambiento se utiliza
os botones dw se ocupe dee utiliza cuano se desplace
os botones de ocupe de laa cancelar la
���:���
bie de modoo se utiliza ailsView camb
de modoa menudo
de paginacióe la operacióndo se necese a otro
de paginacióa operación doperación d
�� � �����
��o
bia
n,ónsita
n,dede
�
www.depurando.com 158
<%@ PInher
<!DOC"http<html<head
<</hea<body
<<
DataO
Delet
Page Languagrits "eDatai
CTYPE html Pp://www.w3.ol xmlns "httd runat "ser<title>Páginad>y><form id "fo<div>
<asp:ObjObjectTypeNa
TypeteMethod "De
Inse
ge "C#" AutolsView1" %>
PUBLIC " //Worg/TR/xhtmltp://www.w3.rver">na sin títul
orm1" runat
ectDataSourame "Car"eName "CarLielete"ertMethod "I
� ����
EventWireup
3C//DTD XHTM1/DTD/xhtml1org/1999/xht
o</title>
"server">
ce ID "Objec
st" SelectMe
nsert"></asp
�������
"true" Code
ML 1.0 Trans1 transitiontml">
ctDataSource
ethod "Selec
p:ObjectData
� �� %���
eFile "eData
sitional//ENnal.dtd">
e1" runat "s
ct" UpdateMe
aSource>
��� ���
ailsView1.as
N"
server"
ethod "Updat
���:���
px.cs"
te"
�� � �����
�!
�
www.depurando.com 159
/>
CellP
Heigh
Width
/>
ReadO
/>
SortE
/>
SortE
ShowI
<<
</bod</htm
usingusingusingusingusingusingusingusing
publi{
p{
}p{
}}
ForMuesdefin
El concontr
<asp:But
<asp:DetPadding "4"
Dataht "50px"
Stylh "305px"
Auto<Foo<Com<Edi<Row<Pag
<Fie
Only "True"
Expression "
Expression "
InsertButton</Fi<Fie<Hea<Alt
</asp:De</div></form>dy>ml>
g System.Ling System.Webg System.Webg System.Webg System.Webg System.Webg System.Webg System.Xml
ic partial c
protected vo{
}protected vo{
CarList. DetailsV
}
mViewstra los valoridas por el u
ntrol FormVirol DetailsVie
tton ID "But
tailsView ID
aSourceID "Ob
e "z index:
oGenerateRowoterStyle BammandRowStyltRowStyle B
wStyle BackCgerStyle Bac
elds><asp:BoundF/><asp:BoundF
<asp:BoundFModel" /><asp:BoundF
<asp:BoundFPrice" Data
HtmlEnc<ItemSt
</asp:Bound<asp:Comman
n "True" />elds>
eldHeaderStyaderStyle BaternatingRowetailsView>
nq;b;b.Security;b.UI;b.UI.HtmlConb.UI.WebContb.UI.WebCont.Linq;
class eDatai
oid Page Loa
oid Button1
Initialize(View1.DataBi
res de un regusuario. El co
iew permiteew, exceptua
� ����
ton1" runat
"DetailsVie
bjectDataSou
103; left:
s "False" DackColor "#5De BackColorackColor "#9olor "#F7F6FkColor "#284
ield DataFie
ield DataFie
ield DataFie
ield DataFie
ield DataFieFormatStringode "False">yle HorizontField>dField ShowD
le BackColorckColor "#5DStyle BackCo
trols;rols;rols.WebPart
lsView1 : Sy
d(object sen
Click(object
);nd();
gistro individontrol FormV
mostrar unando que mu
�������
"server" On
ew1" runat "
urce1" ForeC
20px; posit
ataKeyNamesD7B9D" Font"#E2DED6" F
999999" />F3" ForeColo4775" ForeCo
eld "Vin" He
eld "Make" H
eld "Model"
eld "Year" H
eld "Price"g "{0:C}">talAlign "Ri
DeleteButton
r "#E9ECF1"D7B9D" Fontolor "White"
ts;
ystem.Web.UI
nder, EventA
t sender, Ev
dual de un orView permite
registro indiuestra planti
� �� %���
nClick "Butt
"server" All
Color "#3333
tion: absolu
"Vin">Bold "True"
Font Bold "T
or "#333333"olor "White"
eaderText "V
HeaderText "
HeaderText
HeaderText "
HeaderText
ight" />
n "True" Sho
Font Bold "Bold "True"
" ForeColor
I.Page
Args e)
ventArgs e)
rigen de datoe editar, elim
vidual de unllas definida
��� ���
ton1 Click"
lowPaging "T
333" GridLin
ute; top: 85
" ForeColorTrue" />
" />" Horizontal
Vin" SortExp
"Make" SortE
"Model"
"Year" SortE
"Price"
owEditButton
"True" />" ForeColor"#284775" /
os utilizandominar e insert
n origen de ds por el usua
���:���
Text "Load
True"
nes "None"
px"
"White" />
Align "Cent
pression "Vi
Expression "
Expression "
n "True"
"White" />>
plantillastar registros.
atos. Es simario, en lugar
�� � �����
�"
Cars"
er"
n"
Make"
Year"
.
ilar alr de
�
www.depurando.com 160
campmues
�
�
�
�
�
�
pos de fila. Cstran los dato
Enlace a l
Funcione
Funcione
Funcione
Acceso mdinámica
Aspecto pusuario.
rear sus propos. El contro
los controles
es de inserció
es de actualiz
es de paginac
mediante promente prop
personalizab
� ����
pias plantillaol FormView
s de origen d
ón integrada
zación y elim
ción integrad
gramación aiedades, con
ble por medio
�������
as le ofrece madmite las c
de datos, com
s.
minación integ
das.
al modelo dentrolar event
o de plantilla
� �� %���
más flexibilidcaracterística
mo SqlDataSo
gradas.
e objetos Fortos, etc.
as, temas y e
��� ���
ad para contas siguientes
ource y Obje
rmView para
estilos definid
���:���
trolar cómo:
ectDataSourc
a establecer
dos por el
�� � �����
�)se
ce.
�
www.depurando.com 161
<%@ PInher
<!DOC"http<html<head
<</hea<body
<<
Page Languagrits "eFormV
CTYPE html Pp://www.w3.ol xmlns "httd runat "ser<title>Páginad>y><form id "fo<div>
ge "C#" AutoView1" %>
PUBLIC " //Worg/TR/xhtmltp://www.w3.rver">na sin títul
orm1" runat
� ����
EventWireup
3C//DTD XHTM1/DTD/xhtml1org/1999/xht
o</title>
"server">
�������
"true" Code
ML 1.0 Trans1 transitiontml">
� �� %���
eFile "eForm
sitional//ENnal.dtd">
��� ���
mView1.aspx.
N"
���:���
cs"
�� � �����
�*
�
www.depurando.com 162
DataO
Delet
/><<
Eval(
blue"
Eval(
blue"
Text
blue"
Eval(
blue"
Text
Cause
Cause
Cause
Eval(
blue"
Text
<asp:ObjObjectTypeNa
TypeteMethod "De
Inse<br /><br /><br /> &<asp:But
</div><asp:FormVie
DataSour<ItemTem
<tab
("Vin") %>'>
">Make:</spa
("Make") %>'
">Model:</sp
'<%# Eval("
">Year:</spa
("Year") %>'
">Price: </s
'<%# Eval("
esValidation
esValidation
esValidation
</ta</ItemTe<EditIte
<tab
("Vin") %>'>
">Make:</spa
'<%# Bind("
ectDataSourame "Car"eName "CarLielete"ertMethod "I
nbsp;  tton ID "But
ew ID "FormVrceID "Objecmplate>ble><tr>
<td ali<hr<sp<asp
></a
an> <asp
></a
pan> <asp
Model") %>'</a
an> <asp
></a
</td></tr><tr>
<td ali<sp
pan><span
Price","{0:
</td></tr><tr>
<td ali<hr<asp
n "False" Com
<aspn "False" Com
</a<asp
n "False" Com
</a</td>
</tr>able>emplate>emTemplate>ble><tr>
<td ali<hr<sp<asp
></a
an> <asp
Make") %>'>
� ����
ce ID "Objec
st" SelectMe
nsert"></asp
; ton1" runat
iew1" runattDataSource1
gn "center">/>
an style "fop:Label ID "
sp:Label>&nb
p:Label ID "
sp:Label>&nb
p:Label ID ">sp:Label>&nb
p:Label ID "
sp:Label><br
gn "center">an style "fo
style "font<asp:Label
C}") %>'></asp:Label
gn "center">/>
p:LinkButtonmmandName "EText "Edit"
p:LinkButtonmmandName "NText "New">
sp:LinkButtop:LinkButtonmmandName "DText "Delet
sp:LinkButto
gn "center">/>
an style "fop:Label ID "
sp:Label>&nb
p:TextBox ID
�������
ctDataSource
ethod "Selec
p:ObjectData
"server" On
"server" Al1" Width "10
>
ont weight:"VinLabel" W
bsp; <
"MakeLabel"
bsp; <
"ModelLabel"
bsp; <
"YearLabel"
r />
>ont weight:
t weight: boID "PriceLa
l></span>
>
n ID "LinkBuEdit""> </asp:Linn ID "LinkBuNew">on>n ID "LinkBuDelete"te">on>
>
ont weight:"VinLabel" W
bsp; <
D "EditMakeT
� �� %���
e1" runat "s
ct" UpdateMe
aSource>
nClick "Butt
llowPaging "00%">
bold; colorWidth "105px
<span style
Width "105p
<span style
" Width "105
<span style
Width "105p
bold; font
old; font siabel" Width
utton1" runa
nkButton>utton2" runa
utton3" runa
bold; colorWidth "105px
<span style
TextBox" Wid
��� ���
server"
ethod "Updat
ton1 Click"
"True" DataK
r: blue">VINx" runat "se
"font weigh
px" runat "s
"font weigh
5px" runat "
"font weigh
px" runat "s
size: x lar
ize: x large"105px" run
at "server"
at "server"
at "server"
r: blue">VINx" runat "se
"font weigh
dth "100px"
���:���
te"
Text "Load
KeyNames "Vi
N:</span>&nberver" Text
ht: bold; co
erver" Text
ht: bold; co
server"
ht: bold; co
erver" Text
rge; color:
e"> nat "server"
N:</span>&nberver" Text
ht: bold; co
runat "serv
�� � �����
�
Cars"
n"
sp;'<%#
lor:
'<%#
lor:
lor:
'<%#
sp;'<%#
lor:
er"
�
www.depurando.com 163
color
Text
color
Text
blue"
runat
Cause
Cause
blue"
Cause
Text
Text
runat
Text
r: blue">Mod
'<%# Bind("
r: blue">Yea
'<%# Bind("
">Price: </s
t "server" T
esValidation
esValidation
</ta</EditIt<EmptyDa
<tab
">No Cars Fo
esValidation
</ta</EmptyD<InsertI
<tab
'<%# Bind("
'<%# Bind("
t "server" T
'<%# Bind("
</adel:</span>&
<aspModel") %>'
</aar:</span>&nb
<aspYear") %>'>
</a&nb
</td></tr><tr>
<td ali<sp
pan><span
Text '<%# Bi
</td></tr><tr>
<td ali<hr<asp
n "True" Comm
</a<asp
n "False" Com
</a</td>
</tr>able>temTemplate>ataTemplate>ble width "6<tr>
<td ali<hr<sp
or Sale
<tr
n "False" Com
</table>DataTemplatetemTemplate
ble><tr>
<td ali<hr<sp<asp
Vin") %>'><sp<asp
Make") %>'><sp<asp
Text '<%# Bi<sp<asp
Year") %>'>&nb
</td></tr><tr>
� ����
sp:TextBox> p:TextBox ID>sp:TextBox>&bsp;p:TextBox ID
sp:TextBox><sp;
gn "center">an style "fo
style "font<asp:TextBo
nd("Price")</asp:TextB
gn "center">/>
p:LinkButtonmandName "UpText "Updat
sp:LinkButtop:LinkButtonmmandName "CText "Cance
sp:LinkButto
55px">
gn "center">/>
an style "fo
Chack Back ><td align "
<hr /><asp:Li
mmandName "NTex
</asp:L</td>
r>
>>
gn "center">/>
an style "fop:TextBox ID</asp:TextBoan style "fop:TextBox ID</asp:TextB
an style "fop:TextBox IDnd("Model")an style "fop:TextBox ID</asp:TextB
sp;
�������
D "EditModel
D "EditYearT
<br />
>ont weight:
t weight: boox ID "EditP%>'>
Box></span>
>
n ID "LinkBupdate"te">on>n ID "LinkBuCancel"el">on>
>
ont weight:
Soon! </spa
"center">
inkButton IDNew"xt "New">LinkButton>
>
ont weight:D "InsertVinox> &nbont weight:D "InsertMakBox> &nont weight:D "InsertMod%>'> </asp:
ont weight:D "InsertYeaBox><br />
� �� %���
; <span styl
lTextBox" Wi
; <span styl
TextBox" Wid
bold; font
old; font siPriceTextBox
utton1" runa
utton2" runa
bold; font
an>
D "LinkButto
bold; colornTextBox" Wibsp;bold; color
keTextBox" Wnbsp;bold; color
delTextBox":TextBox>&nbbold; color
arTextBox" W
��� ���
le "font wei
idth "100px"
le "font wei
dth "100px"
size: large
ize: large">x" Width "10
at "server"
at "server"
size: x lar
on2" runat "
r: blue">VINidth "100px"
r: blue">MakWidth "100px
r: blue">ModWidth "100p
bsp; r: blue">YeaWidth "100px
���:���
ght: bold;
runat "ser
ght: bold;
runat "serv
e; color:
> 0px"
rge; color:
server"
N:</span>&nbrunat "ser
ke:</span>&nx" runat "se
del:</span>&px"
ar:</span>&nx" runat "se
�� � �����
��ver"
er"
sp;ver"
bsp;rver"
nbsp;
bsp;rver"
�
www.depurando.com 164
blue"
runat
Cause
Cause
blue"
<&<
</bod</htmusingusingusingusingusingusingusingusingusingusingusingusing
publi{
p{
}p{
}}
HieActúaque m
">Price: </s
t "server" T
esValidation
esValidation
</ta</Insert<HeaderT
<tab
">Car For Sa
</Header<FooterT
</td</Footer
</asp:FormVi </form>dy>ml>g System; g System.Colg System.Cong System.Datg System.Ling System.Webg System.Webg System.Webg System.Webg System.Webg System.Webg System.Xml
ic partial c
protected vo{
}protected vo{
CarList. FormView
}
rarchicala como clasemuestran sus
<td ali<sp
pan><span
Text '<%# Bi</td>
</tr><tr>
<td ali<hr<asp
n "True" Comm
<aspn "False" Com
</a</td>
</tr>able>tItemTemplatTemplate>ble><tr>
<td ali<sp
ale</span></td>
</tr><tr>
<td>rTemplate>Template>d></tr></tabrTemplate>ew>  
lections;nfiguration;ta;nq;b;b.Security;b.UI;b.UI.HtmlConb.UI.WebContb.UI.WebCont.Linq;
class eFormV
oid Page Loa
oid Button1
Initialize(w1.DataBind(
lDataBoue base para ts datos con u
� ����
gn "center">an style "fo
style "font<asp:TextBo
nd("Price")
gn "center">/>
p:LinkButtonmandName "InText "Inser
p:LinkButtonmmandName "CText "Cance
sp:LinkButto
e>
gn "center">an style "fo
le>
; <br /
trols;rols;rols.WebPart
iew1 : Syste
d(object sen
Click(object
););
undControdos los conun formato j
�������
>ont weight:
t weight: boox ID "Inser%>'></asp:T
>
n ID "LinkBunsert"rt"> </asp:Ln ID "LinkBuCancel"el">on>
>ont weight:
/>
ts;
em.Web.UI.Pa
nder, EventA
t sender, Ev
rolntroles enlazerárquico.
� �� %���
bold; font
old; font sirtPriceTextBTextBox></sp
utton1" runa
LinkButton>utton2" runa
bold; font
age
Args e)
ventArgs e)
ados a datos
��� ���
size: large
ize: large">Box" Width "pan>
at "server"
at "server"
size: x lar
s de la versió
���:���
e; color:
> 100px"
rge; color:
ón 2.0 de ASP
�� � �����
��
P.NET
�
www.depurando.com 165
Hiera
recup
de us
Hiera
Los de
lugar,
TreMuescontro un
�
�
�
�
�
�
�
Nodo
El conrepre
�
archicalDataB
eran datos de
uario del cont
archicalDataB
esarrolladores
, usan control
eViewstra datos jerol TreeViewdirectorio de
Enlace derelaciona
Navegaci
Texto de
Acceso mrellenar n
Relleno d
La capaci
Aspecto p
os
ntrol TreeVieesentado por
Un nodo
BoundContro
e un control de
trol a dichos d
BoundContro
s de páginas n
es que deriva
rárquicos, cow se utiliza pae archivos, e
e datos que pales.
ón del sitio m
nodo que se
mediante pronodos, estab
de nodos del
dad para mo
personalizab
ew se compor un objeto T
que contien
� ����
ol es la clase
el origen de d
datos para mo
ol.
no utilizan dire
n de esta clas
omo una tabara mostrar dn una estruc
permite enla
mediante la
e puede mos
gramación alecer propie
lado cliente
ostrar una ca
ble por medio
one de nodoTreeNode. Lo
e otros nodo
�������
base que se u
atos jerárquic
ostrarlos. Las c
ectamente la
se.
bla de contendatos jerárqctura de árbo
azar los nodo
integración c
strar como te
al modelo dedades, etc.,
(en explora
asilla al lado
o temas, imá
os. Cada entros tipos de n
os se denom
� �� %���
utiliza para los
co ASP.NET y
clases TreeVie
clase Hierarc
nido, en unauicos, tales col y admite la
os del contro
con el contro
exto sin form
e objetos Trede forma din
dores compa
de cada nod
ágenes defin
ada del árboodo se defin
ina un nodo
��� ���
s controles AS
enlazan elem
ew y Menu se
chicalDataBo
estructura dcomo una taas siguientes
ol a datos XM
ol SiteMapDa
mato o hiperv
eView paranámica.
atibles).
o.
idas por el u
ol se denominen como sig
primario.
���:���
SP.NET que
entos de inte
derivan de
oundControl;
de árbol. Elbla de contes característi
ML, tabulares
ataSource.
vínculos.
crear árbole
usuario y esti
na nodo y esgue:
�� � �����
��rfaz
; en su
enidocas:
o
es,
los.
stá
�
www.depurando.com 166
�
�
�
Un noprimalos no
Aunqagregelem
Cadamuescualqdevo
Un nomanenavegvacíanodo
Dato
El modatosy cierestruapertun obatribu<asp:prima
Enlac
El conde or
�
El nodo c
Un nodo
El nodo qlos demá
odo puede sarios y de hoodos vienen
que una estrugar varios noentos sin mo
nodo tienestra en el conquier informalución de da
odo puede eera predetergación, estab(""). Para po
o en una cade
s estáticos
odelo de datos estáticos mrre entre lasctura de árbtura y cierre.bjeto TreeNoutos de su el:TreeNode>ario.
ce a datos
ntrol TreeVierigen de dato
El controimplemencontrol Spropiedafuente dede datos
contenido en
que no tiene
que no está cs nodos es e
er un elemeoja son mutudeterminad
uctura de árbodos raíz a laostrar un nod
una propiedntrol TreeVieación adiciontos asociado
estar en unominada, un nblezca la prooner un nodoena vacía (""
os más simpmediante sintetiquetas debol anidando. Cada elemeode. Puede elemento <asadicionales
ew tambiénos adecuado,
l TreeView pnta la interfaiteMapDataSd DataSource datos. El coespecificado
� ����
n otro nodo s
e nodos deri
contenido enel nodo raíz.
nto primarioamente exclas por si un
bol típica tieestructura ddo raíz único
ad Text y unew, mientrasnal sobre el no al nodo.
de dos modonodo está enopiedad Navio en modo d).
le del controtaxis declarate apertura ylos element
ento <asp:Trestablecer lasp:TreeNodeentre las etiq
se puede en, puede utiliz
puede utilizaaz IHierarchicSource. ParaceID del contontrol TreeVo. Éste es el m
�������
se denomina
vados se den
n ningún otro
o y un elemelusivos. Varianodo es raíz,
ne sólo unode árbol. Estoo, como en u
a propiedads que la propnodo, tal com
os: modo den modo de segateUrl del nde selección,
ol TreeViewtiva, primerocierre del cotos <asp:TreeeNode> res propiedadee>. Para creaquetas <asp
nlazar a datoszar uno cual
r cualquier ccalDataSoura enlazar a untrol TreeViewiew se enlazmétodo reco
� �� %���
nodo secun
nomina nodo
o nodo pero
nto secundaas propiedad, primario o
nodo raíz, elo es útil cuanna lista de ca
Value. El vapiedad Valuemo los datos
e selección oelección. Parnodo en un vestablezca l
es el de datoo coloque etontrol TreeVieNode> entrpresenta unes de cada nor nodos secu:TreeNode>
s. Para enlazquiera de los
control de orce, como unn control dew en el valorza automáticomendado pa
��� ���
dario.
o de hoja.
es el nodo p
ario, pero losdes visuales yde hoja.
l control Trendo se deseaategorías de
lor de la proe se utiliza paque se pasa
modo de nara poner un nvalor distintoa propiedad
os estáticos.iquetas <Noiew. A continre las etiquetnodo del árbodo establecundarios, anide apertura
zar el controls dos métod
rigen de datocontrol Xmlorigen de dar ID del contramente al coara el enlace
���:���
primario de t
s nodos raíz,y conductua
eView perma mostrar liste productos.
opiedad Textara almacenaan al evento
avegación. Denodo en modo de una cadNavigateUr
Para mostrades> de apenuación, cretas <Nodes>bol y se asignciendo losde elementoy cierre del
l TreeView aos siguiente
os queDataSourceatos, establerol de códigoontrol de orie a datos.
�� � �����
��
odos
les de
mitetas de
searde
edo deenal del
arrturae la> dena a
osnodo
al tipos:
o unezca laogen
�
www.depurando.com 167
�
Al en(comvalorel noperoelemDataBrelacdel emás i
Pobla
En ocdatosobtenrellennododinámpara
Los epartidpostecontrlos usobtenPopu
Perso
Existepuedlos tip
Si utiestilopodríhojas
La tab
El controDataSet cpropiedallame al m
lazar a un oro un elemendevuelto podo muestrano es muy úento de datoBindings. Laión entre unnlace y la proinformación
ación de nod
casiones, nos devuelve dnida en tiemnen de formao en true, el nmicamente urellenar un n
xploradoresdo del llenaderiores y algurol TreeViewsuarios expaner más infolateNodesFr
onalización d
en muchas me especificarpos de nodo
liza hojas deos en línea oían producirs de estilos c
bla siguiente
l TreeView tcon relacioned DataSourcmétodo Data
rigen de datonto XML conor el métodoel nombre dútil en otro seos especificacolección Daelemento dopiedad delsobre enlace
do dinámica
es práctico demasiados dpo de ejecuca dinámica. Cnodo se relleun nodo, debnodo para el
compatiblesdo de nodosunos otros exw para rellenanden el nodrmación sobromClient.
de la interfaz
maneras de pr un estilo di.
e estilos en caun archivo Cresultados ion controles
e enumera lo
� ����
también se pes. Para enlace del controaBind.
os donde cadvarios atribu
o ToString deel elemento,entido. Puedndo los enlaataBindings ce datos y elelemento dees de nodos
definir estátidatos o porqución. DebidoCuando se esena en tiempbe definir unevento Tree
s con los scrien el clientexploradores.ar un nodo mo, sin necesibre el relleno
z de usuario
personalizarferente (por
ascada (CSS)CSS independnesperados.s, vea Contro
os estilos de
�������
puede enlazaazar a uno deol TreeView e
da elementoutos), un nodel elemento d, el cual indicde enlazar unaces del nodocontiene objnodo al quee datos que sde árbol, ve
icamente laue los datoso a esto, el costablece la ppo de ejecucimétodo deeNodePopula
ipts de devoe. (Se incluye.) El relleno dmediante secdad de una ao de nodos e
el aspecto dr ejemplo, ta
para persondiente, peroPara obtene
oles de servid
nodo dispon
� �� %���
r a un objetoe estos orígeen el origen d
de datos codo muestra dde datos. Enca la estructn nodo a unao del árbol metos TreeNose enlaza. Pse va a mosta TreeNodeB
estructura da mostrar deontrol TreeVpropiedad Poión cuando scontrol de evate.
lución de llamen Internet Exde nodos delcuencias de cacción de idan el cliente, v
el control Trmaño y colo
nalizar la apano ambos. Ser más informdor Web ASP
nibles.
��� ���
o XmlDocumnes de datosde datos y, a
ontiene variade manera pel caso de uura subyacena determinadmediante la codeBinding quede especiftrar en el nodBinding.
el árbol porqependen de
View admite qopulateOnDese expande.ventos que c
mada tambiéxplorer 5.5 yl lado clientecomandos dea y vuelta alvea
reeView. Enor de fuente)
ariencia del cSi se utilizanmación sobreP.NET y estilo
���:���
ment o un objs, establezcaa continuació
s propiedaderedeterminan elementonte del árboda propiedadcolecciónque definenficar los critedo. Para obte
que el origenla informacique los nodoemand de unPara rellenarcontenga la l
én pueden sy versionese habilita ele cliente cuaservidor. Pa
primer lugarpara cada u
control, utilicambos, see cómo utilizos de CSS.
�� � �����
��jetoa laón,
esada elXML,l,d del
laeriosener
n deónos senrlógica
acar
andora
r,no de
ce
zar
�
www.depurando.com 168
Propnodo
Hove
LeafN
Node
Pare
Root
Selec
Otramuesimágela tab
Propimag
Colla
Expa
LineI
NoEx
El conShowcasilla
Event
piedad de esto
erNodeStyle
NodeStyle
eStyle
entNodeStyle
tNodeStyle
ctedNodeSty
manera de mstran en el coenes para labla siguiente
piedad degen
apseImageUr
andImageUrl
ImagesFolde
xpandImage
ntrol TreeViewCheckBoxesas junto a lo
tos
tilo deD
Cm
L
L
e L
L
yle L
modificar el aontrol TreeVs diferentes.
Descrip
rl La direcontraí
La direexpans
er La direutilizadLa propsurta e
Url La direexpans
ew tambiéns se establecs tipos de no
� ����
Descripción
Configuraciónmouse se colo
a configurac
a configurac
a configurac
a configurac
a configurac
aspecto del cView. Puedepartes del co
pción
cción URL aíble. Esta ima
cción URL asible. Esta im
cción URL adas para conepiedad Showfecto.
cción URL asible.
permite mose en un valoodo especific
�������
n de estilo paoca sobre él
ción de estilo
ción de estilo
ción de estilo
ción de estilo
ción de estilo
control es laespecificar sontrol estab
una imagenagen normal
una imagenmagen norma
la carpeta quectar los nod
wLines debe e
una imagen
strar una casr distinto decados.
� �� %���
ara un nodo.
o para los nod
o predetermi
o para los nod
o para el nod
o para un nod
personalizacsu propio conleciendo las
mostrada palmente es un
mostrada paalmente es u
ue contienedos primarioestablecerse
mostrada pa
silla junto a uTreeNodeTy
��� ���
cuando el p
dos de hoja.
inada para u
dos primario
o raíz.
do seleccion
ción de las imnjunto persopropiedades
ara el indicadn signo meno
ara el indicadn signo más
las imágenesos a los nodotambién en
ara el indicad
un nodo. Cuaypes.None,
���:���
untero del
n nodo.
os.
ado.
mágenes queonalizada des que aparec
dor de nodoos (�).
dor de nodo(+
s de líneas secundariotrue para qu
dor de nodo
ando la propse muestran
�� � �����
�!
e se
cen en
os.ue
no
piedadn
�
www.depurando.com 169
El conmanesiguie
Even
Tree
Selec
Tree
Tree
Tree
Tree
<?xml<Custo <Cus <O
ntrol TreeVieera, se puedeente tabla se
nto
NodeCheckC
ctedNodeCh
NodeExpand
NodeCollaps
NodePopula
NodeDataBo
version="1.0omers>stomer CustomeOrders><Order Order <OrderItem <OrderIte
PartDescPrice="2
<OrderItePartDescPrice="1
</OrderItem</Order><Order Order <OrderItem <OrderIte
PartDescPrice="8
<OrderItePartDesc
ew proporcioe ejecutar une enumeran
De
Changed Seen
anged Se
ded Se
sed Se
ate Apes
ound Seco
" encoding="u
erId="1" Name
Id="1" ShipDas>em OrderItemIription="Larg2.00" /> em OrderItemIription="Medi2.50" /> ms>
Id="2" ShipDas>em OrderItemIription="Smal.99" /> em OrderItemIription="Medi
� ����
ona varios evna rutina perlos eventos a
escripción
e produce cuntre cada env
e produce cu
e produce cu
e produce cu
parece cuandtablecida en
e produce cuontrol TreeVi
tf 8" ?>
="Northwind T
te="06 22 200
d="1" PartNumge Widget" Qua
d="2" PartNumum Widget" Qu
te="06 25 200
d="5" PartNuml Widget" Qua
d="4" PartNumum Widget" Qu
�������
ventos que prsonalizada sadmitidos po
ando las casvío al servido
ando se sele
ando se expa
ando se cont
do un nodo cn true se exp
ando un elemiew.
Traders">
06">
mber="123"antity="5"
mber="234"uantity="2"
06">
mber="432"antity="30"
mber="234"uantity="2"
� �� %���
puede utilizasiempre queor el control
illas del contor.
ecciona un no
ande un nod
trae un nodo
con su propieande en el c
mento de da
��� ���
ar para progrse produzcaTreeView.
trol TreeView
odo en el con
do en el cont
o en el contr
edad Populaontrol TreeV
atos se enlaz
���:���
ramar. De esta un evento.
w cambian
ntrol TreeVi
trol TreeView
rol TreeView
teOnDemanView.
a a un nodo
�� � �����
�"taEn la
ew.
w.
w.
nd
del
�
www.depurando.com 170
</ <I
</ </Cu <Cus <O
Price=
Price=
Price=
Price=
</ <I
</ </Cu</Cust
<%@ PInher
<!DOC"http<html<head
<</hea<body
<<
DataF
ShowL
Value
Value
Value
Value
<<
</bod</htm
usingusingusingusingusingusingusingusingusing
Price="1 </OrderItem</Order>/Orders>Invoices><Invoice Invo<Invoice Invo/Invoices>ustomer>stomer CustomeOrders><Order Order <OrderItem <OrderIte="87.25" /> <OrderIte="2.00" /> </OrderItem</Order><Order Order <OrderItem <OrderIte="78.99" /> <OrderIte="1.20" /> </OrderItem</Order>/Orders>Invoices><Invoice Invo<Invoice Invo/Invoices>ustomer>tomers>
Page Languagrits "eTreeV
CTYPE html Pp://www.w3.ol xmlns "httd runat "ser<title>Páginad>y><form id "fo<div>
<asp:XmlFile "~/App
</asp:Xm<asp:Tre
Lines "True"Expa<Dat
eField "Cust
eField "Orde
eField "Orde
eField "Invo
</Da</asp:Tr
</div></form>dy>ml>
g System; g System.Colg System.Cong System.Datg System.Ling System.Webg System.Webg System.Webg System.Web
2.50" /> ms>
oiceId="6" AmoiceId="7" Am
erId="2" Name
Id="8" ShipDas>em OrderItemI
em OrderItemI
ms>
Id="11" ShipDs>em OrderItemI
em OrderItemI
ms>
oiceId="26" AoiceId="27" A
ge "C#" AutoView1" %>
PUBLIC " //Worg/TR/xhtmltp://www.w3.rver">na sin títul
orm1" runat
DataSourceData/treevi
mlDataSourceeeView ID "T
andDepth "0"taBindings><asp:TreeNo
tomerId" /><asp:TreeNo
erId" /><asp:TreeNo
erItemId" /><asp:TreeNo
oiceId"FormatS
ataBindings>reeView>
lections;nfiguration;ta;nq;b;b.Security;b.UI;b.UI.HtmlCon
� ����
mount="99.37"mount="147.50"
="Tailspin To
te="07 11 200
d="9" PartNum
d="10" PartNu
Date="08 21 20
d="12" PartNu
d="14" PartNu
Amount="46.58"Amount="279.15
EventWireup
3C//DTD XHTM1/DTD/xhtml1org/1999/xht
o</title>
"server">
ID "XmlDataSewxml.xml">>reeView1" ru
onselectedn
deBinding Da
deBinding Da
deBinding Da
deBinding Da
tring "{0:C
trols;
�������
/>" />
oys">
06">
mber="987" Par
umber="654" Pa
006">
umber="999" Pa
umber="575" Pa
" /> 5" />
"true" Code
ML 1.0 Trans1 transitiontml">
Source1" run
unat "server
nodechanged
ataMember "C
ataMember "O
ataMember "O
ataMember "I
}" />
� �� %���
rtDescription=
artDescription
artDescription
artDescription
eFile "eTree
sitional//ENnal.dtd">
nat "server"
r" DataSourc
"TreeView1
Customer" Te
Order" TextF
OrderItem" T
Invoice" Tex
��� ���
="Combo Widget
n="Ugly Widget
n="Pretty Widg
n="Tiny Widget
eView1.aspx.
N"
"
ceID "XmlDat
SelectedNod
extField "Na
Field "ShipD
TextField "P
xtField "Amo
���:���
t" Quantity="
t" Quantity="
get" Quantity
t" Quantity="
cs"
taSource1"
deChanged">
ame"
Date"
PartDescript
ount"
�� � �����
�)
2"
1"
y="50"
100"
ion"
�
www.depurando.com 171
usingusingusing
publi{
p{
}p{
}}
MenMues
El concombMenu
�
�
�
�
CuanpáginNavigpáginmanecontrutilice
El conestátde mde mStaticvalormenúelemdesappara
g System.Webg System.Webg System.Xml
ic partial c
protected vo{
}protected vo{ Response
}
nustra un menú
ntrolMenu sbinación conu admite las
Enlace dedatos jerá
Exploraci
Acceso melemento
Aspecto pplantillas
do el usuariona Web vincugateUrl de unna vinculada;era predeterrolMenu. Pae la propieda
ntrolMenumico siempreenú del niveenú (submecDisplayLeveespecificadoú dinámico sento del meparecen autoespecificar e
b.UI.WebContb.UI.WebCont.Linq;
class eTreeV
oid Page Loa
oid TreeView
e.Write("Val
ú en una pág
se utiliza parun control Scaracterístic
e datos que párquicos.
ón del sitio m
mediante proos de menú,
personalizabdefinidas po
o hace clic enulada o simpn elemento d; de lo contraminada, unaara mostrar ead Target de
muestra dosse muestra eel raíz (nivel 0nús estáticosels. Los elemeo por la propólo aparecenú primarioomáticamenesa duración
� ����
rols;rols.WebPart
iew1 : Syste
d(object sen
1 SelectedNo
ue:" + TreeV
gina web ASP
ra mostrar unSiteMapDatacas siguiente
permite enla
mediante la
gramación aestablecer p
ble medianteor el usuario
n un elemenplemente devde menú se eario, devuelva página vincel contenidoel controlMe
tipos de meen un contro0) se muestras) dentro deentos de mepiedad Staticcuando el usque contiente después d.
�������
ts;
em.Web.UI.Pa
nder, EventA
odeChanged(o
View1.Select
P.NET.
n menú en uaSource paraes:
azar los elem
integración c
al modelo depropiedades,
e temas, imág.
nto de menú,volver la págencuentra eve la página aculada se muvinculado eenu.
enús: un menolMenu. Dean en el menl menú estátenú (si existecDisplayLevesuario colocae el submende cierto tiem
� �� %���
age
Args e)
object sende
tedNode.Valu
una página wa navegar po
mentos de me
con el contro
el objetoMenetc., de form
genes definid
, el controlMgina al servidstablecida, eal servidor puestra en la mn una ventan
nú estático ymanera prednú estático. Ptico establecalguno) conls se muestraa el punteronú dinámico.mpo. Utilice
��� ���
er, EventArg
ue);
web ASP.NET,r un sitio we
enú del cont
ol SiteMapDa
nu para creama dinámica
das por el us
Menu puedeor. Si la propel controlMeara que la pmisma ventana o un marc
un menú dideterminadaPuede mostrciendo la pron un nivel máan en un medel mouse (Los menús dla propiedad
���:���
gs e)
, a menudo eeb. El control
rol a orígene
ataSource.
ar menús, rela.
suario, estilo
navegar a upiedadenu navega arocese. Dena o marco qco diferente,
námico. El ma, los elemenrar otros nivepiedadás alto que eenú dinámicoratón) sobredinámicosd DisappearA
�� � �����
�*
en
es de
llenar
os y
na
a la
que el,
menúntoseles
lo. Une el
After
�
www.depurando.com 172
Tambestabvalor
Elem
Un coMenumenúde mLos ede su
Cadapropialmacse paelemNavig
Dato
El moParaetiquMenuentreun ellas pr<asp:adicioprima
Enlac
El conorige
�
�
bién puede libleciendo la pespecificado
entos de me
ontrolMenuuItem. Los elú raíz. Un eleenú secundalementos deu menú prima
elemento diedad Text secenar cualquasan al eventento de mengateUrl.
s estáticos
odelo de datomostrar elemetas <Items>u. A continuae las etiquetaemento de mropiedades d:MenuItem>onales entreario.
ce a datos
ntrolMenu tn de datos a
El controun controde origenen el valoautomátirecomen
El controcontrol aen el orig
imitar el númpropiedad Mo no se tiene
enú
se componelementos deemento de mario. Todos loe un menú seario.
e menú tiene muestra enuier informacto de devolucnú, éste pued
os más simpmentos de m> de aperturación, cree laas <Items> dmenú del conde cada elem>. Para crearlas etiqueta
también se padecuado, pu
lMenu puedol XmlDataSon de datos jeor ID del contcamente al cdado para el
lMenu tambeste origen
gen de datos
� ����
mero de niveMaximumDynen en cuenta
e de un árboe menú del nmenú que tieos elementoecundario se
e una propien el controlMción adicionación de datode navegar a
le del contromenú estáticora y cierre ena estructurae apertura yntrol y se cormento de melos elementas <asp:Men
puede enlazauede utilizar
de utilizar cuource o un corárquico, esttrol de origecontrol de orl enlace a da
bién se puedde datos, esy, a continu
�������
eles que se mnamicDisplaya
ol de elementivel superiorne un elemes del menú re almacenan
edad Text y uMenu, miental sobre el elos asociado aa otra página
olMenu es eos mediantentre las etiqude menú any cierre. Cadarresponde conú establecios de submeuItem> de a
ar a datos. Pauno cualqui
ualquier contontrol SiteMtablezca la pen de datos.rigen de datoatos.
de enlazar a ustablezca la pación, llame
� �� %���
muestran enyLevels. Los n
tos de menúr (nivel 0) seento de menraíz se almacen la colecci
una propiedatras que la plemento de mal elemento da Web indica
el de los elemsintaxis dec
uetas de apenidando los ea elemento <on un objetoendo los atrienú, anide elpertura y cie
ara enlazar eera de los do
trol de origenMapDataSourropiedad DaEl controlMos especifica
un objeto Xmpropiedad Dae al método D
��� ���
un menú dinniveles de m
ú representaddenominanú primario secenan en la ción ChildItem
ad Value. El vropiedad Vamenú, tal code menú. Alda por la pro
mentos de mlarativa, primrtura y cierreelementos <a<asp:MenuIto MenuItem.ibutos de sulementos <aerre del elem
el controlMeos métodos s
n de datos jece. Para enlaataSourceID denu se enlazado. Éste es e
mlDocumentataSource deDataBind.
���:���
námicomenú superio
dos por objeelementos de llama elemcolección Items de eleme
valor de lalue se utilizamo los datoshacer clic enopiedad
enú estáticomero coloque del controlasp:MenuItetem> represePuede estabelementosp:MenuItem
mento de me
enu al tipo dsiguientes:
erárquico, coazar a un condel controlMzael método
t. Para enlazael controlMe
�� � �����
� res al
etosdelmentoms.ntos
a paras quen un
os.e
em>entablecer
m>nú
e
omontrolMenu
ar elenu
�
www.depurando.com 173
<?xml<Menu <Ho <Pr
<u<u<u
</P <Su
<u<u
</S <Ab
<<
</A</Men
<%@ PInher
<!DOC"http<html<head
<</hea<body
l version "1uItems>ome displayroducts disp<SmallWidgeturl "~/produ<MediumWidgeurl "~/produ<BigWidgetsurl "~/produProducts>upport displ<Downloads durl "~/suppo<FAQs displaurl "~/suppoSupport>boutUs displ<Company dis<Locations dAboutUs>nuItems>
Page Languagrits "eMenu1
CTYPE html Pp://www.w3.ol xmlns "httd runat "ser<title>Páginad>y>
.0" encodin
"Home" urlplay "Products display "ucts/smallwiets displayucts/mediumwdisplay "Bi
ucts/bigwidg
ay "Supportdisplay "Dowort/downloaday "FAQs"ort/faqs.asp
ay "About Uplay "Compa
display "Loc
ge "C#" Auto" %>
PUBLIC " //Worg/TR/xhtmltp://www.w3.rver">na sin títul
� ����
g "utf 8" ?>
"~/" /> ts" url "~/pSmall Widgetdgets.aspx""Medium Widgidgets.aspx"g Widgets"ets.aspx" />
" url "~/Supnloads"s.aspx" />
x" />
s" url "~/abny" url "~/aation" url "
EventWireup
3C//DTD XHTM1/DTD/xhtml1org/1999/xht
o</title>
�������
>
products/">ts"/>
gets"" />
>
pport/">
boutus/">aboutus/comp"~/aboutus/l
"true" Code
ML 1.0 Trans1 transitiontml">
� �� %���
pany.aspx" /locations.as
eFile "eMenu
sitional//ENnal.dtd">
��� ���
/>spx" />
u1.aspx.cs"
N"
���:����� � �����
��
�
www.depurando.com 174
<<
OnMen
DataF
<<<
</bod</htmusingusingusingusingusingusingusingusingusingusingusingusing
publi{
p{
}p{
}}
<form id "fo<div>
<asp:MennuItemClick
</asp:Me<asp:Xml
File "~/AppXPat
<br /></div><asp:Label I</form>dy>ml>g System; g System.Colg System.Cong System.Datg System.Ling System.Webg System.Webg System.Webg System.Webg System.Webg System.Webg System.Xml
ic partial c
protected vo{
}protected vo{ Label1.T
}
orm1" runat
nu ID "Menu1"Menu1 Menu
enu>DataSourceData/MenuIt
th "/MenuItem
D "Label1"
lections;nfiguration;ta;nq;b;b.Security;b.UI;b.UI.HtmlConb.UI.WebContb.UI.WebCont.Linq;
class eMenu1
oid Page Loa
oid Menu1 Me
Text e.Item
� ����
"server">
" runat "serItemClick">
ID "XmlDataSems.xml"ms/*"></asp
runat "serve
trols;rols;rols.WebPart
: System.We
d(object sen
nuItemClick
m.ValuePath;
�������
rver" DataSo
Source1" run
:XmlDataSour
er" Text "La
ts;
eb.UI.Page
nder, EventA
(object send
;
� �� %���
ourceID "Xml
nat "server"
rce>
abel"></asp:
Args e)
der, MenuEve
��� ���
lDataSource1
"
Label>
entArgs e)
���:���
"
�� � �����
��
�
www.depurando.com 175
AApliicaccocioon .
���
���
��
@A
Mne.NE
�� �
���+
��
AC
ǿǿǿΦƛƴŀŘŜŎƻΦŎƻƳ
MCsET 3
��
+��
����
CTS:Web3.5
��
:b5
www.depurando.com 176
��
El XLa creen el
DOMdoculos do
A peslengula for
ArbUna den lapor a(párrelem
TodapodeHTMde mweb e
Esta tutilizafunciy por
DOMque erelac
La sig
<!DO"http
<htm
<hea
<met
����+�
XML DOMeación del Ddesarrollo d
M permite a lomentos XMLocumentos X
sar de sus oruajes de progrma de imple
ol de Nodde las tareasmanipulaciólgunos elemafos, <div>, eento (que ap
s estas tarear utilizar lasL normal noanipular. Poen una estru
transformacar las herramonamiento dr tanto, la for
M transformaestán intercoiones entre e
guiente págin
OCTYPE htmlp://www.w3.
ml xmlns="htt
d>
ta http�equiv
���
Mocument Objde las página
os programaL. De hecho,XML.
ígenes, DOMgramación (Jementarlo.
doss habituales eón de las págmentos (por eetc.) de formparezca/desa
as habitualesutilidades dees más quer ello, los nauctura más e
ión la realizamientas de Dde esta transrma en la qu
todos los doonectados y qellos. Por su
na XHTML se
PUBLIC "�//W.org/TR/xhtm
tp://www.w
v="Content�T
�� �
bject Model os web dinám
dores web aDOM se dise
M se ha convava, PHP, Jav
en la programginas web. Deejemplo los ema dinámicaaparezca, qu
s son muy see DOM, es nuna sucesiónvegadores wficiente de m
an todos losDOM de formsformación ine se manipu
ocumentos Xque represenaspecto, la u
encilla:
W3C//DTD Xml1/DTD/xht
3.org/1999/x
Type" conten
�����
o DOM es unmicas y de las
acceder y maeñó originalm
ertido en unvaScript) y c
mación de ape esta formaelementos dey añadirlo aue se desplac
ncillas de reecesario "tran de caracteweb transformmanipular.
navegadoresma muy sencinterna es qulan las págin
XHTML en unntan los contunión de tod
XHTML 1.0 Trtml1�transitio
xhtml">
nt="text/htm
���� ��
� @AC
na de las innos aplicacione
anipular las pmente para m
a utilidad disuyas únicas d
plicaciones wa, es habituae un formulala página, apce, etc.).
alizar graciasansformar" lres, por lo quman automá
s de forma alla. El motivoe condicionanas.
n conjunto detenidos de lados los nodos
ransitional//onal.dtd">
ml; charset=is
�����+�
C
ovaciones qus web más c
páginas XHTMmanipular de
sponible pardiferencias s
web con Javal obtener el vario), crear uplicar una an
s a DOM. Sina página origue es un formáticamente t
utomática yo por el quea el comport
e elementosas páginas ws se llama "á
EN"
so�8859�1" /
�� �� �
ue más ha incomplejas.
ML como si fe forma senc
ra la mayoríase encuentra
aScript consivalor almacen elementonimación a u
n embargo, pginal. Una pámato muy diodas las pág
nos permitese muestra etamiento de
llamados noweb y lasárbol de nodo
/>
���� @AC
�
fluido
fuerancilla
a dean en
steenado
n
paraáginaifícilinas
eelDOM
odos,
os".
C
www.depurando.com 177
<title
</hea
<bod
<p>E
</bod
</htm
Se tra
Figurla pág
En elrelacy su c
La raíespec
A parLa coraíz s
e>Página sen
ad>
y>
sta página es
dy>
ml>
ansforma en
a 5.1. Árbolgina
esquema aniones entre ncontenido.
íz del árbol dcial denomin
rtir de ese nonversión deolamente pu
cilla</title>
s <strong>m
el siguiente
de nodos ge
nterior, cadanodos. Dent
de nodos denado "Docum
odo raíz, cadetiquetas enueden deriva
uy sencilla</
árbol de no
enerado auto
rectángulo rro de cada n
cualquier pámento".
a etiqueta Xn nodos se rear los nodos
/strong></p>
dos:
omáticament
representa uodo, se ha in
ágina XHTML
HTML se traealiza de formHEAD y BOD
���� ��
>
te por DOM
un nodo DOMncluido su tip
L siempre es
nsforma enma jerárquicDY. A partir d
�����+�
a partir del c
M y las flechapo (que se ve
la misma: un
un nodo de tca. De esta foe esta deriva
�� �� �
código XHTM
as indican laerá más ade
n nodo de tip
tipo "Elemenorma, del noación inicial,
���� @AC
�
ML de
slante)
po
nto".docada
C
www.depurando.com 178
etiqupadre
La trade tiptipo "
Así, la
<title
Gene
Figur
De la
<p>E
Gene
�
�
�
�
eta XHTML se".
ansformaciónpo "Elemento"Texto" que
a siguiente e
e>Página sen
era los siguie
a 5.2. Nodos
misma form
sta página es
era los siguie
Nodo de
Nodo de
Como el cinterior s<strong>
El contenderiva de
se transform
n de las etiqo" (correspocontiene el t
etiqueta XHT
cilla</title>
ntes dos nod
s generados
ma, la siguien
s <strong>m
ntes nodos:
tipo "Elemen
tipo "Texto"
contenido dee transformay que deriva
nido de la etiel nodo gene
ma en un nod
uetas XHTMndiente a latexto encerra
ML:
dos:
automáticam
nte etiqueta X
uy sencilla</
nto" corresp
con el conte
e <p> incluyea en un nodoa del nodo an
queta <stronrado por <st
o que deriva
L habitualespropia etiquado por esa
mente por D
XHTML:
/strong></p>
ondiente a l
enido textua
e en su intero de tipo "Elenterior.
ng> genera atrong>.
���� ��
a del nodo co
genera dosueta XHTML)etiqueta XHT
OM para una
>
a etiqueta <p
al de la etiqu
ior otra etiqemento" que
a su vez otro
�����+�
orrespondien
nodos: el pr) y el segundTML.
a etiqueta XH
p>.
eta <p>.
ueta XHTMLe representa
nodo de tipo
�� �� �
nte a su "etiq
imero es el no es un nodo
HTML sencil
L, la etiquetaa la etiqueta
o "Texto" qu
���� @AC
�queta
nodoo de
la
ue
C
www.depurando.com 179
Figuretiqu
La traregla
�
�
ComoAun apropocualq
TipoLa eshabit
�
�
�
�
�
Los oCData
a 5.3. Nodosetas XHTML
ansformacións:
Las etiquel segund
Si una etianterior,
o se puede sasí, el procesorcionadas pquier nodo de
os de Nodpecificacióntuales se pue
Documen
Element,puede co
Attr, se detiquetas
Text, nod
Commen
otros tipos deaSection, Do
s generadosL en su interio
n automática
etas XHTMLdo nodo es h
iqueta XHTMpero los nod
uponer, las pso de transfopor DOM (que la página d
doscompleta deeden manipu
nt, nodo raíz
representaontener atrib
efine un nods XHTML, es
do que contie
t, representa
e nodos existocumentFrag
automáticamor
a de la págin
se transformijo del prime
ML se encuendos generado
páginas XHTormación esue se verán mde forma sen
e DOM definular manejan
del que deri
cada una debutos y el úni
do de este tidecir, uno po
ene el texto
a los coment
tentes que ngment, Entity
mente por D
na en un árbo
man en dos nero y consist
ntra dentro dos serán nod
ML habitualerápido y autmás adelantencilla e inmed
ne 12 tipos dndo solamen
ivan todos lo
las etiquetaico del que p
po para repror cada par a
encerrado p
tarios incluid
no se van a coy, EntityRefe
���� ��
OM para una
ol de nodos s
nodos: el prime en el conte
de otra, se sigdos hijo de su
es producenomático, siee) las únicasdiata.
e nodos, aunte cuatro o c
os demás nod
as XHTML. Sepueden deriv
resentar cadaatributo=valo
or una etiqu
dos en la pág
onsiderar sorence, Proce
�����+�
a etiqueta XH
siempre sigu
mero es la penido textua
gue el mismou etiqueta pa
árboles conndo las funcque permite
nque las págcinco tipos de
dos del árbo
e trata del únvar otros nod
a uno de losor.
ueta XHTML.
gina XHTML.
n DocumentessingInstruc
�� �� �
HTML con ot
ue las misma
ropia etiqueal de la etiqu
o procedimieadre.
miles de noionesen acceder a
inas XHTMLe nodos:
ol.
nico nodo qudos.
atributos de
tType,ction y Notat
���� @AC
�
tras
s
ta yeta.
ento
dos.
ue
e las
tion.
C
www.depurando.com 180
AcceUna vlas fuun noárbolestabelem
DOMde su
Las fuconside esbuscaaccedpadre
Por enodo
Por úsolamdespuque upágin
getElComogetEl
La funXHTM
El sig
var p
El valpartirtodosbúsq
El valque snododebe
De es
eso directvez construidunciones DOModo del árbol, ya es posibblecer el valoentos, etc.
M proporcionaus nodos pad
unciones questen en accesos hijos y asado. Sin embder directame.
ese motivo, nos y se muest
último, es immente es posués de que laun código Javna XHTML.
lementsByTo sucede conementsByTa
nción getEleML cuya etiqu
uiente ejem
arrafos = do
or que se indr del cual ses los párrafoueda.
or que devusu etiqueta cos DOM, no uprocesar ca
ste modo, se
to a los nodo automáticM para accedl es equivaleble manipulaor de un elem
a dos métoddre y acceso d
e proporcioneder al nodosí sucesivamebargo, cuandmente a ese n
no se van a ptran solamen
portante recsible cuandoa página XHTvaScript sola
TagName()n todas las fuagName() tie
mentsByTagueta sea igua
plo muestra
cument.getE
dica delanterealiza la bús de la págin
elve la funcicoincide conun array de cda valor del
e puede obte
odoscamente el áder de formaente a acceder de forma smento, move
dos alternativdirecto.
na DOM pararaíz de la páente hasta edo se quiere anodo y no lle
presentar lasnte las que p
cordar que eel árbol DOMTML se carguamente se eje
)unciones quene un nomb
gName(nombal que el par
cómo obten
ElementsByT
del nombresqueda de lona, se utiliza
ón es un arrel parámetrocadenas de tearray de la f
ener el prime
árbol complea directa a cuer a "un trozencilla la páger un elemen
vos para acc
a acceder a uágina y despul último nodoacceder a ungar a el desc
funciones npermiten acc
l acceso a loM ha sido coue por compecute cuand
e proporcionre muy largo
breEtiqueta)rámetro que
ner todos los
TagName("p"
e de la funcióos elementosel valor docu
ay con todoso proporcionexto o un arrforma que se
er párrafo de
���� ��
eto de nodosualquier nodzo" de la pággina: accedento de la pág
eder a un no
un nodo a traués a sus nodo de la raman nodo especcendiendo a
ecesarias paeder de form
s nodos, su monstruido comleto. Más ado el navegad
a DOM, la fuo, pero que l
obtiene todse le pasa a
s párrafos de
");
ón (en este cas. En este caument como
s los nodos qnado. El valoray de objetoe muestra en
e la página de
�����+�
s DOM, ya esdo del árbol.ina, una vezr al valor deina, crear y a
odo específic
avés de sus ndos hijos y aa terminada pcífico, es mutravés de to
ra el accesoma directa a
modificaciónmpletamentdelante se vedor ha cargad
uncióno hace autoe
os los elemela función.
e una página
aso, documeso, como seo punto de pa
que cumplenor devuelto eos normalesn las siguient
e la siguiente
�� �� �
s posible utilComo accedconstruido eun elementoañadir nuevo
co: acceso a
nodos padrelos nodos hipor el nodocho más rápdos sus nodo
jerárquico dlos nodos.
n y su eliminae, es decir,erá cómo asedo entera la
explicativo.
entos de la p
XHTML:
ent) es el nodquieren obtartida de la
n la condiciónes un array de. Por lo tantoes secciones
e manera:
���� @AC
�izarder aelo,os
través
ijos
idoos
de
ación
egurar
página
do aener
n deeo, ses.
C
www.depurando.com 181
var p
De la
for(va
var p
}
La funlos noprime
var p
var p
var e
getElLa funelemse ob
var p
<p na
<p na
<p>..
Normes unelemrelac
Interncuentlos el
getElLa fundinámmodi
rimerParrafo
misma form
ar i=0; i<parr
parrafo = pa
nción getEleodos devuelter párrafo de
arrafos = do
rimerParrafo
nlaces = prim
lementsByNnción getEleentos cuyo abtiene directa
arrafoEspeci
ame="prueba
ame="especi
.</p>
malmente el an método muentos HTMLionados, por
net Explorerta para los eementos cuy
lementByIdnción getElemicas. Se tratficar sus pro
o = parrafos[
ma, se podría
rafos.length;
rrafos[i];
mentsByTagtos por la fune la página:
cument.getE
o = parrafos[
merParrafo.g
Name()mentsByNamatributo namamente el ún
ial = docume
a">...</p>
ial">...</p>
atributo namuy práctico pradiobuttonr lo que la fu
r 6.0 no implelementos deyo atributo i
d()mentById() eta de la funcopiedades.
[0];
an recorrer to
; i++) {
gName() se pnción. En el s
ElementsByT
[0];
getElementsB
me() es similme sea igual anico párrafo
ent.getEleme
me es único ppara accedern, el atributonción devue
ementa de foe tipo <inputd sea igual a
es la más utición preferid
odos los párr
puede aplicarsiguiente eje
TagName("p"
ByTagName(
ar a la anteral parámetrocon el nomb
entsByName
para los elemdirectamentname es co
elve una cole
orma correc> y <img>. Aal parámetro
lizada cuanda para acced
���� ��
rafos de la p
r de forma reemplo, se ob
");
("a");
ior, pero eno proporcionbre indicado
("especial");
mentos HTMte al nodo demún a todoscción de ele
ta esta funciAdemás, tamde la funció
do se desarroder directam
�����+�
ágina con el
ecursiva sobtienen todos
este caso seado. En el sig:
;
L que lo defieseado. En es los radiobumentos.
ión, ya que sbién tiene enón.
ollan aplicaciente a un no
�� �� �
siguiente có
re cada unos los enlaces
e buscan losguiente ejem
nen, por lo qel caso de lostton que est
sólo la tienen considerac
iones webodo y poder
���� @AC
!ódigo:
dedel
mplo,
quesán
ención
leer o
C
www.depurando.com 182
La funparámuna m
var ca
<div i
<a h
</div
La funque c
Interntambfunci
CreaAccedmanielimi
CreaComonodotipo T
Por ecuatr
1
2
3
4
De esinclui
// Cre
var p
nción getElemetro indicamisma págin
abecera = do
id="cabecera
href="/" id="
v>
nción getElecasi todos los
net Explorerbién aquellosón.
ación y Elder a los nodpulaciones hnar nodos de
ación de eleo se ha visto,os: el primerText y repres
este motivo,ro pasos dife
1. Creación
2. Creación
3. Añadir el
4. Añadir ellugar en e
ste modo, siir el siguient
ear nodo de
arrafo = doc
mentById() ddo en la funa, la función
ocument.get
a">
logo">...</a>
mentById() es ejemplos y
r 6.0 tambiéns elementos
liminacióndos y a sus phabituales enel árbol DOM
ementos XH, un elementnodo es de tsenta el cont
crear y añadrentes:
de un nodo
de un nodo
nodo Text c
nodo Elemeel que se qui
se quiere añe código Jav
tipo Element
ument.creat
devuelve el eción. Como edevuelve ún
ElementById
>
es tan imporejercicios qu
n interpreta icuyo atribut
n de Nodoropiedades (n las páginasM, es decir, c
HTML simplto XHTML setipo Elementtenido textua
dir a la página
de tipo Elem
de tipo Text
como nodo h
ent a la páginiere insertar
ñadir un párraScript:
t
teElement("p
elemento XHel atributo idnicamente e
d("cabecera"
rtante y tan uue siguen la
incorrectamo name coin
os(que se verá. Las otras ocrear y elimin
lesencillo, comot y represental de la etiqu
a un nuevo e
ment que rep
t que represe
hijo del nodo
na, en formael elemento
rafo simple a
p");
���� ��
HTML cuyo atd debe ser únl nodo desea
");
utilizada en tutilizan cons
ente esta funcida con el p
más adelantperaciones hnar "trozos" d
o por ejemplota la etiquetaueta <p>.
elemento XH
presente al e
ente el conte
Element.
de nodo hijoo.
l final de una
�����+�
tributo id conico para cadado.
todas las aplstantemente
nción, ya quparámetro p
te) es sólo unhabituales sode la página
o un párrafoa <p> y el seg
HTML sencillo
lemento.
enido del ele
o del nodo c
a página XHT
�� �� �
oincide con eda elemento
icaciones wee.
e devuelveroporcionad
na parte de lon las de creaweb.
, genera dosgundo nodo
o consta de
emento.
orrespondie
TML, es nece
���� @AC
"lo de
eb,
o a la
lasar y
ses de
ente al
esario
C
www.depurando.com 183
// Cre
var co
// Añ
parra
// Añ
docu
El prode tre
�
�
�
ElimAfortañad
var p
parra
<p id
La funfunciformanodo
Así, pvalorelimimanu
ear nodo de
ontenido = d
ñadir el nodo
afo.appendC
ñadir el nodo
ment.body.a
oceso de crees funciones
createEleXHTML cu
createTextextual de
nodoPadutilizar alText comde algún
minación detunadamenteirlo. En este
arrafo = doc
afo.parentNo
="provisiona
nción removón debe sera más seguraoHijo.parentN
para eliminarparentNodenan automátualmente cad
tipo Text
document.cre
Text como h
hild(contenid
Element com
appendChild
ación de nues DOM:
ement(etiqueuya etiqueta
xtNode(conte los elemen
re.appendChmenos doso hijo del nonodo de la p
nodose, eliminar ucaso, solame
ument.getEl
ode.removeC
al">...</p>
veChild() reqinvocada dea y rápida deNode.
r un nodo dee del nodo quticamente toda nodo hijo
eateTextNod
hijo del nodo
do);
mo hijo de la
(parrafo);
evos nodos p
eta): crea una se pasa com
tenido): creantos XHTML.
hild(nodoHijoveces con loodo Elementpágina.
n nodo del áente es nece
lementById(
Child(parrafo
uiere como pesde el elemee acceder al n
e una páginaue se quiereodos los nodo.
de("Hola Mu
o Element
a pagina
puede llegar
n nodo de tipmo parámetr
un nodo de
o): añade unos nodos haby a continua
árbol DOM desario utilizar
"provisional"
o);
parámetro eento padre dnodo padre
XHTML se ineliminar. Cuos hijos que
���� ��
undo!");
a ser tedioso
po Element qro.
tipo Text qu
n nodo comobituales: en pación se añad
e la página er la función r
");
el nodo que sde ese nodode un eleme
nvoca a la fuuando se elimtenga, por lo
�����+�
o, ya que im
ue represen
ue almacena
o hijo de otroprimer lugarde el nodo E
es mucho máremoveChild
se va a eliminque se quierento es medi
nción removmina un nodoo que no es
�� �� �
plica la utiliz
ta al elemen
el contenido
o nodo. Se dese añade el nlement com
ás sencillo qud():
nar. Ademásre eliminar. Lante la prop
veChild() deso, también snecesario bo
���� @AC
)
zación
nto
o
ebenodoo hijo
ue
, estaLapiedad
de elseorrar
C
www.depurando.com 184
AcceUna vmoditodos
Los apropiatribu
El sig
var e
alert(
<a id=
En eldocuenlac
Las pvalorejem
var im
alert(
<img
Aunqexactel cód
FigurJavaS
eso directvez que se haficar sus atris los atributo
tributos XHTiedades de louto XHTML d
uiente ejem
nlace = docu
(enlace.href)
="enlace" hr
ejemplo antment.getElece.href. Para
ropiedades Cde cualquieplo obtiene
magen = doc
(imagen.style
id="imagen
que el funciotamente iguadigo anterior
a 5.4. ValoreScript
to a los ata accedido aibutos y propos XHTML y t
TML de los elos nodos. Padetrás del no
plo obtiene
ument.getEle
); // muestra
ref="http://w
terior, se obtmentById().obtener por
CSS no son tr propiedadel valor de la
ument.getEl
e.margin);
" style="mar
namiento esales, como mr en distintos
es que muest
tributos Xa un nodo, elpiedades. Metodas las pro
lementos deara acceder aombre del no
de forma dir
ementById("
a http://www
www...com">
tiene el nodoA continuacr ejemplo el
an fáciles deCSS del noda propiedad
ementById("
rgin:0; borde
s homogéneomuestran lass navegador
tra Internet
Xhtmlsiguiente paediante DOMopiedades CS
e la página sea su valor, simodo.
recta la direc
enlace");
w...com
>Enlace</a>
o DOM que rción, se obtieatributo id, s
e obtener como, se debe umargin de la
"imagen");
er:0;" src="lo
o entre distinsiguientes imes:
Explorer al a
���� ��
aso natural cM, es posibleSS de cualqui
e transformamplemente s
cción a la que
representa eene el atributse utilizaría e
mo los atributilizar el atriba imagen:
ogo.png" />
ntos navegadmágenes que
acceder a las
�����+�
consiste en ae acceder deier elemento
n automáticse indica el n
e enlaza el e
el enlace medto href del eenlace.id.
utos XHTML.buto style. E
dores, los rese son el resu
propiedade
�� �� �
cceder y/oforma sencio de la págin
camente ennombre del
nlace:
diante la funnlace media
. Para obtenel siguiente
sultados noltado de ejec
s CSS a travé
���� @AC
*
lla aa.
ciónnte
er el
soncutar
és de
C
www.depurando.com 185
Figur
Si el nligera
var p
alert(
<p id
La tralos guconti
�
�
�
�
El únes elparaclassN
var p
alert(
alert(
<p id
EjemA parla sig
a 5.5. Valore
nombre de uamente su no
arrafo = doc
(parrafo.style
="parrafo" s
ansformaciónuiones medionuación se m
font�weig
line�heigh
border�to
list�style�
ico atributoatributo clasacceder al atName para a
arrafo = doc
(parrafo.clas
(parrafo.clas
="parrafo" c
mplo 1rtir de la páguiente inform
es que muest
una propiedaombre:
ument.getEl
e.fontWeigh
tyle="font�w
n del nombros (�) y escribmuestran alg
ght se transf
ht se transfo
op�style se tr
�image se tra
XHTML quess. Como la ptributo classacceder al at
ument.getEl
ss); // muestr
ssName); // m
class="norma
gina web promación:
tra Firefox a
ad CSS es com
lementById(
ht); // muest
weight: bold;
e de las propbir en mayúsgunos ejemp
orma en fon
orma en lineH
ransforma en
ansforma en
no tiene el mpalabra classs del elementributo class d
lementById(
ra "undefine
muestra "nor
al">...</p>
porcionada y
l acceder a la
mpuesto, se
"parrafo");
tra "bold"
">...</p>
piedades CSSscula la letralos:
tWeight
Height
n borderTop
listStyleImag
mismo nombs está reservato XHTML. Ede XHTML:
"parrafo");
d"
rmal"
y utilizando l
���� ��
as propiedad
accede a su
S compuestasiguiente a
Style
ge
bre en XHTMada por Javan su lugar, D
las funciones
�����+�
des CSS a tra
valor modifi
as consiste encada guión m
L y en las proScript, no es
DOM utiliza e
s DOM, most
�� �� �
vés de JavaS
icando
n eliminar tomedio. A
opiedades Ds posible utilel nombre
trar por pan
���� @AC
Script
odos
DOMizarla
talla
C
www.depurando.com 186
1
2
3
4
<!DOCTY<html x<head><meta h<title>
<scriptwindow.
var i
// Nuvar einfo.
// Divar minfo.
// Nuvar cfor(v
////if(
c}
}info.
// Nuvar penlacinfo.
}</scrip</head>
<body><div id<p>Lorelibero.et, lucelit coporta</ipsum dac, fellacus.
<p>AenecubiliamalesuaporttitAliquamdiam. Icondime
<p>DoneVestibusem</a>non archref "hhendrernon lec</body>
</html>
EjemCompmuesde pude Japinch
1. Número d
2. Dirección
3. Numero d
4. Número d
YPE html PUBLIC "xmlns "http://www
http�equiv "Conte>Ejercicio 11 � DO
t type "text/javaonload functio
info document.g
umero de enlacesenlaces documentinnerHTML "Num
ireccion del penumensaje "El peninnerHTML info
umero de enlacescontador 0;var i 0; i<enlaceEs necesario comphttp://prueba/ poenlaces[i].href
contador++;
innerHTML info
umero de enlacesparrafos documeces parrafos[2]innerHTML info
pt>>
d "informacion" stem ipsum dolor sit
Maecenas nisl actus at, pede. Peonvallis malesuad/a>. Duis pellentdolor sit amet, clis. Donec arcu.Vestibulum venen
ean at nisl. Maeca Curae; Proin coada porttitor saptor felis, id sodm nec lectus necIn magna massa, mentum, arcu in sc
ec sagittis, nibhulum aliquet, nul>. Quisque eget ecu sodales hendrehttp://prueba4">erit, eros quis mactus non est pell>
>
mplo 2pletar el códstre completulsarlo por pvaScript quehar sobre el e
de enlaces d
n a la que en
de enlaces q
de enlaces d
�//W3C//DTD XHTML.w3.org/1999/xhtm
nt�Type" contentOM básico</title>
script">n() {etElementById("in
de la paginat.getElementsByTaero de enlaces
ltimo enlaceultimo enlace apu.innerHTML + "<br
que apuntan a htt
s.length; i++) {probar los enlaceor las diferencia
"http://prueba
.innerHTML + "<br
del tercer párrafnt.getElementsByT.getElementsByTag.innerHTML + "<br
tyle "border:thint amet, <a href "rcu, consequat collentesque massaa. Phasellus magnesque, felis eu aonsectetuer adipiNam sed tortor neatis erat eu odio
enas egestas dapinsequat auctor diien. Aenean a lacales dolor dolorneque aliquet dicattis id, pellentelerisque loborti
nec ullamcorperla sit amet imperros vehicula diamrit. In sem. Crasgestas</a> adipislesuada tristiqueentesque</a> auct
igo JavaScripo el contenidrimera vez. Le se ven en eenlace, se eje
e la página
laza el penúl
ue enlazan a
el tercer pár
L 1.0 Transitionaml">
"text/html; char>
nformacion");
agName("a");"+enlaces.length
unta a: "+enlacesr/>" + mensaje;
tp://prueba
es http://pruebaas entre navegadoa" || enlaces[i]
r/>" + contador +
foTagName("p");gName("a");r/>" + "Numero de
n solid silver; p"http://prueba">congue, commodo neante, ornare id
na sem, semper quadipiscing ullamciscing elit. Duisec ipsum aliquamo. Praesent id me
ibus odio. Vestibiam. <a href "httcus et metus venesed urna. Sed ru
ctum. Etiam <a hrtesque sit amet,is, ante arcu sce
tristique, pederdiet suscipit, nm euismod tristiqs id augue eu lorscing ligula. Duie, ipsum odio euitor.</p>
pt proporciodo de texto.La acción deel siguiente cecuta la func
ltimo enlace
a http://prue
rrafo
al//EN" "http://w
rset iso�8859�1"
h;
s[enlaces.length�
yoreshref "http://
+ " enlaces apunt
e enlaces del ter
padding:.5em"></dconsectetuer adipec, commodo ultri
aliquam vitae,uis, faucibus ut,corper, odio urnas scelerisque. Doullamcorper. Dui
etus.</p>
bulum ante ipsumtp://prueba">Ut benatis porta. Susutrum nulla vitaeref "http://pruebporta sit amet,
elerisque mi, at
velit feugiat manunc erat laoreetque. Ut dui. Donerem dictum interdis iaculis laoreeismod tortor, a v
nado para qAdemás, elpinchar sobapítulo. En eción llamada
���� ��
eba
www.w3.org/TR/xhtm
/>
2].href;
prueba/") {
an a http://prueb
cer párrafo "+e
iv>iscing elit</a>.cies, turpis. Quiultrices porttitorhoncus non, miconsequat arcu,
nec lacus neque,s accumsan metus
primis in faucibuibendum blandit ependisse cursus,tellus. Sed quis
a3">consequat semlectus. Curabiturcursus mi risus s
ssa, at sollicituest, a <a href "
c in metus sed rium. Donec pretiumt turpis. Maurisestibulum nisl mi
ue cuando seenlace debere un enlaceeste ejerciciomuestra().
�����+�
ml1/DTD/xhtml1�tr
ba"
enlaces.length;
Sed mattis enimisque sapien nuncor, pede. Nullam. <a href "http:/at posuere antevehicula in, eleeu urna. Aenean
us orci luctus etest</a>. Curabitusem non dapibus
s eros nec lectusm quis massa</a>.r posuere. Aliquased tellus.</p>
udin justo tellus"http://prueba">aisus laoreet sollm. Proin <amollis est sit a
i at odio. <a hre
e pinche sobdejar de mo
e forma parteo, sólo se deb
�� �� �
ransitional.dtd">
vitae orci. Phasc, posuere vitae,sit amet nisl el
//prueba2">Fuscequam non dolor.
eifend vitae, venvitae enim. Inte
t ultrices posuerur vestibulum. Nutincidunt, lorem
s tempor lacinia.. Donec aliquam eam in elit. Fusce
s vitae justo.aliquam leo odiolicitudin. Proin
amet diam. Curabief "http://prueba
bre el enlaceostrarse despe de los "Evebe saber que
���� @AC
�
>
sellusrutrum
lementum
Loremnenatiseger
reuncm magna
euismode
sedet nisi
itura5">Sed
sepuésentos"e al
C
www.depurando.com 187
<!DOCTY<html x<head><meta h<title>
<style.oculto.visibl</style
<scriptfunctio
var eeleme
var eenlac
}</scrip</head>
<body>
<p idnisl arpede. Psit amepellentamet, carcu. Nvenenat<a id
</body>
</html>
EjemCompcadaañadsobreEn esllama
<!DOCTY<html x<head><meta h<title>
<scriptfunctio
var evar teleme
var llista
var nlista
}</scrip</head>
<body>
<ul id<li>L<li>C<li>S<li>P<li>M
</ul>
<input
</body>
</html>
YPE html PUBLIC "xmlns "http://www
http�equiv "Conte>Ejercicio 12 � DO
type "text/css">o { display: nonele { display: inle>
t type "text/javaon muestra() {elemento documeento.className
enlace documentce.className "o
pt>>
texto">Lorem ipsrcu, consequat coPellentesque masset nisl elementumtesque, felis euconsectetuer adipNam sed tortor netis erat eu odio.enlace" href "#"
>
>
mplo 3pletar el códvez que se pirlos a la listae un botón foste ejercicio,ada anade().
YPE html PUBLIC "xmlns "http://www
http�equiv "Conte>Ejercicio 13 � DO
t type "text/javaon anade() {elemento documetexto document.ento.appendChild(t
lista document.a.appendChild(ele
nuevoElemento "a.innerHTML list
pt>>
"lista">Lorem ipsum dolorConsectetuer adipSed mattis enim vPhasellus libero<Maecenas nisl arc
type "button" va
>
>
�//W3C//DTD XHTML.w3.org/1999/xhtm
nt�Type" contentOM básico y atrib
; }ine; }
script">
nt.getElementById"visible";
.getElementById("culto";
um dolor sit ametngue, commodo neca ante, ornare idelit convallis m
adipiscing ullamciscing elit. Duisc ipsum aliquam uPraesent id metuonclick "muestra
igo JavaScrippulsa sobre ea existente. Aorma parte dsólo se debe
�//W3C//DTD XHTML.w3.org/1999/xhtm
nt�Type" contentOM básico y atrib
script">
nt.createElement(createTextNode("Etexto);
getElementById("lmento);
<li>Texto de prueta.innerHTML + nu
sit amet</li>iscing elit</li>itae orci</li>/li>u</li>
lue "Añadir eleme
L 1.0 Transitionaml">
"text/html; charbutos XHTML</titl
d("adicional");
"enlace");
t, consectetuer ac, commodo ultricd, aliquam vitaemalesuada. Phaselcorper, odio urnas scelerisque. Doullamcorper. Duisus.</span></p>a(); return false
pt proporcioel botón. UtilAl igual quede los "Evente saber que a
L 1.0 Transitionaml">
"text/html; charbutos XHTML</titl
("li");Elemento de prueb
lista");
eba</li>";uevoElemento;
ento" onclick "an
al//EN" "http://w
rset iso�8859�1"le>
adipiscing elit.cies, turpis. Qui
ultrices porttillus magna sem, sa consequat arcu,onec lacus neque,s accumsan metus
e;">Seguir leyend
nado para qlizar las funcsucede en etos" de JavaSal pinchar so
al//EN" "http://w
rset iso�8859�1"le>
ba");
nade();">
���� ��
www.w3.org/TR/xhtm
/>
Sed mattis enim vsque sapien nunc,tor, pede. <spanemper quis, fauciat posuere antevehicula in, ele
eu urna. Aenean v
o</a>
ue se añadaniones DOM pl ejercicio anScript que seobre el botón
www.w3.org/TR/xhtm
/>
�����+�
ml1/DTD/xhtml1�tr
vitae orci. Phase, posuere vitae,id "adicional" c
ibus ut, rhoncusquam non dolor.
eifend vitae, venvitae enim. Integ
n nuevos elepara crear nunterior, la acce ven en el sin, se ejecuta
ml1/DTD/xhtml1�tr
�� �� �
ransitional.dtd">
ellus libero. Maerutrum et, luctu
class "oculto">Nunon, mi. DuisLorem ipsum dolo
nenatis ac, felisger lacus. Vestib
ementos a lauevos nodosción de pinchguiente capíla función
ransitional.dtd">
���� @AC
�
>
ecenasus at,ullam
or sits. Donecbulum
listas yharítulo.
>
C
www.depurando.com 188
XPahttp:/
Perm
Se ba
Su esdocu
Ejem
EvalLa evnodo
Una epredi
SeleNom///
.
..@[]*@*|
Ejem
<alu
</al
<alumno<alumno
</alumn<alumno
</alumn</alumn
ath//www.di.un
mite acceder a
asa en relacio
stilo de notacmento XML
plo: /alumno
luación Xvaluación deos, booleano,
expresión XPicado
ección debre
mplos de e
umno dni=”9939393
<nombre>
<apellidos
<nacim>19
lumno>
os>o dni=”9939393”>
<nombre>Pedr<apellidos>Me
no>o dni=”12876540”>
<nombre>Ana<<apellidos>Mo
no>nos>
niovi.es/~lab
a partes de u
ones de pare
ción es simila
o/nombre
XPathuna expresió, número, ca
Path equivale
Nodos en
expresion
3”>
>Juan</nombre>
s>García García</ap
985</nacim>
ro</nombre>edario</apellidos>
</nombre>oreno</apellidos>
bra/cursos/X
un documen
entesco entre
ar a las rutas
ón XPath arradena.
e a un predic
n XPath
nes XPath
pellidos>
ML/XPath.pd
to XML
e nodos
s de los fiche
oja una expr
cado, que de
SelecNodoNodocon lNodoPadreAtribUn pEncajEncajUna d
h� /alumn
o
� /alumnoo
� //nomb
/alumn
���� ��
df
eros, pero se
resión de 4 t
evuelve todo
cciona los hijos a partir deos a partir dea descripcióno actuale del nodo abutosredicado queja con cualquja con cualqude varias sel
nos/alumno[<nombre>P
os/alumno/Dni=993939Dni=128765
bre
o/nombre
�����+�
refiere a no
ipos posibles
lo que encaj
os de nombel nodo raízel nodo actuan, no import
ctual
e debe cumpuier nodouier atributoecciones
[1]/nombrePedro</nom
@dni93540
J
�� �� �
dos en un
s: conjunto d
ja con dicho
re
al que encajta donde esté
plirse
o
bre>
Juan
���� @AC
�
de
enén
C
www.depurando.com 189
�
EjesUn ej
AnceAnceAttribChildDesceDesceFollowFollowName
ParenPrecePreceSelfLa sin
OpeLa evboole
Oper
+ , � *
Funci
Funci
Funci
o <o <
//alumnoo <o <
s de Evaluje define un
storstor�or�selfbute
endantendant�or�sewingwing�siblingespace
ntedingeding�sibiling
ntaxis es: nom
eradores yvaluación deeano o un en
adores:
* , div , = , !=
iones numér
iones de cad
iones Boolea
<nombre>Pe<nombre>An
o[1]/nombre<nombre>Pe<apellidos>M
uación ennodo relativ
elf
g
mbreEje::no
y funcioneuna expresióntero
, < , > , <= , >
ricas: numbe
denas: concat
anas: not, tru
dro</nombra</nombre>
| //alumnodro</nombr
Moreno</ape
XPathvo a otro nod
do[predicad
es en XPaón en XPath
>= , or, and ,
er, abs, floor,
t, substring,
ue, false
re>>
[2]/apellidosre>ellidos>
do
TodoAnceTodoTodoDescDescNodoTodoTodonodoPadreTodoHermEl no
o]
athdevuelve un
mod
, ceiling, roun
contains, ….
���� ��
s
os los ancestrestros incluidos los atributos los hijos deendientesendientes inos que siguenos los hermanos los nodos doe del nodoos los nodos amanos anterido actual
n conjunto de
nd,…..
�����+�
ros de un nodos el nodoos del nodoel nodo
ncluido el nodn al nodonos despuésdel espacio d
anteriores aores al nodo
e nodos, una
�� �� �
odo
do
del nodode nombres
l nodo actuao actual
a cadena, un
���� @AC
�
del
al
C
www.depurando.com 190
XMLLas clespac
El espla cla
Obj
XmlSon opued
El Xmentre
L Namesplases de XMLcio de nomb
pacio de nomse XmlDataD
etos XML
lDocumeobjetos que ren usarse pa
mlDataDocume datos.
paceL están en lares System.X
mbres SystemDocument
L
ent y Xmlrepresentanara navegar y
ment hereda
dll System.XXml.
m.Xml tambi
lDataDocXML en memy editar los n
de XmlDocu
Xml, para usa
én se extien
cumentmoria usandnodos XML
ument y tam
���� ��
ar sus clases
de en la dll S
o DOM nive
bién permite
�����+�
deberemos
System.Data,
l 1 y nivel 2.
e representa
�� �� �
importar el
, en concreto
Estas clases
ar las relacion
���� @AC
�
o con
nes
C
www.depurando.com 191
Tra
XmlRepre(DOMde árdocupued
<?xm
<b
</
DentnodoDOMoperacódigmanimejorealiz
abajando
lDocumenesenta un doM) Level 1 y erbol en memmento. Dadoe utilizar com
ml version
books>
<book>
<auth
<pric
<pubd
</book>
<pubinfo>
<publ
<stat
</pubinfo
/books>
ro de la estruo, que se denM. La clase Xmaciones en ego XML en unpular los nodrado el rendzar lo siguien
con docu
ntocumento XMel Core DOMoria (caché)o que XmlDomo documen
n="1.0"?>
hor>Carson
ce format=
date>05/01
>
lisher>MSP
te>WA</sta
o>
uctura de losnomina objetmlDocumentl documenton archivo. Addos de tododimiento y lante:
umentos
ML. Esta clasM Level 2 delde un documocument impnto de origen
n</author>
="dollar">
1/2001</pu
Press</pub
ate>
s documentoto XmlNode.t, que extieno en conjuntdemás, la clael documentcapacidad d
XML
se implemenconsorcio Wmento XML yplementa lan de la clase
>
>31.95</pr
ubdate>
blisher>
os XML, cada. El objeto Xmde la clase Xo, (por ejemse XmlDocuto XML. Las cde uso y disp
���� ��
ta el Core DoW3C. DOM esy permite lainterfaz IXPaXslTransform
rice>
a círculo de emlNode es eXmlNode, adplo, cargarloment propoclases XmlNoonen de mét
�����+�
ocument Objla representexploraciónathNavigablem.
esta ilustracil objeto básimite métodoo en la memorciona un mode y XmlDotodos y prop
�� �� �
ject Modeltación en fory edición dee, también se
ón representico del árbolos para realizoria o guardaedio para veocument hanpiedades par
���� @AC
!
rmale
ta undezarar eler ynra
C
www.depurando.com 192
�
�
La cladel ar
Crea
Crea
LoadAppesecun
Creanodo
versiLa ve
encoValor
standEste vel mé
Save
Attri……..
Parase va
AñadDocu
Podreun elméto
Finalm
//Dec
Obtenerreferenci
Recuperatexto de
ase XmlDocurchivo XML
ateElement(
ateAttribute
dXml(stringendChild(Xndarios de es
ateXmlDeclaXmlDeclara
ionrsión debe s
odingr del atributo
dalonevalor debe seétodo Save n
e(string) Gu
ibutes. Obtie
crear un docformando to
imos la declmento XML
emos utilizaremento XMLodo Append.
mente, con e
clare and crXmlDocumen
XmlElementint childCint grandC
acceso y moa de entidad
ar nodos comun nodo de e
ument tiene u
(string) Cre
e(string) Cr
g) Carga el d
XmlNode)Agste nodo.
aration(strtion con los
ser "1.0".
o de codifica
er "yes" o "nno escribe un
arda el docu
ene un objet
cument Xmlodo el docum
aración XMLcon el méto
r objetos deL a través de
el método Sa
reate new Xmnt xmlDoc
t el; Counter;ChildCounter
odificar nodod, etc.
mpletos, adeelemento.
una serie de
ea un eleme
rea un atrib
documento X
grega el nodo
ring versionvalores espe
ción
no". Si es refen atributo ind
umento XML
to XmlAttrib
Nuevo, utilizmento.
L y creamos edo AppendC
la clase XmlEe la colección
ave(), guarda
lDocumentnew XmlDocum
;
s específicos
más de la inf
métodos m
ento con el n
uto con el n
XML desde la
o especificad
n, string enecificados
erencia nulldependiente
en la ubicac
uteCollectio
zamos el obje
el elementoChild().
Element, Xmn Attributes,
amos el arch
ment();
���� ��
s de DOM, co
formación qu
uy importan
nombre espe
nombre espe
cadena espe
do al final de
coding, stri
(Nothing ene en la declar
ción especific
n que contie
eto XmlDocu
raíz. Que los
mlAttribute. Lque es una X
ivo XML
�����+�
omo nodos d
ue contiene
tes para crea
ecificado
ecificado
ecificada.
e la lista de n
ing standal
Visual Basicración XML.
cada.
ene los atribu
ument, a par
s iremos aña
Los atributosXmlAttribute
�� �� �
de elemento
el nodo, com
ar el conteni
nodos
lone) Crea u
) o String.Em
utos de este
rtir de este o
diendo al
s los añadimoeCollection, c
���� @AC
", de
mo el
ido
un
mpty,
nodo
objeto
os acon el
C
www.depurando.com 193
//Recabsol
Este c
<?xml<myRo <my
<<<
</m <my
<<<
</m <my
<<<
</m <my
<<<
</m</myR
RecoCon Xrecur
Llama
prote {
//Create t xmlDoc.App xmlDoc.Cr
//Create t el xmlDo xmlDoc.App
//Child Lofor (child
{ XmlElemXmlAttr
//Creat childel childat childat childel
//Appen el.Appe
for (gr {
//Cr chil } }
//Save to cupera la ruluta o relat xmlDoc.Sav lbl.Text
código gene
l version "1oot>yChild ID "1<GrandChild<GrandChild<GrandChildmyChild>yChild ID "2<GrandChild<GrandChild<GrandChildmyChild>yChild ID "3<GrandChild<GrandChild<GrandChildmyChild>yChild ID "4<GrandChild<GrandChild<GrandChildmyChild>Root>
orrer NodXmlDocumenrsividad
amos al mét
ected void B
lbl GetL
the xml declpendChild(reateXmlDecl
the root nodoc.CreateElempendChild(el
oopdCounter 1
ment childelmribute child
te child witmt xmlDoc
ttr xmlDocttr.Value mt.Attribut
nd element iendChild(chirandChildCou
reate grandcdelmt.Appen
fileuta de accestiva, o una ve(MapPath("
"XmlDocume
ra el siguient
.0" encodin
">/>/>/>
">/>/>/>
">/>/>/>
">/>/>/>
dos de unnt podemos
odo recursiv
Button2 Clic
Label(275, 2
aration firs
aration("1.0
e and appendment("myRoot);
; childCount
mt;attr;
h ID attribu.CreateEleme.CreateAttrichildCounteres.Append(ch
nto the rootldelmt);nter 1; gr
hildrendChild(xmlDo
o física a lruta de acceXmlDocumentTntTest.xml C
te archivo XM
g "utf 8"?>
documens recorrer cad
vo pasándole
k(object sen
0);
st
0", "utf 8",
d into doc t");
ter < 4; ch
uteent("myChildibute("ID");r.ToString()hildattr);
t element
randChildCou
oc.CreateEle
la que está eso relativaTest.xml"));Created";
ML
nto XMLda uno de lo
e el elemento
nder, EventA
���� ��
, null));
hildCounter+
d");;);
unter < 3;
ement("Grand
asignada una a la aplic;
s nodos del d
o raíz (Docum
Args e)
�����+�
++)
grandChildC
dChild"));
na ruta de acación
documento,
mentElemen
�� �� �
Counter++)
acceso virtu
utilizando
nt)
���� @AC
)
al
C
www.depurando.com 194
}
pu {
}
pu {
}
Reco
La ClPropo
Méto
Move
Move
Move
Move
Move
Move
Move
Move
Move
Move
XmlDocumen xmlDoc.Loa RecurseNod
ublic void R
//start re RecurseNod
ublic void R
string s; s string
new strforeach (X
{ s + st } lbl.Text +foreach (X
{ Recurse }
orrer Nodos
lase XPathNorciona un m
odo
eTo
eToChild
eToDescend
eToFirst
eToFirstChild
eToFollowin
eToId
eToNext
eToParent
eToPrevious
nt xmlDoc ad(MapPath("des(xmlDoc.D
RecurseNodes
ecursive loopdes(node, 0)
RecurseNodes
g.Format("{0ring(' ', levXmlAttribute
tring.Format
+ s + "<br>XmlNode n in
eNodes(n, lev
s de un Doc
Navigatormodelo de cu
Descr
Muevespec
Muev
ant Muev
Muev
d Muev
g Muevdocum
Muevcon u
Muevactua
Muev
s Muevactua
new XmlDocumXmlDocumentTocumentEleme
(XmlNode nod
p with level;
(XmlNode nod
} <b>Type:</vel), node.Nattr in nod
("{0} {1} ",
";node.ChildN
vel + 1);
cumento XM
ursor para de
ripción
ve XPathNavcificado.
ve XPathNav
ve XPathNav
ve XPathNav
ve XPathNav
ve XPathNavmento.
ve XPathNavun valor que
ve XPathNaval.
ve XPathNav
ve XPathNaval.
ment();Test.xml"));ent);
de)
l 0
de, int leve
/b>{1} <b>NaNodeType, node.Attribute
, attr.Name,
Nodes)
ML con XPa
esplazarse y
vigator a la m
vigator a un
vigator a un
vigator al pri
vigator al pri
vigator al ele
vigator al nocoincide con
vigator al sig
vigator al no
vigator al no
���� ��
;
el)
ame:</b>{2}ode.Name);es)
, attr.Value
th
editar datos
misma posició
nodo secund
nodo descen
mer nodo re
mer nodo se
emento espe
do que tienen la String es
uiente nodo
do principal
do relaciona
�����+�
<b>Attr:</b
e);
XML.
ón del XPath
dario del nod
ndiente del n
elacionado de
ecundario de
cificado en e
e un atributopecificada.
relacionado
del nodo act
do anterior
�� �� �
b> ",
hNavigator
do actual.
nodo actual.
el nodo actu
el nodo actua
el orden del
o del tipo ID
o del nodo
tual.
del nodo
���� @AC
�*
ual.
al.
C
www.depurando.com 195
Move
Move
Move
Move
ParaXmlDy a pa
prote {
}
pu {
}
pu {
}
Obte
XmlD
using
using
eToRoot
eToAttribute
eToFirstAttrib
eToNextAttri
recorrer unDocument quartir de este
ected void B
lbl GetLXmlDocumen
xmlDoc.Loa
XPathNavig xpathNav.M RecurseNav
ublic void R
//start re RecurseNav
ublic void R
string s
s stringnew st
if (node.H { node.Mo
do { s + } while
node.Mo }
lbl.Text +
if (node.H { node.Mo
do { Recu } while node.Mo }
ener un Elem
Document.G
g System;
g System.Xml
Muev
bute
bute
documentoue crea un nuobjeto pode
Button3 Clic
Label(275, 2nt xmlDoc ad(MapPath("
gator xpathNMoveToRoot()vNodes(xpathN
RecurseNavNo
ecursive loopvNodes(node,
RecurseNavNo
null;
g.Format("{0tring(' ', l
HasAttribute
oveToFirstAt
string.Forme (node.Move
oveToParent(
+ s + "<br>
HasChildren)
oveToFirstCh
urseNavNodese (node.MoveoveToParent(
mento por
GetElementB
;
ve XPathNav
Xml con XPauevo objetoer desplazarn
k(object sen
0);new XmlDocumXmlDocumentT
av xmlDoc;Nav);
des(XPathNav
p with level0);
des(XPathNav
} <b>Type:</evel), node
s)
tribute();
mat("{0} {1ToNextAttrib
);
";
ild();
(node, levelToNext()););
ID
ById(string
vigator al no
ath, usaremoXPathNaviganos por todo
nder, EventA
ment();Test.xml"));
.CreateNavig
vigator node
l 0
vigator node
/b>{1} <b>Na.NodeType, n
} ", node.Nabute());
l + 1);
g) Obtiene el X
���� ��
do raíz del d
os el métodoator para desos los nodos
Args e)
;
gator();
e)
e, int level
ame:</b>{2}node.Name);
ame, node.Va
XmlElement c
�����+�
ocumento X
CreateNavigsplazarse po
l)
<b>Attr:</b
alue);
on el identific
�� �� �
ML.
gator() delr este docum
b> ",
ador especific
���� @AC
�
mento
cado
C
www.depurando.com 196
publi
{
pub
{
X
d
/
/
X
C
/
/
e
C
}
}
Selec
XmlNexpre
ic class Sam
blic static
XmlDocument
doc.Load("id
//Get the fi
//This displ
XmlElement e
Console.Writ
//Get the fi
//This displ
elem doc.G
Console.Writ
lbl Getstring s; //DeclareXmlDocumen
xmlDoc.Loa
XmlNode no node xml
s string node.Node
foreach (X { s + st } lbl.Text
ctSingleNod
Node.SelectSesión XPath.
lbl Getstring s; //DeclareXmlDocumen
xmlDoc.Loa
XmlNode no node xml
s string node.Node
foreach (X { s + st } lbl.Text
mple
void Main()
doc new Xm
ds.xml");
rst element
ays the nod
elem doc.G
teLine( elem
rst element
ays the nod
GetElementBy
teLine( elem
tLabel(275,
and create nt xmlDoc ad(MapPath("
ode;Doc.GetElem
g.Format("<beType, node.N
XmlAttribute
tring.Format
s + "<br>"
de
SingleNode
tLabel(275,
and create nt xmlDoc ad(MapPath("
ode;Doc.SelectS
g.Format("<beType, node.N
XmlAttribute
tring.Format
s + "<br>"
mlDocument()
with an att
e <Person SS
etElementByI
.OuterXml );
with an att
e <Person SS
Id("A222");
.OuterXml );
20);
new XmlDocumnew XmlDocumXmlSample.xm
entById("ref
>Type:</b>{0Name);
a in node.A
("{0} {1} ",
;
e (String). Se
20);
new XmlDocumnew XmlDocumXmlSample.xm
ingleNode("/
>Type:</b>{0Name);
a in node.A
("{0} {1} ",
;
);
tribute of t
SN "A111" Na
Id("A111");
;
tribute of t
SN "A222" Na
;
mentment();ml"));
f 3");
0} <b>Name:<
Attributes)
, a.Name, a.
elecciona el
mentment();ml"));
//myChild[@C
0} <b>Name:<
Attributes)
, a.Name, a.
���� ��
type ID and
ame "Fred"/>
type ID and
ame "Tom"/>.
</b>{1} <b>A
.Value);
primer XmlN
ChildID 'ref
</b>{1} <b>A
.Value);
�����+�
value of A1
>.
value of A2
Attr:</b>",
Node que coin
f 3']");
Attr:</b>",
�� �� �
11.
22.
ncide con la
���� @AC
��
C
www.depurando.com 197
GetE
XmlDcontiespec
//Cre
X
d
/
X
f
{
}
Selec
XmlNexpre
XmlDo
d
X
X
n
/
f
{
}
C
d
ElementByT
Document.Gene una listacificado
lbl Getstring s;
//DeclareXmlDocumen
xmlDoc.Loa
XmlNodeLis elmts xm
foreach (X { s str node.N lbl.Tex }
eate the Xml
XmlDocument
doc.Load("bo
//Display al
XmlNodeList
for (int i 0
{
Console.Wr
}
ctNodes
Node.SelectNesión XPath
ocument doc
doc.Load("bo
XmlNodeList
XmlNode root
nodeList roo
//Change the
foreach (Xml
{
book.LastC
}
Console.Writ
doc.Save(Con
string s;
TagName
GetElementa de todos lo
tLabel(275,
and create nt xmlDoc ad(MapPath("
t elmts; mlDoc.GetElem
XmlNode node
ring.Format(NodeType, noxt + s + "<b
Document.
doc new Xm
ooks.xml");
l the book
elemList
; i < elemL
riteLine(elem
Nodes (Stri
new XmlDo
ooksort.xml"
nodeList;
t doc.Docum
ot.SelectNod
e price on t
Node book i
Child.InnerT
teLine("Disp
nsole.Out);
tsByTagNaos elementos
20);
new XmlDocumnew XmlDocumXmlSample.xm
mentsByTagNa
in elmts)
"<b>Type:</bde.Name);br>";
mlDocument()
titles.
doc.GetEleme
ist.Count; i
mList[i].Inn
ing). Selecci
cument();
);
mentElement;
es("descenda
he books.
n nodeList)
ext "15.95";
lay the modi
me (Strings descendien
mentment();ml"));
ame("myGrand
b>{0} <b>Nam
);
entsByTagNam
i++)
nerXml);
iona una list
;
ant::book[au
;
ified XML do
���� ��
g). Devuelventes que coin
dChild");
me:</b>{1}",
me("title");
ta de nodos q
uthor/last n
ocument...."
�����+�
un objeto Xnciden con e
que coincide
name 'Austen
");
�� �� �
mlNodeList ql Name
en con la
n']");
���� @AC
��que
C
www.depurando.com 198
XPatlbl
Orde
//DeclareXmlDocumen
xmlDoc.Loa
XmlNodeLis elmts xm
foreach (X { s str node.N lbl.Tex }
thNavigator GetLabel(2string s; XPathDocumXPathNavig
string exp
//DisplayXPathNodeIXPathNavigwhile (ite
{ s Str navRes
if (nav { navR s +
do { s
} wh }
lbl.Tex }
nando
lbl Getstring s; XPathDocumXPathNavig
//Select aXPathExpre
expr nav
//Sort the expr.AddSo
XmlSortOrXmlCaseOrXmlDataTy
//DisplayXPathNodeIXPathNavigwhile (ite
{ s Str navRes
if (nav { navR s +
and create nt xmlDoc ad(MapPath("
t elmts; mlDoc.SelectN
XmlNode node
ring.Format(NodeType, noxt + s + "<b
r75, 20);
ment xmlDoc gator nav
pr "//myCh
the selectiterator ite
gator navReserator.MoveN
ring.Format(ult.NodeTyp
vResult.HasA
Result.MoveT"<b>Attr:<
+ String.navResult.N
hile (navRes
xt + s + "<b
tLabel(275,
ment xmlDoc gator nav
all myChild ession expr; v.Compile("/
e selected bort("@ChildIrder.Descendrder.None, "ype.Text);
the selectiterator ite
gator navReserator.MoveN
ring.Format(ult.NodeTyp
vResult.HasA
Result.MoveT"<b>Attr:<
new XmlDocumnew XmlDocumXmlSample.xm
Nodes("//myG
in elmts)
"<b>Type:</bde.Name);br>";
new XPathDxmlDoc.Creat
ild[@ChildID
on.rator navult iteratext())
"<b>Type:</be, navResult
ttributes)
oFirstAttrib/b> ";
Format("{0}ame, navResuult.MoveToNe
br>";
20);
new XPathDxmlDoc.Creat
elements
/myChild");
ooks by titlD",ing,",
on.rator navult iteratext())
"<b>Type:</be, navResult
ttributes)
oFirstAttrib/b> ";
mentment();ml"));
GrandChild")
b>{0} <b>Nam
Document(MapteNavigator
D 'ref 3']";
.Select(exprtor.Current;
b>{0} <b>Namt.Name);
bute();
{1} ",ult.Value);extAttribute
Document(MapteNavigator
le.
.Select(exprtor.Current;
b>{0} <b>Namt.Name);
bute();
���� ��
);
me:</b>{1}",
pPath("XmlSa();
;
r);;
me:</b>{1} "
e());
pPath("XmlSa();
r);;
me:</b>{1} "
�����+�
ample.xml"))
",
ample.xml"))
",
�� �� �
;
;
���� @AC
��
C
www.depurando.com 199
Xml
El objStringarchivAlgun
Writetextoseguiencod
Write
Writecon s
Writegenepued
Write
// CrFileS// EsXmlTeXmlTe
// LeoXML.
oXML.oXML.
"\httxmlns
oXML.oXML.oXML.DataSoXML.// InoXML.oXML.oXML.oXML.oXML.oXML.
oXML.
do { s
} wh } lbl.Tex }
lTextWri
jeto que escgBuilder u ovo físico) todnas caracterí
eProcessingIo que irá al pido de un espding="utf�8"
eStartEleme
eAttributeStsu valor. <Eti
eElementStrraría la siguie comproba
eEndElemen
reo el archiStream oFilestablezco elextWriterextWriter oX
e indico queFormatting
WriteProcesWriteStartE oXML
tp://schemass:rd \"http:
WriteStartEWriteStartEWriteAttrib
Source.WriteStartE
nserto etiquWriteElemenWriteElemenWriteElemenWriteEndEleWriteEndEleWriteEndEle
WriteEndEle
+ String.navResult.N
hile (navRes
xt + s + "<b
iter
ribe un archtro modo esdo el etiquetísticas de las
Instruction.�rincipio “<?[pacio. Con e"?>, que será
nt.� Escribe u
tring.� Esta pqueta Nomb
ring.� Escribeente etiquetren el ejemp
nt.� Esta prop
vo donde alme new File archivo y
XML new Xm
e se cree co Formattin
singInstrucElement("RepL.WriteAttrib.microsoft.//schemas.m
Element("DatElement("DatbuteString("N
Element("Conuetas que no ntString("InntString("ContString("Daement(); //ement(); //ement(); //
ement(); //
Format("{0}ame, navResuult.MoveToNe
br>";
ivo XML a pas el XmlTextWtado que nospropiedade
Esta propiedPrimer Textosto podemoá el encabeza
una etiqueta
ropiedad nobrePropiedad
e una etiquetta: <Nombreplo.
piedad cierra
macenaré mi Stream("UnaRla codificac
lTextWriter
n sangría log.Indented;
tion("xml",ort");buteString("com/sqlserveicrosoft.com
aSources");aSource"); /Name", "Nomb
nectionPropeson necesar
tegratedSecunnectString"taProvider",Cierro ConneCierro DataSCierro DataS
Cierro el re
{1} ",ult.Value);extAttribute
arte de haceWriter. Estesotros le indis del XmlTex
dad tiene doo] [segundo ts conseguir lado de nuest
a de apertura
os creará en ld=”ValorProp
ta de apertu>Valor</Nom
a una etiquet
infomre.Ruta\UnArchición al obje
(oFile, Enco
os nodos del
"version \"
"xmlns",er/reportingm/SQLServer/
// Abro Dat// Abro DatabreDS"); //
erties");rio cerrar.urity", "tru", " PARAMET, "SQL");ectionProperSource.Sources.
eport.
���� ��
e());
rlo nosotrosobjeto escribiquemosxtWriter son
os parámetrotexto]?>” y elo siguiente:tro informe.
a y necesitar
la anterior etpiedad”>. No
ra con un nombre>. No n
ta creada con
ivo.rdl", Fieto
oding.UTF8);
l xml..
"1.0\" encod
g/2005/01/re/reporting/r
taSources.aSource.Inserto pro
ue");TERS!RPTCADE
rties.
�����+�
a mano conbe sobre un
:
os el primeroel segundo d<?xml versio
rá ser cerrad
tiqueta unao necesita se
ombre y su vaecesita ser c
nWriteStarE
ileMode.Crea
ding \"utf 8
eportdefinitreportdesign
opiedad dent
ENACONEX.Val
�� �� �
un simple SFileStream(u
o correspondespués de eson="1.0"
a después
propiedad der cerrado.
alor. Estocerrado como
Element
ate);
\"");
tion\ner\"");
tro de etiqu
ue");
���� @AC
��
tring,un
de a elste
entro
o se
eta
C
www.depurando.com 200
// VuoXML.oFile
El res
<?xml<Repoxmlns
<Da<
<</D
</Rep
string
<futb <ju
<<
</j <ju
<<
</j
uelco el bufFlush();
e.Close();
sultado será:
l version "1ort xmlns hts:rd "http:/ataSources><DataSource
<Connectio<Integra<Connect<DataPro
</Connecti</DataSourceDataSources>port>
g path = Serveusing (XmlTex{
writer.Form
writer.Writ writer.Writ
writer.Writ writer.Writ writer.Writ writer.Writ writer.Writ writer.Writ writer.Writ
writer.Writ writer.Writ writer.Writ writer.Writ
writer.Writ writer.Writ writer.Writ
writer.Writ writer.Writ
writer.Clos}
olistas> ugador pais="<nombre>Dav<equipo>Valejugador>ugador pais="<nombre>Leo<equipo>Barcjugador>
ffer.
:
.0" encodinttp://schema/schemas.mi
Name "NombronPropertiesatedSecuritytString> PARAovider>SQL</onPropertie
e>>
er.MapPath("~xtWriter write
matting = Form
teStartDocumeteStartElemen
teStartElementeAttributeStriteElementStrinteStartElementeString("ValeteEndElementteEndElement
teStartElementeAttributeStriteElementStrinteStartElementeString("BarcteEndElementteEndElement
teEndElementteEndDocumen
se();
"España"> vid Villa</nomencia C.F.</no
"Argentina"> o Messi</nomcelona F.C.</e
g "utf 8"?>s.microsoftcrosoft.com/
eDS">>>true</IntegAMETERS!RPTCDataProviders>
~/futbolistas.xer = new XmlT
matting.Inden
ent(); nt("futbolistas
nt("jugador");ing("pais", "Esng("nombre",nt("equipo");encia C.F.");();();
nt("jugador");ing("pais", "Arng("nombre",nt("equipo");celona F.C.");();();
();nt();
mbre> ombre>
mbre> equipo>
.com/sqlserv/SQLServer/r
gratedSecuriCADENACONEX.r>
xml"); TextWriter(pa
nted;
");
spaña"); "David Villa")
rgentina"); "Leo Messi");
���� ��
ver/reportinreporting/re
ity>.Value</Conn
th, Encoding.U
);
;
�����+�
ng/2005/01/reportdesigne
nectString>
UTF8))
�� �� �
reportdefinier">
���� @AC
��
tion
C
www.depurando.com 201
</futb
<?xml<! X<Empl
bolistas>
XmlTextWrXmlTextWri
System.Tex
xmlWriter. xmlWriter.
xmlWriter. xmlWriter.
DateTim
xmlWriter.
//New Empl xmlWriter. xmlWriter. xmlWriter. xmlWriter. xmlWriter.
xmlWriter.XmlConvXmlDate
xmlWriter. xmlWriter. xmlWriter. xmlWriter. xmlWriter. xmlWriter.
//Address xmlWriter.//Employee
xmlWriter.
//New Empl xmlWriter. xmlWriter. xmlWriter. xmlWriter. xmlWriter.
xmlWriter.XmlConvXmlDate
xmlWriter. xmlWriter. xmlWriter. xmlWriter. xmlWriter. xmlWriter.
//Address xmlWriter.//Employee
xmlWriter.
//Employee xmlWriter. xmlWriter.
Response.R
l version "1XmlTextWriteloyeeList><Employee E <HireD
riter xmlWriter(MapPath
xt.Encoding.
FormattingIndentation
WriteStartDWriteCommen
me.Now.ToSho
WriteStartE
oyeeWriteStartEWriteAttribWriteAttribWriteAttribWriteAttrib
WriteElemenvert.ToStrineTimeSeriali
WriteStartEWriteElemenWriteElemenWriteElemenWriteElemenWriteElemen
WriteEndElemeWriteEndElem
oyeeWriteStartEWriteAttribWriteAttribWriteAttribWriteAttrib
WriteElemenvert.ToStrineTimeSeriali
WriteStartEWriteElemenWriteElemenWriteElemenWriteElemenWriteElemen
WriteEndElemeWriteEndElem
eListWriteEndElemClose();
Redirect("Emp
.0" encodiner Test Date
EmpID "1" LaDate>2003 01
iter new("EmployeeLiUTF8);
Formatting 5;
ocument();t("XmlTextWrrtDateString
lement("Empl
lement("EmpluteString("EuteString("LuteString("FuteString("S
tString("Hirg(DateTime.PzationMode.U
lement("AddrtString("StrtString("StrtString("CittString("StatString("Zip
ment();
ment();
lement("EmpluteString("EuteString("LuteString("FuteString("S
tString("Hirg(DateTime.PzationMode.U
lement("AddrtString("StrtString("StrtString("CittString("StatString("Zip
ment();
ment();
ment();
ployeeList.x
g "utf 8"?>: 09/03/2009
stName "JoeL01T00:00:00
ist.xml"),
g.Indented;
riter Test Dg());
loyeeList");
loyee");EmpID", "1")LastName", "FirstName",Salary", Xml
reDate",Parse("1/1/2Unspecified)
ress");reet1", "123reet2", "");ty", "MyCityate", "OH");pCode", "123
loyee");EmpID", "2")LastName", "FirstName",Salary", Xml
reDate",Parse("1/2/2Unspecified)
ress");reet1", "234reet2", "");ty", "MyCityate", "OH");pCode", "234
xml");
9 >
Last" FirstN0</HireDate>
���� ��
Date: " +
;
);"JoeLast");"Joe");
lConvert.ToS
2003"),));
3 MyStreet");y");;345");
);"MaryLast");"Mary");
lConvert.ToS
2003"),));
4 MyStreet");y");;456");
Name "Joe" S>
�����+�
String(50000
;
String(40000
;
Salary "5000
�� �� �
));
));
0">
���� @AC
�!
C
www.depurando.com 202
</Emp
XmlXmlTuna slectoreflej
<Addre<<<<<
</Addr</Employee><Employee E <HireD <Addre
<<<<<
</Addr</Employee>
ployeeList>
lTextReaTextReader psecuencia der. Para avanzjan el valor d
lbl GetXmlTextRea
XmlText
while (xml {
switch {
casecasecase
{
}case
{
} }
if (xml {
whil {
s s
l } } } xmlReader.
ess><Street1>123<Street2 /> <City>MyCity<State>OH</S<ZipCode>123ress>>EmpID "2" LaDate>2003 02ess><Street1>234<Street2 /> <City>MyCity<State>OH</S<ZipCode>234ress>>
aderproporcionae datos XML.zar el lector,del nodo actu
tLabel(275,ader xmlReadtReader(MapP
Reader.Read
(xmlReader.N
e XmlNodeType XmlNodeType XmlNodeTyp
string s; s Strin xmlRea xmlRea xmlRea lbl.Text
break;
e XmlNodeTyp
string s; s Strin xmlReade lbl.Text
break;
Reader.HasA
e (xmlReade
tring s; String.FxmlReader.Nbl.Text +
Close();
MyStreet</S
</City>tate>45</ZipCode>
stName "Mary01T00:00:00
MyStreet</S
</City>tate>56</ZipCode>
acceso de sóEl nodo actuutilice cualqual.
20);er newath("Employe
())
NodeType)
e.XmlDeclarae.Element:e.Comment:
g.Format("{0der.NodeTypeder.Name,der.Value);+ s;
e.Text:
g.Format("r.Value);+ s;
ttributes)
r.MoveToNext
ormat(" Atame, xmlReads;
Street1>
>
yLast" First0</HireDate>
Street1>
>
ólo lectura yual hace refequiera de los
eeList.xml")
ation:
0}: {1} {2e,
Value: {0}
tAttribute()
ttribute: {0der.Value);
���� ��
tName "Mary">
con desplazaerencia al nos métodos de
));
2}<br>",
}<br>",
))
0} {1}<br>
�����+�
" Salary "40
amiento sólodo en el quee lectura y la
>",
�� �� �
000">
o hacia delane está situados propiedade
���� @AC
�"
nte ao eles
C
www.depurando.com 203
ModCuanquere
Cuan
ValiLa claXmlR
prote{ lb
if {
} el
{
} }
priva{
Xm xm xm
XmXmtr
{
} ca
{
} fi
{
} }
dificar undo el objetoemos borrar
do queremo
//DeclareXmlDocumen
xmlDoc.Loa
//delete aXmlNode no
node xml node.Paren
//create aXmlElement
xmlDoc. node xml node.Paren xmlDoc.Sav Response.R
idar Docuase XmlReadReader cread
ected void B
bl GetLabef (ValidateD
lbl.Text +
lse
lbl.Text +
ate bool Val
mlReaderSettmlSet.ValidamlSet.ProhibmlReader vr mlDocument xry
xd.Load(vrreturn tru
atch (Except
lbl.Text +return fal
inally
vr.Close()
n DocumXmlDocumeun nodo, sim
os insertar un
and load newnt xmlDoc ad(MapPath("
a mode ode;Doc.SelectS
ntNode.Remov
a node and at newElement CreateElemeDoc.SelectS
ntNode.Inserve(MapPath("Redirect("Xm
umentoserSettings Eso mediante
Button14 Cli
el(275, 20); Document(Map
+ "Valid Do
+ "Invalid
idateDocume
tings xmlSet ationType VbitDtd fal
XmlReaderxd new Xml
r);ue;
tion ex)
+ ex.Messagse;
;
ento XMLent está cargmplemente t
n nodo, busc
w XmlDocumennew XmlDocumXmlSample.xm
ingleNode("/eChild(node)
dd it
nt("myNewEleingleNode("/tAfter(newElXmlSampleModlSampleModif
s XMLspecifica unel método C
ck(object se
Path("XmlBad
cument<br />
Document<br
nt(string fi
new XmlReValidationTyse;.Create(fileDocument();
e + "<br />"
Lgado en memtenemos que
camos la loca
ntment();ml"));
//myChild[@C);
ement");//myChild[@Clement, nodedified.xml")fied.xml");
conjunto deCreate.
ender, Event
dSample.xml"
>";
/>";
ileName)
eaderSettingype.DTD;
eName, xmlSe
";
���� ��
moria, es muye posicionarn
alización apro
ChildID 'ref
ChildID 'refe);));
e característic
tArgs e)
")))
gs();
et);
�����+�
y fácil modifnos en su no
opiada e inse
f 3']");
f 1']");
cas compatib
�� �� �
ficarlo. Siodo padre.
ertamos el n
bles en el ob
���� @AC
�)
nodo.
bjeto
C
www.depurando.com 204
Tes
1. Wh
2. Whty
t
hich class caA. XmlConvB. XmlDocuC. XmlNewD. XmlSettin
hich class caypes?
A. XmlType
B. XmlCast
C. XmlConv
D. XmlSettin
an be used tovert ument
ngs
an be used to
ert
ngs
create an XM
o perform dat
ML docume
ta type conv
���� ��
nt from scrat
version betwe
�����+�
tch?
een .NET dat
�� �� �
ta types and
���� @AC
�*
XML
C
www.depurando.com 205
AApliicaccocioon .
��
��
��
<�
Mne.NE
���
���
�
����
ǿǿǿΦƛƴŀŘŜŎƻΦŎƻƳ
MCsET 3
� �?
�����
��
CTS:Web3.5
�
�
:b5
www.depurando.com 206
��
<�
En ocen locontr
�
�
Los coque eelem
En esASP.N
Los copareclos coevent
���
�����
casiones, es ps controles droles. Dispon
Controlescolocar cocontrol d
Controlesdesarrolla
ontroles de ues posible reentos de inte
ste tema se pNET.
ontroles de ucido a los “arontroles de utos.
� ���
�
posible quede servidor Wne de dos op
s de usuario.ontroles de fe usuario co
s personalizaador que se
usuario sonutilizar los yaerfaz de usu
proporciona
usuario sonrchivos incluusuario son m
���+�
necesite cierWeb ASP.NETciones. Pued
. Los controleformato y deomo una unid
ados. Un conderiva de Co
mucho mása existentes.ario complej
información
páginas ASPde”, conocidmucho más p
�� �
rta funcionalT integradosde crear:
es de usuarioe servidor Wdad y definir
ntrol personaontrol o Web
fáciles de cre. Esto permitjos.
general sob
.NET que pudos por los ppotentes. So
���
�� �
lidad en un c. En estos ca
o son contenWeb. A contin
propiedade
alizado es unbControl.
ear que los cte crear con
bre el uso de
eden reutilizrogramadorn compatible
�� �? � ��
����
control que nasos, puede c
nedores en louación pueds y métodos
na clase escri
controles perfacilidad con
los controle
zarse desde oes de Asp y Pes con las pr
������ ��
���� �
no está inclucrear sus pro
os que puedde tratar elpara el mism
ta por un
rsonalizadosntroles con
es de usuario
otras páginaPhp. Sin embropiedades y
� <�����
���
idaopios
e
mo.
, ya
o
s. Esbargo,los
�
www.depurando.com 207
ParCon Vdispogenedemá
Para
1
2
3
a crear uVisual Studioone de un elera lo que serás paginas de
crear un con
1. Si no teneASP.NET”
2. Para creaComponede usuari
3. Se nos crcomponeserá susti
un controo .Net es la foemento pararía como unael sitio, reuti
ntrol de usua
emos un pro”.
ar el control dente…” En esio Web. Le in
eara un nuevente es comoituido en los
ol de usuaorma más sea ello en el ma página Weblizando así e
ario seguirem
oyecto cread
de usuario, vste wizard sendicamos el n
vo fichero coo si se trataselugares don
ario en Vencilla de conmenú de Agreb normal perel código.
mos los siguie
o, creamos u
vamos a la oeleccionamonombre que
on el nombree de una págnde usemos e
���
Visual Stunstruir un coegar. Con estro la cual se
entes pasos.
un proyecto
pción Archivs que queremva a tener n
e seleccionadgina Web. Elel control.
�� �? � ��
udio .NETntrol de usuta opción deva a poder im
de “Aplicació
vo �> Agregarmos crear unnuestro comp
do con extencontenido d
������ ��
T.ario, ya quemenú se nomportar en l
ón Web de
r Nuevon nuevo contponente.
nsión “.ascx”de esta págin
� <�����
�
sas
trol
”. Estena
�
www.depurando.com 208
Con enuestarrasdentr
Esto g
<%@
Con elo vam
<Ban
EstrUn co.aspxde usagregde ustarea
Un co
�
�
esto podemotras páginastrar el ficherro de nuestra
genera el sig
Register Tag
esto estamosmos a usar b
coASPNET:E
ructura dontrol de usux) e incluye usuario es mugan el formatsuario puedeas como el en
ontrol de usu
La extens
En lugar dControl q
os crear nuesWeb. Para pro del “Exploa página web
guiente códig
gPrefix=”Ban
s diciendo qubajo en nomb
ncabezado r
de los conuario Web ASna página dey similar al pto y los conte incluir el cónlace de dato
uario se difer
sión de nomb
de una direcque define la
stros controlpoder usar elorador de solb.
go:
coASPNET” T
ue la paginabre de Banco
runat=”serve
ntroles dSP.NET es sime interfaz deproceso de crtroles secundódigo necesaos.
rencia de un
bre de archiv
tiva @ Page,configuració
les y reutilizal control en oluciones” al l
TagName=”E
a utilizar unoASPNET:Enc
er”/>
de usuariomilar a una pe usuario y córeación de udarios necesario para man
a página We
vo para el co
, el control dón y otras pr
���
ar todo el cóotra pagina wlugar donde
Encabezado”
fichero llamcabezado.
opágina Web Aódigo. El prona página ASarios. Al iguanipular su co
eb ASP.NET e
ontrol de usu
de usuario coropiedades.
�� �? � ��
digo que queweb solo tenqueremos c
” Src=”encab
mado “encabe
ASP.NET comceso de creaSP.NET, sóloal que una páontenido e in
en los siguien
uario es .ascx
ontiene una d
������ ��
eramos ennemos queolocar el con
bezado.ascx”
ezado.ascx”
mpleta (archiación del conque al finalágina, un conncluso realiza
ntes aspecto
x.
directiva @
� <�����
�
ntrol
”%>
y que
ivontrolsentrolar
s:
�
www.depurando.com 209
�
�
En unformcontrcontrboton
<%@ C
<scrippp{
}
p{
}
p{
}
p{
}</scr
<asp:<asp:OnCli<asp:OnCli
Los contrlugar, deb
El controdeben es
n control de) y controlesrol de usuariroles de servnes.
Control Lang
ipt runat "sprotected inprotected Stprotected vo{
if (IsPo { curr
} else
{ curr Disp }
}
protected vo{ textColo ViewStat
}
protected vo{
if(curre { curr }
else { curr } DisplayC
}
protected vo{
if(curre { curr }
else { curr } DisplayC
}ript>
TextBox IDButton Font
ick "buttonUButton Font
ick "buttonD
roles de usuabe agregarlo
l de usuariotar en la pág
usuario pueds Web que eno para utilizavidor Web Bu
guage "C#" C
erver">nt currentCotring[] colooid Page Loa
ostBack)
rentColorIndInt16.Parse
rentColorIndplayColor();
oid DisplayC
or.Text cote["currentC
oid buttonUp
entColorInde
rentColorInd
rentColorInd
Color();
oid buttonDow
entColorInde
rentColorInd
rentColorInd
Color();
"textColor"t Bold "TrueUp Click" />t Bold "TrueDown Click"
ario no se puos a las págin
no contienegina de aloja
de utilizar lon una páginaar una barrautton en el co
lassName "Us
lorIndex;rs {"Red",d(object sen
ex (ViewState["
ex 0;
olor()
lors[currentolorIndex"]
Click(objec
x 0)
ex colors
ex 1;
wn Click(obj
x (colors
ex 0;
ex + 1;
runat "serv" ID "button
" ID "button/>
ueden ejecutnas ASP.NET,
elementos hmiento.
s mismos elea Web ASP.Nde herramieontrol y crea
serControl1"
, "Blue", "Gnder, EventA
"currentColo
tColorIndex] currentCo
ct sender, E
.Length 1;
ject sender,
s.Length 1
ver" ReadOnlnUp" runat "
nDown" runat
���
ar como arccomo haría
html, body o
ementos HTMNET. Por ejementas, puedear controlado
" %>
Green", "YelArgs e)
orIndex"].To
];olorIndex.To
EventArgs e)
;
, EventArgs
1))
ly "True" />"server" Tex
t "server" T
�� �? � ��
hivos indepecon cualquie
o form. Estos
ML (exceptomplo, si estáe colocar unaores de even
llow"};
oString());
oString();
e)
>xt "^"
Text "v"
������ ��
endientes. Ener otro contr
s elementos
html, bodycreando una serie dentos para los
� <�����
�n surol.
y
�
www.depurando.com 210
InclPararecibpor to
1
2
3
En elusuarcontrpropi
<%@ P<%@ R
S<html<body<form
<
</for</bod
Otrasoluc
Defi
luir un coutilizar un coe una solicitodas las fase
1. En la págsiguiente
� UEu
� UEu
� Uc
2. En el cueelemento
3. Si el contmediante
ejemplo sigurio. Éste se erol se registriedades MinV
Page LanguagRegister TagSrc "~\Contrl>y>m id "Form1"<uc:Spinner
runat "sMinValueMaxValue
rm>dy>
posibilidad eciones al form
finir prop
ontrol deontrol de usuud de una páes de procesa
ina Web ASPe:
Un atributo TEste prefijo susuario.
Un atributo TEste nombreusuario.
Un atributo Scontrol de us
rpo de la págo form.
rol de usuare declaración
uiente se muencuentra ena para que uValue y Max
ge "C#" %> gPrefix "uc"rols\Spinner
runat "servid "Spinnererver"
e "1"e "10" />
es simplememulario en el
piedades
e usuariouario, éste dágina y éstaamiento que
P.NET conten
TagPrefix, que incluirá en
TagName, quse incluirá e
Src, que permuario que se
gina Web, de
io expone prn.
uestra una pn el archivo Sutilice el prefxValue del co
TagName "Sp.ascx" %>
ver">1"
nte arrastrarl que se quie
y métod
o en una pebe incluirsecontiene une realizan los
nedora, cree
ue permite asla etiqueta
ue permite aen la etiqueta
mite definir lae va a incluir.
eclare el elem
ropiedades p
ágina Web ASpinner.ascxfijo uc y el noontrol de usu
pinner"
r el control dere incluir
dos para u
���
página We en una págcontrol de u
s controles de
una directiv
sociar un prede apertura
sociar un noa de apertura
a ruta de acc.
mento de co
públicas, tam
ASP.NET quede la carpetombre de etiuario se estab
de usuario de
un contro
�� �? � ��
Web ASP.Ngina Web ASPusuario, diche servidor AS
va @ Registe
efijo al contrdel element
ombre al conta del elemen
ceso virtual a
ontrol de usu
mbién puede
contiene una Controls. Equeta Spinnblecen media
esde el explo
ol de usu
������ ��
NETP.NET. Cuando control paSP.NET.
er que incluya
rol de usuarioto del contro
trol de usuanto del contr
al archivo de
uario dentro
establecerla
n control deEn la página,er. Lasante declara
orador de
uario
� <�����
�do sesa
a lo
o.ol de
rio.rol de
el
del
as
el
ación.
�
www.depurando.com 211
Puedharíaestab
MyCousingusingusingusingusingusingusingusingusingusingpubli{
p{
}p{
}}
MyCo<%@ P
I
<%@ R
<!DOCTrans<html<head
<</hea<body
<<
/>&nb
<<
</bod</htm
MyCousingusingusingusingusingusingusingusingusingusingpubli{
e definir propara una pá
blecer sus pro
ontrol.ascxg System; g System.Datg System.Cong System.Colg System.Webg System.Webg System.Webg System.Webg System.Webg System.Webic partial c
public strin{
get { reset { lb
}public strin{
get { reset { tx
}
ontrolPropPage LanguagInherits "My
Register Src
CTYPE html Psitional//ENl xmlns "httd id "Head1"<title>Untitad>y><form id "fo<div>
<br /><asp:But
bsp;<br /><br /><uc1:MyC<br /><br /><asp:Lab<br /><br />
</div></form>dy>ml>
ntrolPropertyg System; g System.Datg System.Cong System.Colg System.Webg System.Webg System.Webg System.Webg System.Webg System.Webic partial c
opiedades y mágina. La defiopiedades m
x
ta;nfiguration;lections;
b;b.Security;b.UI;b.UI.WebContb.UI.WebContb.UI.HtmlConclass MyCont
ng UserCapti
eturn lblNamblName.Text
ng UserName
eturn txtNamxtName.Text
pertyTest.asge "C#" AutoyControlProp
c "MyControl
PUBLIC " //WN""http://wwwtp://www.w3.
runat "servtled Page</t
orm1" runat
tton ID "But
Control ID "M
bel ID "Labe
yTest.aspx.cs
ta;nfiguration;lections;
b;b.Security;b.UI;b.UI.WebContb.UI.WebContb.UI.HtmlConclass MyCont
métodos parinición de unmediante dec
rols;rols.WebParttrols;rol : System
on
e.Text; } value; }
e.Text; } value; }
spxEventWireupertyTest" %>
.ascx" TagNa
3C//DTD XHTMw.w3.org/TR/org/1999/xhtver">itle>
"server">
ton1" runat
MyControl1"
l1" runat "s
rols;rols.WebParttrols;rolPropertyT
ra un controlna propiedadclaración y en
ts;
m.Web.UI.Use
"true" Code>
ame "MyContr
ML 1.0 /xhtml1/DTD/tml">
"server" Te
runat "serv
server"></as
ts;
Test : Syste
���
l de usuariod para un conn el código.
erControl
eFile "MyCon
rol" TagPref
/xhtml1 tran
ext "Get Nam
ver" />
sp:Label>
em.Web.UI.Pa
�� �? � ��
de la mismantrol de usua
ntrolPropert
fix "uc1" %>
nsitional.dt
me" OnClick
age
������ ��
manera queario permite
tyTest.aspx.
>
td">
"Button1 Cl
� <�����
!e lo
cs"
ick"
�
www.depurando.com 212
p{
}p{
}}
EveSi undichoejemcontr
Fiche<%@ CInher<asp:<asp:<br /<asp:
Códiusingusingusingusingpubli{
p{
}}
CargAl igudinám
usingusingusingusingusingusingusingusingusingusingpubli{
p{
}}
protected vo{ MyContro
}protected vo{ Label1.T
}
entos de lcontrol de uo control parplo, si su conrol de usuari
ero ascxControl Langrits "HiContTextBox IDButton ID "
/>Label ID "L
gog System.Webg System.Webg System.Webg System.Webic partial c
protected vo{ Label1.T
}
ga de Conual que otrosmicamente.
g System; g System.Datg System.Cong System.Colg System.Webg System.Webg System.Webg System.Webg System.Webg System.Webic partial c
protected vo{
//Popula MyContro (MyContr c1.UserN form1.Co MyContro (MyContr
}
oid Page Loa
ol1.UserCapt
oid Button1
Text MyCon
los controusuario contira controlar lntrol de usuao para el eve
guage "C#" Atrol" %> "TextBox1"Button1" ru
Label1" runa
b.UI;b.UI.WebContb.UI.WebContb.UI.HtmlConclass HiCont
oid Button1
Text "Hi "
ntroles Ds controles d
ta;nfiguration;lections;
b;b.Security;b.UI;b.UI.WebContb.UI.WebContb.UI.HtmlConclass HiCont
oid Page Loa
ate the formol c1 rol)LoadContName "Glenontrols.Add(ol c2 rol)LoadCont
d(object sen
ion "Enter
Click(object
trol1.UserNa
oles de uene controleos eventos pario contieneento Click de
utoEventWire
runat "servenat "server"
t "server" T
rols;rols.WebParttrols;rol : System
Click(object
+ TextBox1
Dinámicae servidor, lo
rols;rols.WebParttrols;rolDynamicLo
d(object sen
.
rol("MyContrn";c1);
rol("MyContr
nder, EventA
r User Name:
t sender, Ev
ame;
usuarioes de servidoproducidos pe un controlel botón.
eup "true" C
er"></asp:Te" Text "Hola
Text "Label"
ts;
m.Web.UI.Use
t sender, Ev
.Text;
amenteos controles
ts;
oad : System
nder, EventA
rol.ascx");
rol.ascx");
���
Args e)
:";
ventArgs e)
or Web, es ppor los controButton, pue
CodeFile "Hi
extBox>a" OnClick "
"></asp:Labe
erControl
ventArgs e)
de usuario p
m.Web.UI.Pag
Args e)
form1.Contr
�� �? � ��
osible escriboles secundade crear un
iControl.asc
"Button1 Cli
el>
pueden ser c
ge
rols.Add(c2)
������ ��
bir código enarios. Porcontrolador
cx.cs"
ck" />
cargados
;
� <�����
"
en el
�
www.depurando.com 213
Elev
Codi<%@ C
I<asp:<asp:<asp:OnCli
Codiusingusingusingusingusingusingusingusingusingusingpublipubli{
pp{
}}
El ede l
Codi<%@ P
I
<%@ R<!DOC"http<html<head
<</hea<body
<<
<<
</bod</htm
Codiusingusingusingusingusingpubli{
p{
}}
vando ev
go ascxControl LangInherits "MeLabel ID "lTextBox IDButton ID "
ick "btnMess
go csg System; g System.Datg System.Cong System.Colg System.Webg System.Webg System.Webg System.Webg System.Webg System.Webic delegateic partial c
public eventprotected vo{
if (Send}
evento debla clase d
go aspxPage LanguagInherits "Me
Register SrcCTYPE html Pp://www.w3.ol xmlns "httd id "Head1"<title>Untitad>y><form id "fo<div>
<uc1:Mes<br /><br /><asp:Lab
</div></form>dy>ml>
go csg System.Webg System.Webg System.Webg System.Webg System.Webic partial c
protected vo{ MessageC
delegate}
ventos a l
guage "C#" AessageControblName" run"txtName" rbtnMessage"age Click"
ta;nfiguration;lections;
b;b.Security;b.UI;b.UI.WebContb.UI.WebContb.UI.HtmlConvoid SendMe
class Messag
t SendMessagoid btnMessa
dMessage !
be ser siede control
ge "C#" AutoessageContro
c "MessageCoPUBLIC " //Worg/TR/xhtmltp://www.w3.
runat "servtled Page</t
orm1" runat
sageControl
bel ID "lblR
b.Security;b.UI;b.UI.WebContb.UI.WebContb.UI.HtmlConclass Messag
oid Page Loa
Control1.Sene(string mes
la página
utoEventWirel" %> at "server"unat "serverrunat "serv
/>
rols;rols.WebParttrols;ssageHandlereControl : S
eHandler Senge Click(obj
null) SendMe
empre decll de usuar
EventWireuplTest" %>
ntrol.ascx"3C//DTD XHTM1/DTD/xhtml1org/1999/xhtver">itle>
"server">
ID "Message
esult" runat
rols;rols.WebParttrols;eControlTest
d(object sen
dMessage +sage) { lblR
a
eup "true" C
Text "Enterr"></asp:Texver" Text "S
ts;
r(string mesSystem.Web.U
ndMessage;ject sender,
essage(txtNa
larado comrio.
"true" Code
TagName "MeML 1.0 Trans1 transitiontml">
eControl1" r
t "server" T
ts;
t : System.W
nder, EventA
Result.Text
���
CodeFile "Me
r Name: "></xtBox>Send Message
ssage);UI.UserContr
, EventArgs
ame.Text);
mo público
eFile "Messa
essageContrositional//ENnal.dtd">
runat "serve
Text ""></as
Web.UI.Page
Args e)
message;
�� �? � ��
essageContro
/asp:Label>
e"
rol
e)
o en la pa
ageControlTe
ol" TagPrefiN"
er" />
sp:Label>
};
������ ��
ol.ascx.cs"
arte super
est.aspx.cs"
x "uc1" %>
� <�����
)
rior
�
www.depurando.com 214
Ejem
ConVamo
PágiLa páde us
El con
ConCreamestab
PropCreampara
priva
p{
mplo de C
trol paraos a crear un
ina Princiágina principasuario
ntrol de usua
ntrol paramos otro conblecemos sus
piedadesmos 2 propiela dirección.
ate int Num
public int N{
get { reset { N
Control d
un píe den control de u
ipalal tendrá un
ario lo podem
a mostrantrol de usuas funcionalid
para el coedades para
meroColumnas
NumeroColumn
eturn NumerNumeroColumn
de Usuar
e página cusuario web
a etiqueta y
mos reutiliza
r datosario con un dades de actu
ontrolel control. U
3;
as
oColumnas;as value;
io Web
con copyrpara coloca
un botón. Po
ar en cualqui
dataList, paraualización y l
Una para dete
}}
���
ightr como píe d
osteriormen
er página
a mostrar loso incorporam
erminar el n
�� �? � ��
de página
nte, incorpor
s datos de lomos a la pág
úmero de co
������ ��
amos el cont
os coches,gina principal
olumnas y ot
� <�����
*
trol
l
tra
�
www.depurando.com 215
}p
p{
}
DamEn el
EstaEn elde us
ConEn undesen
La páveanconte
}private Repe
public Repea{
get { reset { D
}
mos valorload
this.Datathis.Dat
ablecer lacliente se disuario web. A
trolar Even control dencadenan ev
ágina en la qulos tendremenedora
eatDirection
atDirection
eturn DirecDireccion v
a las prop
aList1.RepeataList1.Repe
as propiedispondrán loAsí como la p
entosusuario, podventos, tendr
ue está colocmos publicar c
Direccion
Direccion
cion; } value; }
piedades
atColumns atDirection
dades paros controles nprogramació
demos tenerremos que c
cado el contrcon el objeti
RepeatDir
del contr
this.Numerothis.Dire
ra el clientnecesarios pn de sus eve
otros controontrolarlos e
rol de usuarivo de que lo
���
rection.Hori
rol
Columnas;eccion;
teara actualizaentos.
oles (botoneen el control
io nunca veráos eventos lle
�� �? � ��
izontal;
ar las propied
s). Si estos cde usuario.
á estos eveneguen a la pá
������ ��
dades del co
ontroles
ntos, para quágina
� <�����
ontrol
e se
�
www.depurando.com 216
Vamo
�
�
Decla
pupu
pupu
Decla
publi{
pp{
}p{
}}
Decla
prote{
}p{
}
Por úquere
El pri
prote{
}
Cuan
os a declarar
EditRecorde coche
FinishedEactualizac
aramos los ev
ublic delegateublic event Ed
ublic delegateublic event F
aramos la cla
ic class Cha
private stripublic strin{
get { reset { M
}public Chang{
this.Mat}
aramos méto
ected virtua{
if (Edit { Edit }
}protected vi{
if (Fini { Fini }
}
último, debememos que se
mer lugar es
ected void D{ DataList DataList
Label lbstring NChangedR
OnEditRe}
do pulsamos
OnFinish
r 2 eventos e
rd, se desencque se está
EditRecord, sción
ventos para
e void EditReditRecordHand
e void FinishinishedEditRe
ase Changed
angedRecordEv
ng Matricung Matricula
eturn MatriMatriculaCoc
gedRecordEve
triculaCoche
odos que des
al void OnEd
tRecord ! n
tRecord(this
rtual void
shedEditRec
shedEditRec
mos agregare desencaden
s cuando pul
DataList1 Ed
t1.EditItemIt1.DataBind(bl (Label)NumeroMatricRecordEventAecord(cre);
s los botones
hedEditRecor
en el control
cadenará cueditando.
se desencade
el Control de
cordHandler(odler EditRecor
edEditRecordHcordHandler F
RecordEvent
ventArgs : E
laCoche;Coche
culaCoche;he value;
ntArgs(strin
Matricula
sencadenen
itRecord(Cha
ull)
, e);
OnFinishedEd
ord ! null)
ord(this, e)
llamadas a enen eventos.
samos el bot
itCommand(ob
ndex e.Ite);e.Item.FidnCula lbl.Tergs cre ne
s de Actualiz
d(new EventA
de usuario:
ando se esté
enará cuand
e Usuario
object sender,rd;
Handler(objectFinishedEditRe
tArgs
EventArgs
}}
ng Matricula
aCoche;
eventos si a
angedRecordE
ditRecord(Ev
)
);
estos métod.
tón de Edita
bject source
em.ItemIndex
Control("Vinext;ew ChangedRe
zar y Cancela
Args());
���
é editando u
o el usuario
, ChangedRecor
t sender, Evenecord;
aCoche)
lguien se ha
EventArgs e)
ventArgs e)
os en los lug
r.
e, DataListC
x;
nLabel");
ecordEventAr
ar se termina
�� �? � ��
n registro, y
guarde o can
rdEventArgs e
ntArgs e);
registrado p
gares del cód
CommandEvent
rgs(NumeroMa
a de editar:
������ ��
pasará el no
ncele la
);
para recibirlo
digo en los qu
tArgs e)
atricula);
� <�����
�ombre
os
ue
�
www.depurando.com 217
En el
protec {
} pr
{
} pr
{
}
Tes
1. Wh
D
2. Yohmc
3. Yoto
lado de la p
cted void Page
this.DatosCthis.DatosDatosCoche
rotected void
lblMatricu
rotected void
lblMatricu
t
hat file extenA. .ausr exteB. .aucx exteC. .asuc exte
D. .ascx exten
ou want to crhow the Webmentioned thcan you best c
A. Create a syou the
B. Create a designer
C. Create a tcan spec
D. Create aspecify t
ou want to emto the top ofone.)
A. @Reme
B. @Refere
C. @Requi
D. @Regis
ágina princip
e Load(object
Coches1.EditRsCoches1.Finises.FinishedEdi
DatosCoches1
laCoche.Text
DatosCoches1
laCoche.Text
nsion do youensionensionensionnsion
reate a user cb page desigat the formacreate a user
separate userformat to im
separate usrs give you th
templated uscify their des
a user controthe style prop
mploy a userf the Web pag
ember
ence
ired
ter
pal, tenemos
sender, Even
Record += newshedEditRecorditRecordHandle
EditRecord(o
= "Editando "
FinishedEdit
= string.Empt
u use to create
control to disgners want tat of the datar control to so
r control for mplement in e
ser control fhe desired fo
ser control thsired format.
ol that simpperties for th
r control on oge to indicate
s que registra
ntArgs e)
DatosCoches.Ed += newer(DatosCoche
object sender,
" + e.Matricul
tRecord(object
ty;
e a user cont
splay data, bto format thea might be diolve this pro
each Web paeach user con
for each varormatting opt
hat exposes t
ly renders the user contr
one of your e that a user
���
ar para recib
EditRecordHand
s1 FinishedEd
, DatosCoches
laCoche;
t sender, Even
trol? (Choose
but you are ce data. Alsoifferent, depeoblem? (Choo
age and get entrol.
riation of thetions.
the data to th
the data andol.
Web pages. control is em
�� �? � ��
bir los evento
dler(DatosCoch
ditRecord);
.ChangedRecord
ntArgs e)
e one.)
concerned thao, some of thending on those one.)
each Web pa
e format on
he Web page
d let the We
What directimployed on t
������ ��
os
hes1 EditReco
dEventArgs e)
at you don’t he page desi
he Web page
age designer
nce the Web
e designers so
eb page desi
ive must be the page? (C
� <�����
�
rd);
know igners. How
to tell
b page
o they
igners
added Choose
�
www.depurando.com 218
AApliicacco
���
��
%��
���
cioon .
�� �
���
���
���
ǿǿǿΦƛƴŀŘŜŎƻΦŎƻƳ
Mne.NE
�?��
����
��
��:
MCsET 3
��
:���
CTS:Web3.5
��
:b5
www.depurando.com 219
��
=�
Los coque econtrexcepexplícmodeStudicuadr
Los cohemocompcompañadAsimla aplensamaplica
Los cocompvisuapuedaplicasola a
Un codispoexisteajustasimplpropilos code unbase:controperaestad
��� �
����
ontroles perencapsulan laroles personapto que se encitamente. Aelo de objetoo, como la vro de herram
ontroles peros analizadopilación dinápatibilidad enen a una págismo, los conlicación quemblado dináaciones.
ontroles de upilado un conl de Visual Sten instalar eaciones, o simaplicación.
ontrol persononible en la cen dos formaa a sus requele es extendeiedades, métontroles de sn control per: Control y Wroles de servativos del codos.
�?�� �
��:�
rsonalizadosa interfaz dealizados no snlazan a un pAparte de lo ao, activar eveventana Propmientas.
rsonalizadosen el capitumica y no sen tiempo degina, donde sntroles de uslos incorpormico que co
usuario ASP.ntrol, podemtudio. Debiden una sola cmplemente s
nalizado es uclase base deas de crear cerimientos ser el controltodos y evenservidor webrsonalizado dWebControl.vidor ASP.NETntrol, como
���
�����
����
de Asp.Net se usuario y otson diferenteprefijo de etanterior, losentos y admipiedades, el d
no se puedelo anterior. Le pueden añadiseño es limsimplementesuario se debra esté precoontiene el co
.NET personamos añadirlodo a su entorcopia en la GAse pueden im
una clase heretermina la ccontroles perólo parcialmderivando dntos específicb existentes sdesde el prinEstas clasesT y requierela reproducc
�� �?�� �
���� �
son compontra funcionaes de los coniqueta diferecontroles peitir todas lasdiseñador vis
en confundirLos controleadir al cuadromitada, así coe se muestraben implemeompilada. Enntrol de usua
alizados sonal cuadro derno compiladAC, dejandomplementar
redada de uncantidad y elrsonalizadosmente y carecde él una nuecos así comose ajusta a suncipio derivásólo proporcn que nos hación, el estilo
�������
�� ��
entes compilidad en paqntroles de seente y se debersonalizadoopciones ensual, los cons
con los conts de usuarioo de herramomo su respan como un mentar como ceste caso, vario y lo vam
código compe herramientdo, los controque estén den el directo
na clase de ccódigo que. Si descubrece de algunaeva clase. Puo añadir nuevus requerimindolo desdecionan la funagamos cargo, el estado d
�� %����
����
ilados en la puetes reutilirvidor ASP.Nben registraros pueden ten tiempo de dstructores de
troles de usuWeb son coientas. Por lauesta visualmarcador decódigo de oriamos a extra
mos a compa
pilado. Cuantas y aprovecoles personaisponibles porio \bin par
control base.debe escribie que un cons opciones cede sobreesvas opcionesiento, considuna de las c
ncionalidad bo de algunosde vista y la a
��� �����
�� D�
parte del serzables. LosNET estándarr e implemenner su propidiseño de Vie propiedad
uario Web, qmponentesa misma razócuando see posición.igen, a no seaer elrtir entre
ndo hemoschar el entoralizados seara todas lasa su uso en u
. La lógicarse. Básicamntrol existentlave, lo másscribirs. Si ningunodere la creacclases de conbásica de loss aspectosadministraci
��:����
�
��
vidor
r,ntarosualy el
uedeón, su
er que
rno
suna
mentete se
deiónntrol
ón de
�
www.depurando.com 220
HerCuanprimerealmpuedreutil
ElegUn coContrASp.Nutilizagenecomp
Creaapli
Una vaplica
Herusing
redar Condo descubraero deténgasmente con HTe empezar alidad y eficie
gir una clontrol de serrol. La clase CNET. No obstamos comúnral, los contrportamiento
ar un conicación w
vez creado yación web
redando dg System;
ntroles Ea que necesitse un momeTML, literalea planificar uencia.
lase baservidor personControl es latante, debe tnmente en aroles ASP.NE.
ntrol de uweb
compilado,
de un con
���
xistentesta un contronto y asegúrs y código Jan control AS
enalizado es ua clase raíz patener en cueplicaciones AET heredan d
usuario d
podremos tr
ntrol web
�� �?�� �
sl personalizarese de que lavaScript. Si sP.NET y post
una clase deara todos losenta que realASP.NET quee clases inte
de servid
rasladar la d
b existen
�������
ado para ejecla opción qusabe lo que dteriormente
Microsoft .Ns controles dlmente son me realmente sermedias que
dor, indep
ll resultante
nte
�� %����
cutar una dee necesita sedebe hacer ecrear la opc
NET Framewode servidor emuy pocos lose heredan de encapsulan
pendient
a la carpeta
��� �����
terminada tae puede obteen HTML purión para la m
ork heredadan las aplicacos controlesde Control. En un determi
te de la
bin de la
��:����
�area,enerro,mejor
a deionesqueEnnado
�
www.depurando.com 221
usingusingpubli{
p{
}pp{
}pp{
}}
usingusingusingpubli{
p{
}}
HerAdemWebCque sAl he
g System.Webg System.Webic class Lab
public strin{
get { reset { l
}private stripublic int L{
get { reset { l
}private intprotected ov{ writer.W
@"<span , LabelW
base.Ren}
g System; g System.Webg System.Webic partial c
protected vo{
int widtLabeledT
prompt1. prompt1. form1.Co
LiteralC form1.Co
LabeledT prompt2. prompt2. form1.Co
}
redar dirmás de heredControl, quese desea apliredar de la c
b.UI;b.UI.WebContbeledTextBox
ng LabelText
eturn labelabelText v
ng labelTeLabelWidth
eturn labelWabelWidth
labelWidthverride void
Write(style ""disp
Width, Labelnder(writer)
b.UI;b.UI.WebContclass Labele
oid Page Ini
th 150; TextBox prompLabelText LabelWidth
ontrols.Add(pControl brk ontrols.Add(bTextBox prompLabelText LabelWidth
ontrols.Add(p
ectamendar de un conpuede ser ccar.clase WebCo
���
rols;: TextBox
Text; } value; }
xt;
Width; } value; }
;Render(Html
play:inlineText);;
rols;dTextBoxTest
t(object sen
pt1 new La"Enter Name width;
prompt1);new Litera
brk);pt2 new La"Enter Addr width;
prompt2);
nte de la cntrol Web exconveniente
ontrol, debe s
�� �?�� �
lTextWriter
block;width
t : System.W
nder, EventA
abeledTextBoe:";
alControl("<
abeledTextBoress:";
clase Wexistente, puecuando no h
sobreescribi
�������
writer)
h:{0}px"">{1
Web.UI.Page
Args e)
ox();
<br />");
ox();
bControlede heredarhay ningún co
r el método
�� %����
1} </sp
ldirectamentontrol con el
Renderizar
��� �����
pan>"
te de la clasel comportam
para
��:����
�
emiento
�
www.depurando.com 222
propoLogoC
publi{
p{}p{
}pp{
}pp{
}}
usingusingusingpubli{
p{
}}
orcionar la sControl una
ic class Log
public LogoC{}public strin{
get { reset { l
}private stripublic strin{
get { reset { c
}private striprotected ov{ writer.W writer.W writer.W writer.W
}
g System; g System.Webg System.Webic partial c
protected vo{ LogoCont logo.Com logo.Log form1.Co
}
alida deseadpropiedad p
goControl : W
Control()
ng LogoUrl
eturn logoUogoUrl va
ng logoUrlng CompanyNam
eturn compacompanyName
ng companyNverride void
WriteFullBegWrite(@"<imgWrite(CompanWriteEndTag(
b.UI;b.UI.WebContclass LogoCo
oid Page Ini
trol logo mpanyName goUrl "Norontrols.Add(
���
da. La siguienpara la LogoU
WebControl
rl; } lue; }
;me
nyName; } value; }
Name;Render(Html
inTag("div")src ""{0}""
yName + "<br"div");
rols;ntrolTest :
t(object sen
new LogoCont"Northwind TthwindTraderlogo);
�� �?�� �
nte es una mUrl y la Comp
lTextWriter
);" /><br />",r />");
System.Web.
nder, EventA
trol();Traders";rs.gif";
�������
uestra de cópanyName:
writer)
, LogoUrl);
.UI.Page
Args e)
�� %����
ódigo que co
��� �����
ntiene
��:����
�
�
www.depurando.com 223
AñaherEl reqcomp
Paraherra
Si desespecun tip
Mediaccesapareespectantonombespec
// Sp[c{}/[c{}
adir Contramientaquisito básicopilado en una
incorporarloamientas, Ele
sea que un iccificar una impo de clase e
iante Toolboso y el nombecerá junto acificar un Typo el parámetrbre especificcificado por
pecifies the[ToolboxBitmclass MyCont{}// Specifies[ToolboxBitmclass MyCont{}
trol de seaso para tenera dll.
o a la barra degir element
cono especiamagen particespecial que
oxBitmapAttrbre de archivoal control cuape, en cuyo cro Type comcado por el pel parámetro
e bitmap assmap(typeof(Btrol1 : User
a bitmap fmap(@"C:\Doctrol2 : User
���
ervidor P
r un control p
e herramienos, y elegimo
al para el concular utilizanse puede as
ribute, puedeo para un maando se agrecaso se carga
mo una cadenarámetro deo Type.
ociated withutton))]Control
ile.uments and SControl
�� �?�� �
Personali
personalizad
ntas, con el bos la dll del c
ntrol aparezcdo ToolboxBociar a otras
e especificarapa de bits degue al Cuada el mapa dena, el controle cadena en e
h the Button
Settings\Joe
�������
zado a la
o en la barra
botón derechcontrol
ca en el CuadBitmapAttribs clases.
r una cadenade 16 por 16ro de herrame bits asociadl busca un reel ensamblad
n type.
e\MyPics\myI
�� %����
a barra de
a de herrami
ho en la barra
dro de herraute. Esta cla
a que indiquepíxeles. Estemientas. Tamdo a ese tipoecurso de imado que conti
Image.bmp")]
��� �����
e
ientas es que
a de
mientas, puese es un atri
e la ruta dee mapa de bmbién puedeo. Si especificagen con eliene el tipo
��:����
�
e esté
edeibuto,
its
ca
�
www.depurando.com 224
PerEspecarrasDe foetiqucuanddiseñatribuen elform
usingusingusingusing
names{
[Borde
p{
}
}
En elde Masoci
[Toolpubli
EjemVamo
Simufunci
Es decontr
Desdlos co
sonalizacifica la etiqutra desde unorma predeteeta vacía. Ésdo se arrastrño. Para espeuto. Puede udiseñador culario.
g System; g System.Webg System.Webg System.Web
space Custom
[ToolboxDataerWidth '1public class{
public M {
// Y }
}
ejemplo deyLabel. El disado a la clas
lboxData( @"ic class Log
mploos a crear un
ltáneamenteonara como
ecir, CustomCroles .
e CustomCoontroles pers
ndo Contueta predeten cuadro de herminada, elsta es la etiqra desde un cecificar valorusar este atriuando se arr
b;b.UI;b.UI.WebCont
mControls
a("<{0}:MyLab0' runat 'MyLabel :
MyLabel()
Your code go
código siguieseñador reese MyLabel.
<{0}:LogoCogoControl : W
n control per
e, creados unnuestra apli
ControlWebP
ntrolWebPasonalizados
���
trol de Seerminada genherramientadiseñador vueta que repcuadro de heres predetermibuto para perastra el con
rols;
bel Text 'Myserver'></{0Label
es here.
ente, el códimplaza toda
ntrol runatWebControl
sonalizado ll
n nuevo sitioicación consu
Pages utiliza
ges tendrem
�� �?�� �
ervidornerada paras en una hervisual de unapresenta un cerramientasminados inicersonalizar etrol desde e
yLabel' Bord0}:MyLabel>"
go anterior es las aparicio
""server""
lamado Web
o web llamadumidora o cl
rá los contro
mos que hace
�������
un control prramienta coherramientcontrol en sude un diseñaciales, los conel contenidol cuadro de h
derColor 'Ye")]
establece vaones de {0} p
CompanyName
bCustomCont
do CustomCoiente.
oles que intro
er una refere
�� %����
personalizadoomo Microsoa como Visuu estado preador visual antroles debeHTML iniciaherramienta
ellow' BackC
rias propiedpor el prefijo
e "" "" Logo
trol1
ontrolWebPa
oduzcamos e
encia a la dll
��� �����
o cuando éstoft Visual Stual Studio credeterminadoa la superficien utilizar estl que se inclus hasta el
Color 'Magen
ades específo de etiqueta
oUrl "" "" /
ages. Esta
en la bibliote
donde tenem
��:����
!te sedio.ea unao,e deteuye
ta'
ficasa
>")]
eca de
mos
�
www.depurando.com 225
Ya esRegis
<%@ R
<body><f<d
</</
</body
Los codecla
stamos prepastrar el contr
Register Tag
>form id="formdiv>
<Gerardo:Se/div>/form>y>
ontroles disparativamente
arados pararol y Usarlo.
gPrefix "Ger
1" runat="ser
erverControl1
ponen de proe.
���
añadir el con
ardo" Namesp
ver">
ID="wcc1" ru
opiedades, a
�� �?�� �
ntrol persona
pace "Server
unat="server"
a las que pod
�������
alizado a la p
rControl1" A
Text="Hola Co
demos acced
�� %����
página Web.
Assembly "Se
ontrol Persona
er mediante
��� �����
En dos paso
erverControl
alizado" />
e programaci
��:����
"
os:
1" %>
ión o
�
www.depurando.com 226
MétEs elser so
El mé
prote
ActuCadaobten
Podemanodirect
todo Rendmétodo clavobreescrito e
étodo Rende
ected overri { outp outp outp outp }
ualizar elvez que moner la dll res
mos hacerloo. Una alterntamente en
derve de un conen la clase de
r utiliza el ob
de void Ren
put.AddStyleAput.RenderBeput.Write(Teput.RenderEn
controldificamos elultante en e
o eliminandonativa es ensel directorio
���
trol personaerivada si qu
bjeto HtmlTe
derContents
Attribute("cginTag("p");xt);dTag();
control de lal directorio b
y volviendoeñar a la bilo bin del sitio
�� �?�� �
lizado. Esteueremos tene
extWriter, pa
(HtmlTextWri
color", "fuc;
a bibliotecabin del sitio w
a crear la reblioteca de co Web.
�������
método se der el control
asado como
iter output)
chsia");
de controlesweb.
eferencia, o ccontroles pe
�� %����
declara en ladel procesad
parámetro.
s personaliza
copiando el arsonalizados
��� �����
clase base ydo de la pág
ados, debere
archivo dll as a crear su d
��:����
)y debeina.
mos
dll
�
www.depurando.com 227
ManVamo
[[p{
}}
Desd
ntener el eos a agregar
[DefaultProp[ToolboxDatapublic class{
public W { View } [Bindabl [Categor [Default [Localiz
public s {
get {
}
set {
} }
public i {
getset
}
protecte { outp }
}
e la página c
estadoun control p
perty("Text"a("<{0}:WebC
WebCustomC
WebCustomCon
wState["Size
e(true)]ry("AppearantValue("")]able(true)]tring Text
String s return ((s
ViewState["
nt Size
{ return Co{ ViewState
ed override v
put.Write("<
contenedora
���
personalizado
)]ustomControlontrol1 : We
trol1()
"] 1;
ce")]
(String)Viewnull) ? S
Text"] val
nvert.ToInt3["Size"] v
void RenderC
font size "+
podremos c
�� �?�� �
o para aume
l1 runat serebControl
wState["TextString.Empty
lue;
32(ViewStatevalue; }
Contents(Htm
+Size+">" +
cambiar el va
�������
entar el tama
rver></{0}:W
t"];y : s);
e["Size"]);
mlTextWriter
Text+ "</fo
alor de la pro
�� %����
año del texto
WebCustomCon
}
r output)
ont>");
opiedad Size
��� �����
o.
ntrol1>")]
��:����
*
�
www.depurando.com 228
CreaEn esderiv
Querél.
names{
[[p{
}}
CreaAhora
Vamoque d
pu{
ación deste caso vamar de un con
emos un bot
space Server
[DefaultProp[ToolboxDatapublic class{
public C {
this View }
public i {
get {
}
set {
} }
protecte { View
thisbase
} }
ación dea vamos a co
os a modificaderiva de Cou
ublic class{
private
controleos a ampliarntrol existent
tón para ma
rControl1
perty("Text"a("<{0}:Coun
CountedBut
CountedButto
.Text "HawState["Coun
nt Count
return (int
ViewState["
ed override v
wState["Coun.Text View
e.OnClick(e)
controleombinar 2 o
ar CountedBuntedButton
CountedButt
string Cade
���
es Derivar el comportate, igual que
ntener el rec
)]tedButton ruton : System
n()
z Click";t"] 0;
)ViewState["
Count"] va
void OnClick
t"] ((int)wState["Coun;
es Compumás controle
utton. Para nn
on2 : Counte
naVisualizac
�� �?�� �
adosamiento de upodíamos d
cuento del n
unat server>m.Web.UI.Web
"Count"];
alue;
k(EventArgs
)ViewState["nt"] + " cli
uestoses existente
no complicar
edButton
cion;
�������
un tipo de coderivar de un
úmero de ve
></{0}:CountbControls.Bu
e)
"Count"]) + ick";
s.
r el código cr
�� %����
ontrol existena clase.
eces que hem
tedButton>")utton
1;
rearemos Co
��� �����
nte. Podemo
mos hecho c
]
ountedButto
��:����
os
lic en
n2
�
www.depurando.com 229
}
CreaEl conun de
�
names{
[[p{
public C { Cade Init }
//Sobrecpublic C
{ this
Init }
private {
if ( {
} this
} protecte
{ View
thisbase
}
protecte { outp }
}
ación delntrol BookCoeterminado l
INamingCidentificagarantiza
space Server
[DefaultProp[ToolboxDatapublic class{
CountedBpublic s
{ get
{
}
set {
} }
public i {
get {
} set
{
} }
CountedButto
enaVisualizatValues();
cargado, tomCountedButto
.CadenaVisutValues();
void InitVa
ViewState["
ViewState["
.Text "Ha
ed override v
wState["Coun.Text View
e.OnClick(e)
ed override v
put.Write(Te
Control Counter es el rlibro.
Container: Esa a un controando que tod
rControl1
perty("Text"a("<{0}:Book
BookCounte
Button2 btn tring BookN
return (str
ViewState["
nt Count
return btn.
btn.Count
���
n2()
cion "clic
a una cadenan2(string ca
alizacion
lues()
Count"] n
Count"] 0;
z Click";
void OnClick
t"] ((int)wState["Coun;
void RenderC
xt);
Compuestresponsable
s una interfaol contenedodos los contr
)]Counter runar : WebContr
new Counteame
ing)ViewStat
BookName"]
Count;
value;
�� �?�� �
cks";
a para mostrad)
cad;
null)
;
k(EventArgs
)ViewState["nt"] + " " +
Contents(Htm
to BookCode registrar
z marcadoraor que crea uoles hijos tie
at server></rol, INaming
edButton2("a
te["BookName
value;
�������
rarla
e)
"Count"]) + + CadenaVisu
mlTextWriter
ountery mostrar e
a que no tienn nuevo espenen identida
/{0}:BookCougContainer
accesos");
e"];
�� %����
1;ualizacion;
r output)
l número de
ne métodos.pacio de nomades únicas
unter>")]
��� �����
consultas so
Esta interfazmbre identificpara la págin
��:����
�
obre
zcador,na.
�
www.depurando.com 230
}}
CreaCadaCreamsólo n
El CopersoBookelem
El priobtenclase
Asp.NdetercadaBook
Debevalornecespropi
[Cont
publi{
align
public v { btn. }
protecte { Cont }
}
ación deluno de los omos otro connecesitamos
ntrolBuilderAonalizado dekCounter debentos de la p
mer argumener pasandoBookCounte
NET usará esrminar el tipouno de los o
kInquiryClass
emos asignarfalse para insario seguir ciedades del o
trolBuilder(
ic class Boo{
protecte {
intBook//Es
outpn 'center'>" outp outp
//siif (
{
} //enelse
{
void Reset()
Count 0;
ed override v
trols.Add(bt
l controlobjetos bookntrol en la libs el método R
Attribute Espntro del anabe asociarsepágina aspx a
ento para el aBookCounteer dada una
ta clase Booo de objeto iobjetos Book
r al segundondicar a ASP.con el análisobjeto exter
typeof(Book
okInquiryLis
ed override v
totalInquirkCounter curcribe el en
put.Write("<);
put.Write("<put.Write("< no contienControls.Co
output.Writoutput.Writ
n caso contre
//recorre l
���
void CreateC
n);
compuekCounter estbrería de conRender.
pecifica unalizador de ASa BookInquial código ade
atributo ConerBuilder, unetiqueta llam
kCounterBuiindicado porkCounter se i
argumento d.NET que hemis. Un valor fno, sino cont
CounterBuild
t : WebContr
void Render
ies 0; rent;cabezadotable border
tr><td colspB> Inquiriese controles,unt 0)
e("<tr><td ce("<b> No ha
ario, muestr
a colección
�� �?�� �
ChildControl
sto Booká en la colecntroles, llama
clase ControSP.NET. No sryClass, paraecuado.
ntrolBuilderAna clase quemada BookCo
ilder, que ser la etiquetanstanciarán
del atributomos gestionafalse indica qtroles hijo.
der)),ParseC
rol, INaming
(HtmlTextWri
r '1' width
pan '2' aligs</B></td></, escribe el
colspan '2'ay libros</b
ra cada uno
de controle
�������
ls()
kInquiryLcción Controado BookInq
olBuilder parse puede hera que Asp.Ne
Attribute es udefiniremosounter
deriva de CoBookCountey se añadirá
ControlBuildado los atribque los atrib
Children(fal
gContainer
iter output)
'90%' cellp
gn 'center'>/tr>");l mensaje pr
align 'centb></td></tr>
de los cont
es
�� %����
Listls del BookInquiryList, y lo
ra la creaciónredar esta claet pueda con
un objeto Typs para devolv
ontrolBuildeer. Medianteán a la colecc
derAttribute,butos hijos yutos hijos an
lse)]
padding '1'
>");
redeterminad
ter'>");>");
troles conte
��� �����
nquiryList.o modificamo
n de un contase. La clasenvertir los
pe, que podever el tipo de
r, paraesta asociac
ción Controls
, ParseChildrque no esnidados no so
cellspacing
do
enidos
��:����
�
os,
rol
emose la
ción,s de
ren, el
on
'1'
�
www.depurando.com 231
+ tot
}
inter{
Syste
}
Tes
1. WT
D
2. YWth
A
D
3. YCin
talInquiries
} outp
} }
rnal class B{
public oem.Collectio {
if (
else }
public o {
} }
t
Which of the Toolbox for y
A. ToolboxIc
B. ToolboxD
C. ToolboxBD. ToolboxCo
ou are goinWebControl che browser w
A. Display
B. Paint
C. Build
D. Render
You are creaCompositeConstantiate the
A. CreateCh
B. InitChildr
// y muestr// e indica for (int i { current totalIn output.W output. current output. output.W}output.Writ + "</td></
put.Write("<
BookCounterB
override Typons.IDiction
tagName return type
e return nul
override voi
following ayour custom
Icon
Data
Bitmaponfig
ng to createclass. Which
window? (Ch
ating a comontrol class.e child contr
hildControls
ren
���
a el nombre a cada cont 0; i < Con
(BookCounquiries + cWrite("<tr><RenderBeginT.RenderContrRenderEndTagWrite("</tr>
e("<tr><td ctr>");
/table>");
uilder : Con
e GetChildCoary attribs)
"BookCounterof(BookCountl;
d AppendLite
attributes caWeb control
e a custom h method do hoose one.)
mposite contWhat meth
ols and set th
�� �?�� �
del libro ptrol contenintrols.Count
nter)Controlcurrent.Coun<td align 'lTag("td");rol(output);g();>");
colspan '2'
ntrolBuilder
ontrolType(s)
r")ter);
eralString(s
an be used tl? (Choose o
Web serveryou need to
trol, so youhod must be heir propertie
�������
para cada unido que debet; i++)
ls[i];nt;left'>" + cu
;
align 'cent
r
string tagNa
string s)
to set the imone.)
r control tho override to
u create a overridden
es? (Choose
�� %����
noe mostrarse
urrent.BookN
ter'>" + "To
ame,
mage that is
hat inherits get your co
class that iso you canone.)
��� �����
Name + "</td
otal Consult
s displayed i
directly fromontrol to disp
inherits fromn provide co
��:����
�
>");
as: "
in the
m the play in
m the ode to
�
www.depurando.com 232
C. BuildChil
D. RenderCh
ldControls
hildren
����� �?�� �������� �� %������� �������:����
�
�
www.depurando.com 233
AApliicaccio
��
��
��
F�
ǿǿǿΦƛƴŀŘŜŎƻΦŎƻƳ
Mnecon
���
���
�
���
MCsn .N
� �?
�����
���
CTS:WebNET
3
�
�
�
:bT
5
www.depurando.com 234
��
IntrLos cousuarcompreferCuanuna pindicavalidade va
Paso123
4
56
Dispotodos
El objpágin
���
roducciónontroles de vrio en una páprobación deencia a un codo se procespágina), el coar si han pasación, se estalidación ha p
os a realiz1. Arrastrar2. Dar nomb3. Establece
que se qu4. Establece
error de v5. Copiar el6. Establece
cuando e
onemos de us los errores
jeto Page disna.
� ��
n a los covalidación ASágina web. Ee un intervaloontrol de entsan los datosontrol de valsado la compablece una pproducido un
zar para vel Control dbre al controer la propieduiere Validarer la propiedvalidación quvalor de la per la propiedel control no
un control Vade validació
spone de una
�����
ontroles dSP.NET permExisten contro o la compatrada (un cos proporcionidación comprobación. Upropiedad enn error.
validar une Validar alol de Validarad ControlTorad ErrorMesue ha tenidopropiedad Erad Text a unes válido
alidationSumón producido
a colección V
�� ��
de validamiten comprooles para disaración de mntrol de servados por elprueba dichona vez que sn la página q
n controlFormulario
oValidate, pa
ssage, para do lugarrrorMessagena cadena co
mmary el cuaos en la págin
Validators co
���� �
F���
ación de Aobar los datostintos tiposmodelos. Cadavidor) situadusuario (poros datos y ese ha llamadoue indica si a
ara enlazar e
dar un mensa
a la propiedrta, normalm
l agruparía ena.
on todos los
�? � ����
����
ASP.NETos proporciode validacióa control deo en otra paejemplo, custablece unao a todos losalguna de las
el control de
aje al usuario
dad ToolTipmente * , par
en una misma
controles de
����� �� F
nados por en, como lavalidación hrte de la págando se envpropiedad p
s controles ds comprobac
Validar al co
odescriptivo
ra mostrar
a localizació
e validación d
F������
�
l
hacegina.víaparaeciones
ontrol
del
n
de la
www.depurando.com 235
Tambpáginvalidaalgun
Los cocontrde er
La vavalidadel la("Uplpropivalida
BaseClase
PropiContrDisplEnabErrorIsVal
ReqEl conneces
Un co(contRequ
Para
1
2
3
bién tenemona. Por defecación han vano no haya v
ontroles tienrol en cuestiórror posicion
lidación delación de niveado del clientevel" fuerzaiedad Enableación del lad
eValidatoe de la que he
iedadrolToValidatayleClientSiderMessageid
quiredFientrol Requiresario.
ontrol Requitrol). AgreguiredFieldVal
agregar un c
1. Arrastre ea la págin
2. En la vistasecundar
3. En el pancon el coControlTo
s un métodocto, este métalidado con éalidado con
nen un métoón. Un contrar el foco en
lado del clieel superior sete, establecela validacióneClientScriptdo cliente pa
oreredan los co
te
eScript
eldValidaedFieldValida
redFieldValide el control qidator para p
control Requ
el control Rena.
a Diseño, selrio en el mism
el de tareasntrol RequireoValidate.
o Validate() ptodo es llamaéxito la propiéxito.
odo Focus, elrol de Validacn un control d
nte está pere realizará deremos la pron del lado clit de un contrra dicho con
ontroles de v
atorator garantiz
dator funcioque desee vapoder así aso
uiredFieldVa
equiredFieldV
leccione el cmo y haga cl
PropiedadesedFieldValid
para checkeaado automátiedad IsValid
cual puedeción tiene eldeterminado
mitida por de forma autoopiedad Clieiente). De forol de validactrol.
validación.
DescContNoneFalseMensEstad
za que el usu
na junto conalidar a la páociarlos fácil
alidator a un
Validator de
ontrol Requiic en Propied
s de etiquetaator en el m
���� �
ar todos los cticamente. Sd tendrá el va
ser llamadométodo Seto
efecto. Si elomática. ParentTarget derma alternatción a "false
ripciónrol a validare,Static o Dyne para deshabsaje de errordo de validac
uario no omit
n otro controágina antes dmente.
a página
l panel de ta
iredFieldValidades en el m
a, seleccioneenú despleg
�? � ����
controles deSi todos los calor true, fals
para establetFocusOnErro
cliente lo pera deshabilitala página a "tiva, podemo" para desha
namicbilitar la valirción del cont
te ningún ca
ol, por ejempde agregar el
reas Cuadro
dator, hagamenú contex
e el control qgable de prop
����� �� F
validación dontroles dese encaso de
ecer el foco eor para en ca
ermite, laar la validaci"Downlevel"os estableceabilitar la
dación de cli
trol
ampo de entr
plo un TextBocontrol
de herramie
clic con el boxtual.
que desea vapiedades de
F������
�de la
e que
en elaso
ón"r la
iente
rada
ox
entas
otón
lidar
www.depurando.com 236
4
5
BasClaseestab
�����
ComEl conconstque,
Un coTextBComp
Para
1
2
3
4
5
6
4. Establezcusuario d
5. Si va a usvalidacióncontrolesdel grupo
seCompare base para eblece el tipo
Currency
Date. Fec
Double. S
Integer. S
String. St
mpareValntrol Compatante, con eligual que o m
ontrol CompBox (control)pareValidato
agregar un c
1. Arrastre epágina.
2. En la vistasecundar
3. En el pancon el coControlTo
4. Establezcque dese
5. EstablezcGreaterT
6. Si va a usvalidación
ca la propieddeje el contro
ar un contron, establezcas de validacióo tengan el m
reValidatel CompareVde datos par
. Se valida co
cha numérica
System.Doub
System.Int32
ring
lidatorreValidator cvalor de otrmayor que) o
areValidator). Agregue elor para pode
control Com
el control Co
a Diseño, selrio en él y ha
el de tareasntrol RegulaoValidate.
ca la propieda comparar.
ca la propiedhan, GeaterT
ar un contron, establezca
ad ErrorMesol en blanco.
ol ValidationSa la propiedaón. Puede semismo valor.
toralidator y elra la compar
omo un Deci
a
ble
2
compara losro control (mo para un tip
r funciona cocontrol quer así asociarl
pareValidat
ompareValid
leccione el cga clic en Pr
PropiedadesrExpressionV
ad ControlTo
ad OperatorThanEqual, L
ol ValidationSa la propieda
ssage en el t.
Summary paad Validationer cualquier c
RangeValidaración
mal y se per
datos propomediante un opo de datos e
onjuntamentdesee validalo a Compare
or a una pág
ator del pan
ontrol Compopiedades e
s de etiquetaValidator en
oCompare o
r en la compaLessThan, Les
Summary paad Validation
���� �
exto que des
ra consolidanGroup en elcadena, siem
ator. Contien
rmite moned
orcionados poperador deespecífico.
te con otro car a la págineValidator fá
gina
el de tareas
pareValidaton el menú co
a, seleccioneel menú des
ValueToCom
aración quessThanEqual
ra consolidanGroup en el
�? � ����
sea que apar
ar los mensajl nombre delmpre que tod
ne la propied
da y decimale
por el usuariocomparació
ontrol, por ea antes de agácilmente.
Cuadro de h
r, haga clic contextual.
e el control qsplegable de
mpare en el c
desea usar:l o DataType
ar los mensajl nombre del
����� �� F
rezca cuando
jes de error dl grupo dedos los contro
dad Type que
es
o con un valoón como men
ejemplo, ungregar el con
herramientas
con el botón
que desea vapropiedade
control o val
Equal, NotEqeCheck.
jes de error dl grupo de
F������
�o un
de
oles
e
ornor
ntrol
s a la
lidars de
lor
qual,
de
www.depurando.com 237
RanEl condentrentre
El con(contRang
Para
1
2
3
4
5
RegEl concoinccompcorre
Un coun Tecontrfácilm
Para
controlesdel grupo
ngeValidantrol RangeVro de los líme pares de nú
ntrol RangeVtrol). AgregueValidator p
agregar un c
1. Arrastre ehasta la p
2. En la vistasecundar
3. En el pancon el coControlTo
4. Configuremínimo,validando
5. Si va a usvalidacióncontrolesdel grupo
gularExprntrol Regularciden con unprobar secueeo electrónic
ontrol RegulaextBox (control RegularExmente.
agregar un c
s de validacióo tengan el m
atorValidator comites superiorúmeros, cara
Validator fune el control qpara poder as
control Rang
el control Rapágina.
a Diseño, selrio en el mism
el de tareasntrol RangeVoValidate.
e las propiedrespectivamo.
ar un contron, establezcas de validacióo tengan el m
ressionVrExpressionVmodelo def
encias de caro, números
arExpressionrol). AgreguexpressionVal
control Regu
ón. Puede semismo valor.
mprueba quer e inferior esacteres alfab
nciona conjunque desee vasí asociar Ra
geValidator a
angeValidato
leccione el cmo y haga cl
PropiedadesValidator en
dades Maximente, que de
ol ValidationSa la propiedaón. Puede semismo valor.
ValidatorValidator cominido por unracteres predde teléfono,
nValidator fue el control qidator para p
ularExpressio
er cualquier c
e los datos pspecificadoséticos y fech
ntamente coalidar en la pngeValidato
a una página
or desde el pa
ontrol Rangeic en Propied
s de etiquetael menú des
mumValue y Mesea pueda e
Summary paad Validationer cualquier c
mprueba quea expresióndecibles, comcódigos pos
nciona conjuque desee vapoder así aso
onValidator
���� �
cadena, siem
roporcionad. Se puedenhas.
on otro contrpágina antesr con aquél f
a
anel de tarea
eValidator, hdades en el m
a, seleccionesplegable de
MinimumVaescribir un us
ra consolidanGroup en elcadena, siem
e los datos pregular. Estemo las que apstales, etc.
untamente calidar a la páociarlo a Reg
a una págin
�? � ����
mpre que tod
dos por el usucomprobar l
rol, por ejemde agregar efácilmente.
as Cuadro de
haga clic conmenú contex
e el control qpropiedade
lue en los vasuario en el c
ar los mensajl nombre delmpre que tod
roporcionade tipo de valiparecen en la
con otro contgina antes dgularExpress
a
����� �� F
dos los contro
uario estánlos intervalo
mplo, TextBoxel control
e herramient
el botónxtual.
que desea vas de
alores máximcontrol que e
jes de error dl grupo dedos los contro
dos por el usudación permas direccione
trol, por ejeme agregar elionValidator
F������
�oles
s
x
tas
lidar
mo yestá
de
oles
uariomitees de
mplo,
r
www.depurando.com 238
1
2
3
4
5
CusEl conlógicaderiv
El conTextBCusto
Para
1
2
3
4
5
1. Arrastre eherramie
2. En la vistabotón sec
3. En el pancon el coControlTo
4. Establezccoincidir
5. Si va a usvalidacióncontrolesdel grupo
tomValidntrol Customa de validaciados en tiem
ntrol CustomBox (control)omValidator
agregar un c
1. Arrastre ehasta la p
2. En la vistasecundar
3. En el pancon el coControlTo
4. Para validel nombr
5. Si va a usvalidacióncontrolesdel grupo
el control Reentas a la pág
a Diseño, selcundario en
el de tareasntrol RegulaoValidate.
ca la propiedel texto del c
ar un contron, establezcas de validacióo tengan el m
datormValidator coón que ha esmpo de ejecu
mValidator fu). Agregue elpara poder
control Cust
el control Cupágina.
a Diseño, selrio en él y ha
el de tareasntrol CustomoValidate.
dar el controre de la funci
ar un contron, establezcas de validacióo tengan el m
egularExpresgina.
leccione el cél y haga clic
PropiedadesrExpressionV
ad Validatiocontrol para
ol ValidationSa la propiedaón. Puede semismo valor.
omprueba loscrito. Este tución.
unciona conjcontrol queasí asociar C
omValidator
ustomValidat
leccione el cga clic en Pr
PropiedadesmValidator en
ol en el exploón de JavaSc
ol ValidationSa la propiedaón. Puede semismo valor.
sionValidato
ontrol Regulc en Propied
s de etiquetaValidator en
nExpressionser válido.
Summary paad Validationer cualquier c
os datos propipo de valida
untamente cdesee valida
CustomValida
r a una págin
tor desde el
ontrol Custoopiedades e
s de etiquetan el menú de
orador clientcript que se
Summary paad Validationer cualquier c
���� �
or del panel d
arExpressionades en el m
a, seleccioneel menú des
en la expres
ra consolidanGroup en elcadena, siem
porcionadosación permit
con otro conar a la páginator fácilmen
na
panel de tar
omValidator,n el menú co
a, seleccioneesplegable d
e, establezcausará en la v
ra consolidanGroup en elcadena, siem
�? � ����
de tareas Cu
nValidator, hmenú context
e el control qsplegable de
sión regular c
ar los mensajl nombre delmpre que tod
por el usuare comproba
trol, por ejema antes de agnte.
eas Cuadro d
haga clic coontextual.
e el control qe propiedad
a ClientValidvalidación.
ar los mensajl nombre delmpre que tod
����� �� F
adro de
haga clic contual.
que desea vapropiedade
con la que d
jes de error dl grupo dedos los contro
rio utilizandor valores
mplo, el congregar el con
de herramie
n el botón
que desea vaes de
ationFunctio
jes de error dl grupo dedos los contro
F������
�
el
lidars de
eberá
de
oles
o la
trolntrol
ntas
lidar
on en
de
oles
www.depurando.com 239
ValiLa prvaliday en eWizaencueanterValidsido l
SetFOtravalida
Ejem
<%@ Pa
<!DOCT"http<html<head
<t
fu {
v/a
idation Gopiedad Valiación diferenel botón o enrd,MultiVieentran en elriores). Pagedate("group"llamados a V
FocusOnEcaracterísticación y hace
mplo
age Language=
TYPE html PUBL://www.w3.orgxmlns="http:runat="servetitle>Untitled<script languunction Valida
var data = arg//start by setarguements.IsV
GroupsidationGrountes en la min otro controew o controlegrupo "" (grnos proporc
"). Page.IsVaValidate .
Errorca nueva de Aque el prim
"C#" AutoEven
LIC " //W3C///TR/xhtml1/DT//www.w3.org/r">d Page</titleuage="javascratePassword(s
guements.Valutting false Valid=false;
p se utiliza cisma página.ol "postbackes de datos (rupo por defeciona ademáalid refleja la
ASP.NET 2.0er control in
tWireup="true
DTD XHTML 1.0D/xhtml1 tran1999/xhtml">
>ipt" type="teource, arguem
e.split('');
cuando el usu. Establecerek" que cause(edición). Poecto), para cás los métodovalidez de to
es SetFocusOválido reciba
e" CodeFile="D
0 Transitionalnsitional.dtd"
ext/javascriptments)
���� �
uario quiereemos el nomla validaciónr defecto, tocompatibilidaos GetValidaodos los con
OnError quea el foco.
Default.aspx.c
l//EN"">
t">
�? � ����
tener escenbre del grupn. Ésto es útiodos los validad hacía atráators("groupntroles (acum
e se establece
cs" Inherits=
����� �� F
narios deo en el validl con controdadores seás (con versiop") ymulativa) que
e en controle
" Default" %>
F������
!
adorles
ones
e han
es de
www.depurando.com 240
/i
/vf
i
/vf
i
/vf
i
/a
} </
</head<body>
<f
Contro
requirID="Re
Displa
Width=
Contro
requirClient
least
OnServ
Width=
Contro
//check lengthif(data.length
//check for upvar uc = falsefor(var c in d{
if(data[c] { uc=true } }if(!uc) return
//check for lovar lc = falsefor(var c in d{
if(data[c] { lc=true } }if(!lc) return
//check for nuvar num = falfor(var c in d{
if(data[c] { num=true } }if(!num) retu
//must be valarguements.IsV
/script>
d>>
form id="form<table bord
<tr><td
<td
olToValidate=
red.">*</asp:RegularExpress
ay="Dynamic" V</tr><tr>
<td
<td
="150px"></asp
olToValidate=
red.">*</asp:RtValidationFun
1 upper, 1 lo
verValidate="C</t
</tr><tr>
<td
<td
="150px"></asp
olToValidate=
hh < 6 || data
ppercasee;data)
>= 'A' && da
; break;
n;
owercasee;data)
>= 'a' && da
; break;
n;
umericse;data)
>= '0' && da
e; break;
rn;
idValid=true;
1" runat="serder="0">
d> User Name:<d><asp:TextBo<asp:Requir
"txtUser"Display
RequiredFieldionValidator1
ToolTipValidationExp
d> Password:</d><asp:TextBo
p:TextBox><asp:Requir
"txtPassword"Display
RequiredFieldnction="Valid
Controlower, and 1 n
ToolTipCustomValidattd>
d> Confirm Pasd><asp:TextBo
p:TextBox><asp:Requir
"txtConfirm"
.length > 14)
ta[c] <= 'Z')
ta[c] <= 'z')
ta[c] <= '9')
ver">
/td>
x ID="txtUseredFieldValida
y="Dynamic" ErdValidator><as" runat="serv="Must be 6 1ression="\w{6
td>
x ID="txtPass
edFieldValida
y="Dynamic" ErdValidator><asdatePassword"ToValidate="tumber"="Must be 6 1or1 ServerVal
sword:</td>
x ID="txtConf
edFieldValida
return;
r" runat="servator ID="Requi
rrorMessage="Usp:RegularExprver" ErrorMess14 of A Z, a z6,14}">*</asp:
sword" runat="
ator ID="Requi
rrorMessage="Psp:CustomValid
txtPassword" E
14 charactors,lidate" Displa
firm" runat="s
ator ID="Requi
���� �
ver" Width="15iredFieldValid
User name is rressionValidatsage="Must be z, 0 9 or " C:RegularExpres
"server" TextM
iredFieldValid
Password is redator ID="Cust
ErrorMessage="
, at least 1 uay="Dynamic">*
server" TextMo
iredFieldValid
�? � ����
50px"></asp:Tedator1" runat=
required." Tootor6 14 of A Z, ControlToValidssionValidator
Mode="Password
dator2" runat=
equired." TootomValidator1
"Must be 6 14
upper, 1 lower*</asp:CustomV
ode="Password
dator3" runat=
����� �� F
extBox>="server"
olTip="User n
a z, 0 9 or date="txtUserr></td>
d"
="server"
lTip="Passwor" runat="serv
charactors,
r, and 1 numbValidator>&nb
"
="server"
F������
"
ame is
""
d is ver"
at
er"sp;
www.depurando.com 241
ToolTiID="Co
Confir
match
Contro
requirID="Re
ToolTi
</</body</html
usingusingusingusingusingusingusingusingusing
public{
pr {
} pr
{
ip="Confirm paompareValidato
rm Password mu
.">*</asp:Comp</tr><tr>
<td
<td
olToValidate=
red.">*</asp:RegularExpress
ip="Must be fo
</tr></table><br /><asp:Button<br /><br /><asp:Valida
/form>y>l>
System;System.Data;System.ConfigSystem.Web;System.Web.SeSystem.Web.USystem.Web.USystem.Web.USystem.Web.U
c partial cla
rotected void
rotected void
string data//start by
args.IsVal
//check lenif (data.Le
//check fobool uc = foreach (ch
{ if (c >
{ uc } } if (!uc) re
//check fobool lc = foreach (ch
{ if (c >
{ lc } } if (!lc) re
//check fobool num = foreach (ch
{ if (c >
Displayassword is reor1" runat="s
Controlust match."
ToolTippareValidator
d> Zip Code:</d><asp:TextBo<asp:Requir
"txtZip"Display
RequiredFieldionValidator2
Displayormatter as 9
Validat
n ID="Button1
ationSummary
guration;
ecurity;I;I.WebControlsI.WebControlsI.HtmlControl
ss Default :
Page Load(ob
CustomValida
a = args.Valusetting falsid = false;
ngthength < 6 ||
r uppercase false;har c in data
>= 'A' && c <
= true; brea
eturn;
r lowercase false;har c in data
>= 'a' && c <
= true; brea
eturn;
r numeric false;har c in data
>= '0' && c <
y="Dynamic" Erquired.">*</aerver" ControToValidate="t
="Password an></td>
td>
x ID="txtZip"edFieldValida
y="Dynamic" ErdValidator><as" runat="servy="Dynamic" Er9999 or 99999ionExpression
" runat="serv
ID="Validatio
;.WebParts;s;
System.Web.U
ject sender,
tor1 ServerVa
e;e
data.Length >
)
= 'Z')
k;
)
= 'z')
k;
)
= '9')
rrorMessage="Casp:RequiredFiolToCompare="ttxtConfirm" Di
nd Confirm Pas
" runat="serveator ID="Requi
rrorMessage="Zsp:RegularExprver" ControlTorrorMessage="M9 9999"n="\d{5}( \d{4
ver" Text="Sub
onSummary1" ru
UI.Page
EventArgs e)
alidate(object
> 14) return;
���� �
Confirm passwoieldValidator>txtPassword"isplay="Dynami
ssword must
er" Width="150iredFieldValid
Zip code is reressionValidatoValidate="txtMust be format
4})?">*</asp:R
bmit" />
unat="server"
t source, Serv
�? � ����
ord is require><asp:CompareV
ic" ErrorMessa
0px"></asp:Texdator4" runat=
equired." TootortZip"tter as 99999
RegularExpres
Width="312px
verValidateEve
����� �� F
ed."Validator
age="Password
xtBox>="server"
lTip="Zip cod
or 99999 999
sionValidator
" />
entArgs args)
F������
)d and
de is
9"
></td>
www.depurando.com 242
} }
Tes
1. Yoinput
2. Yocontrof thethe chaveinval
3. Yowantprovithe c
{ num } } if (!num)
//must be v args.IsVal
t
ou prompt tht?
A. Provid/DbLookuB. Providset the MaC. ProvidD. Providside funct
ou created arols. This pae client-sideode in the Cvalid data.
lid data exis
A. In thepage’s IsVB. In theproperty aC. Re-enaD. Add th
ou have creat to provide ide the detaontrol and l
A. Set thErrorMesthe Web pB. Set thset the TeWeb pageC. Set theErrorMesthe Web pD. Set theText proppage.
m = true; bre
return;
validid = true;
he user to en
de a Regularup{code}.de a RangeVa
MaxVaue propde a CustomVde a Compartion that perf
a Web page tage also conte validation Click event h
How can yots?
e Click evenValid propere Load eventand exit the mable the clienhe runat="serated an elaba detailed m
ailed messaglist the detai
he Text propssage propertpage.e ErrorMessext property e.e ToolTip prssage propertpage.e ToolTip prperty to an a
ak;
nter a code t
rExpressionV
Validator to aperty to DbLoValidator witreValidator aforms a databthat containtains Buttonand noticed
handler was ou best solve
nt handler merty and exit tht handler memethod if thint-side scriptrver" attributorate Web p
message for ee next to eaciled error m
perty of the ty to an aste
sage propertyto an asterisk
roperty of thty to an aste
roperty of thasterisk. Plac
that exists in
Validator and
and set the Mookup(code)th server-sid
and set the cobase lookup
ns many conn controls thd that when y
executing ee this proble
ethod for eahe method ifethod of theis property ist to disable Pte to all of thpage that coeach validatch control. W
messages at t
validator coerisk. Place a
y of the valik. Place a Va
he validator cerisk. Place a
he validator cce a Validatio
���� �
n the databas
d set the Val
MinValue pro.
de code to seaompare expreof the code. trols that ar
hat perform you clickedven when so
em to ensure
ach of your Bf this properte Web page,s false.
PostBack unthe validation ontains manytion error, bWhat can yohe top of th
ontrol to thea ValidationS
idator controalidationSum
control to thea ValidationS
control to theonSummary
�? � ����
se. How can
lidationExpr
operty to DbL
arch the dataession to the
re validated PostBacks.any of the B
ome of the ce code is not
Button contrty is false. , test the W
il valid data controls.
y validated but you don’ou do to inde Web page
detailed meSummary co
ol to the detammary contro
e detailed mSummary co
e detailed mcontrol at th
����� �� F
n you validat
ression prope
Lookup(code
abase for the e name of a s
using validYou disableButton contrcontrols did t executed w
rols, test the
eb page’s Is
exists.
controls. Yo’t have spac
dicate an err?
essage and sontrol at the t
ailed messagol at the top
essage and sontrol at the t
message and she top of the
F������
*
te this
erty to
e) and
code.erver-
ation ed all rols, not
when
e Web
sValid
ouce to or at
set the top of
ge and of the
set the top of
set the e Web
www.depurando.com 243
ExpCarac
CaracRegu
.
$
^
{}
[]
()
|
*
+
?
\
presionescter (s) Si
ctereslares
Tococosig
Co
Cococa
Cococu
Utho
Ut[auten
Utor
Sicu
Coce
Cope
Cohh
Caanlith\si
s Regulargnificado
odos los caraon ellos mismon cualquiergnificado esp
orresponde c
orresponde corresponderaadena. Esto c
orresponde corchetes([]),ualquier cara
tilizado paraola{2} hara m
tilizado paraaeiou] correstilizar el guión miniscula,
tilizado pararden de prec
ginifica un oualquiera de
oncuerda coero o mas oc
oncuerda coero no con o
oncuerda cohola.
aracter de esnteriormenteteralmente. P\\\ola u hhhoestan prece
res
acteres a excmos. En otrascadena conpecial.
con cualquie
con patronesa con la cadecorresponde
con un patro^ significa ‘nacter que no
a especificarmatch con la
a establecer cspondera conón para estabde la a a la z
a agrupar cadcedencia en o
lógico. (holalas cadenas
n ninguna ocurrencias de
n una o másola.
n cero o una
scape. Cuande, estan precPor ejemplo,ola. Adicionadidos por un
cepción de .,s palabras, lael texto hola
er unico cara
s al final de uena hola soloera si decimo
on al inicio deno’. Por ejemse encuentr
una cierta cacadena hello
cualquiera dn cualquierablecer rango.
denas. Similaoperaciones
a)|(HOLA) sighola or HOL
mas ocurrene la letra h, s
ocurrencias
a ocurrencia
do cualquiercedidos por u, h\*ola encaalmente, ciern backslash.
���� �
$, ^, {, [, (, |a expresión ra. Los caract
cter.
una cadena.o cuando seos hola, pero
e una cadenamplo [^aeiou]re en la lista”
antidad de caohello. aye{2
e un grupo dde las letrass. [a�z] corre
ar utilizar par.
ginifca que pLA."
ncias. h*ola seguida por la
s. h+ola conc
h?ola concu
a de los caraun backslashaja con la cadrtos caracter
�? � ����
, ), *, +, ?, y \regular holaeres excluido
Por ejemploencuentre ano sera asi s
a. Similar a $] siginifica “c”
aracteres. Po2} correspon
de caracteress a,e,i,o,u. Taespondera co
rentesis para
puede coinci
significa queas letras ola.
cuerda con h
uerda con ola
acteres espech, estos se codena h*ola pres tienen sig
����� �� F
\ son compacorrespondeos tienen un
o, $hola,l final de unasi decimos ho
$. Cuando secorresponde
or ejemplodera con aye
s. Por ejempambien se puon cualquier
a cambiar el
dir con con
e “concuerda."
ola y hhhhol
a y hola, per
ciales vistosomparanpero no congnificado esp
F������
aradoseran
aola?.
e usancon
eaye.
plo,uedeletra
a con
la,
ro no
pecial
www.depurando.com 244
Ejem
<html><head>
<s
</s
</head<body>
<h3><f
<form
<t<t
Names=
</
<t
</<t
mplo 1
>>script languag
void Valida
if (Page lblOu }
else { lblOu } }
script>
d>>
font face="Ve
runat="serve
table bgcolor=tr valign="top<td colspan=<asp:Label
="Verdana" Fon</td>/tr>
tr><td colspan=<font face=Ve</td>/tr>tr><td align=rig<font face=
</td><td><ASP:RadioB
<asp:Li<asp:Li
</ASP:Radio</td>
ge="C#" runat
ateBtn Click(
e.IsValid == utput.Text =
utput.Text =
rdana">Simple
r">
="#eeeeee" cep">3>ID="lblOutpunt Size="10"
3>erdana size=2
ght>=Verdana size
ButtonList idistItem>MasteistItem>Visa<oButtonList>
=server>
Object Sender
true) { "Page is Vali
"Some of the
RequiredFiel
llpadding=10>
ut" Text="Fillrunat=server
><b>Credit Ca
=2>Card Type:
d=RadioButtonLrCard</asp:Li</asp:ListItem
r, EventArgs E
id!";
required fiel
ld Validator S
>
l in the requi/><br>
ard Informatio
</font>
List1 RepeatLaistItem>m>
���� �
E) {
lds are empty"
Sample</font><
ired fields be
on</b></font>
ayout="Flow" r
�? � ����
";
</h3>
elow" ForeColo
runat=server>
����� �� F
or="red" Font
F������
�
t
www.depurando.com 245
</<t
</<t
</<t
</</
</form
</body</html
Ejem<%@ Pa
<html><head>
<s
<td align=mid <asp:Requir Control Display Initial * </asp:Requi
</td>/tr>tr><td align=rig<font face=
</td><td><ASP:TextBo
</td><td> <asp:Requir Control Display Width= * </asp:Requi
</td>/tr>tr><td align=rig<font face=
</td><td><ASP:DropDo
<asp:Li<asp:Li<asp:Li<asp:Li<asp:Li<asp:Li<asp:Li<asp:Li<asp:Li<asp:Li<asp:Li<asp:Li<asp:Li<asp:Li<asp:Li<asp:Li<asp:Li<asp:Li<asp:Li
</ASP:DropD</td><td> <asp:Requir ControlTo Display= InitialVa * </asp:Requi
</td><td>/tr>tr><td></td><td><ASP:Button
</td><td></td>/tr>/table>
m>
y>l>
mplo 2 (Vage ClientTarg
>>
script languag
ddle rowspan=redFieldValidlToValidate="y="Static"lValue="" Wid
iredFieldVali
ght>=Verdana size
ox id=TextBox
redFieldValidlToValidate="y="Static""100%" runat=
iredFieldVali
ght>=Verdana size
ownList id=DristItem></aspistItem >06/0istItem >07/0istItem >08/0istItem >09/0istItem >10/0istItem >11/0istItem >01/0istItem >02/0istItem >03/0istItem >04/0istItem >05/0istItem >06/0istItem >07/0istItem >08/0istItem >09/0istItem >10/0istItem >11/0istItem >12/0DownList>
redFieldValidoValidate="Dr"Static"alue="" Width
iredFieldVali
n id=Button1
Validacióget=UpLevel %
ge="C#" runat
1>dator id="RequRadioButtonLi
dth="100%" run
dator>
=2>Card Numbe
x1 runat=serve
dator id="RequTextBox1"
=server>
dator>
=2>Expiration
ropDownList1 rp:ListItem>0</asp:ListIt0</asp:ListIt0</asp:ListIt0</asp:ListIt0</asp:ListIt0</asp:ListIt1</asp:ListIt1</asp:ListIt1</asp:ListIt1</asp:ListIt1</asp:ListIt1</asp:ListIt1</asp:ListIt1</asp:ListIt1</asp:ListIt1</asp:ListIt1</asp:ListIt1</asp:ListIt
dator id="RequropDownList1"
h="100%" runat
dator>
text="Validat
ón del lad>
=server>
uiredFieldValiist1"
nat=server>
er:</font>
er />
uiredFieldVali
n Date:</font>
runat=server>
tem>tem>tem>tem>tem>tem>tem>tem>tem>tem>tem>tem>tem>tem>tem>tem>tem>tem>
uiredFieldVali
t=server>
te" OnClick="V
do del Cli
���� �
idator1"
idator2"
>
idator3"
ValidateBtn_Cl
iente)
�? � ����
lick" runat=se
����� �� F
erver />
F������
�
www.depurando.com 246
</s
</head<body>
<h3><f
<form
<t<t
ForeCo
</
<t
</<t
runat=
</<t
</<t
void Page Lif (!I
// Va } }
void Valida
if (Page lblOu }
else { lblOu } }
script>
d>>
font face="Ve
runat="serve
table bgcolor=tr valign="top<td colspan=<asp:Label
olor="red" Fon</td>/tr>
tr><td colspan=<font face=Ve</td>/tr>tr><td align=rig<font face=
</td><td><ASP:RadioB
=server><asp:Li<asp:Li
</ASP:Radio</td><td align=mid <asp:Requir Control ErrorMe Display Initial Width=</asp:Requi
</td>/tr>tr><td align=rig<font face=
</td><td><ASP:TextBo
</td><td> <asp:Requir Control ErrorMe Display Width=</asp:Requi
</td>/tr>tr><td align=rig<font face=
</td><td><ASP:DropDo
<asp:Li<asp:Li<asp:Li<asp:Li
Load() { sPostBack) { Validate intlidate();
ateBtn Click(
e.IsValid == utput.Text =
utput.Text =
rdana">Client
r">
="#eeeeee" cep">3>ID="lblOutpunt Names="Ver
3>erdana size=2
ght>=Verdana size
ButtonList id
istItem>MasteistItem>Visa<oButtonList>
ddle rowspan=redFieldValidlToValidate="essage="*"y="Static"lValue="""100%">iredFieldVali
ght>=Verdana size
ox id=TextBox
redFieldValidlToValidate="essage="*"y="Static""100%">iredFieldVali
ght>=Verdana size
ownList id=DristItem></aspistItem >06/0istItem >07/0istItem >08/0
ially to forc
Object Sender
true) { "Page is Vali
"Some of the
Side Require
llpadding=10>
ut" Name="lblOrdana" Font Si
><b>Credit Ca
=2>Card Type:
d=RadioButtonL
rCard</asp:Li</asp:ListItem
1>dator id="RequRadioButtonLi
dator>
=2>Card Numbe
x1 onchange="C
dator id="RequTextBox1"
dator>
=2>Expiration
ropDownList1 op:ListItem>0</asp:ListIt0</asp:ListIt0</asp:ListIt
ce *s to appea
r, EventArgs E
id!";
required fiel
edFieldValidat
>
Output" Text="ize="10" runat
ard Informatio
</font>
List1 RepeatLa
istItem>m>
uiredFieldValiist1"
er:</font>
ClientOnChange
uiredFieldVali
n Date:</font>
onchange="Clie
tem>tem>tem>
���� �
ar before the
E) {
lds are empty"
tor Sample</fo
"Fill in the rt=server /><br
on</b></font>
ayout="Flow" o
idator1" runat
e();" runat=se
idator2" runat
>
entOnChange();
�? � ����
first round t
";
ont></h3>
required fieldr>
onclick="Clien
t="server"
erver />
t="server"
;" runat=serve
����� �� F
trip
ds below"
ntOnChange();
er>
F������
�
"
www.depurando.com 247
</<t
</</
</form
<scrip<! fu
fields } // ></scri
</body</html
Ejem<%@ Pa
<html><head>
<s
</s
</head<body>
<h3><f
<form
<table<t
<asp:Li<asp:Li<asp:Li<asp:Li<asp:Li<asp:Li<asp:Li<asp:Li<asp:Li<asp:Li<asp:Li<asp:Li<asp:Li<asp:Li<asp:Li
</ASP:DropD</td><td> <asp:Requir ControlTo ErrorMess Display= InitialVa Width="1</asp:Requi
</td><td>/tr>tr><td></td><td><ASP:Button
</td><td></td>/tr>/table>
m>
pt language=ja
unction Client if (typeof( return; document.als are empty";
>ipt>
y>l>
mplo 3age clienttarg
>>script languag
void ListFo
// Chan// is
valSum }
script>
d>>
font face="Ve
runat="serve
e cellpadding=tr>
<td><table
<tr>
istItem >09/0istItem >10/0istItem >11/0istItem >01/0istItem >02/0istItem >03/0istItem >04/0istItem >05/0istItem >06/0istItem >07/0istItem >08/0istItem >09/0istItem >10/0istItem >11/0istItem >12/0DownList>
redFieldValidoValidate="Drsage="*""Static"alue=""00%">iredFieldVali
n id=Button1
avascript>
tOnChange() {Page Validato
l["lblOutput"
get=downlevel
ge="C#" runat
ormat Selecte
nge display mselected from
.DisplayMode
rdana">Valida
r">
=10>
bgcolor="#ee
0</asp:ListIt0</asp:ListIt0</asp:ListIt1</asp:ListIt1</asp:ListIt1</asp:ListIt1</asp:ListIt1</asp:ListIt1</asp:ListIt1</asp:ListIt1</asp:ListIt1</asp:ListIt1</asp:ListIt1</asp:ListIt1</asp:ListIt
dator id="RequropDownList1"
dator>
text="Validat
rs) == "undef
].innerText =
%>
=server>
dIndexChanged
mode of the vam the "ListFor
= (Validation
tionSummary S
eeee" cellpad
tem>tem>tem>tem>tem>tem>tem>tem>tem>tem>tem>tem>tem>tem>tem>
uiredFieldVali
te" OnClick="V
fined")
= Page IsValid
d(Object Sende
alidator summarmat" dropdown
nSummaryDispla
Sample</font><
dding=10>
���� �
idator3" runat
ValidateBtn_Cl
d ? "Page is V
er, EventArgs
ary when a newnlist
ayMode) ListFo
</h3>
�? � ����
t="server"
lick" runat="s
Valid!" : "Som
E ) {
w option
ormat.Selected
����� �� F
server" />
me of the req
dIndex;
F������
�
quired
www.depurando.com 248
<td<font</td>
</tr><tr><td a<fo
</td><td><AS
</A</td><td a
<as
</a</td>
</tr><tr><td a<fo
</td><td><AS
</td><td>
<as
</a
</td></tr><tr><td a<fo
</td><td><AS
</A</td><td>
<asCED
Wr
</a</td><td>
</tr><tr><td><<td><AS
</td><td><
colspan=3>t face=Verdan>
align=right>ont face=Verd>
SP:RadioButto<asp:ListIt<asp:ListIt
ASP:RadioButt>align=middlesp:RequiredFi ControlToVa ErrorMessag Display="St InitialValu * asp:RequiredF>
align=right>ont face=Verd>
SP:TextBox id>
sp:RequiredFi ControlToVa ErrorMessag Display="St Width="100% * asp:RequiredF
>
align=right>ont face=Verd>
SP:DropDownLi<asp:ListIt<asp:ListIt<asp:ListIt<asp:ListIt<asp:ListIt<asp:ListIt<asp:ListIt<asp:ListIt<asp:ListIt<asp:ListIt<asp:ListIt<asp:ListIt<asp:ListIt<asp:ListIt<asp:ListIt<asp:ListIt<asp:ListIt<asp:ListIt<asp:ListIt
ASP:DropDownL>
sp:RequiredFiControlToValiErrorMessage=Display="StatInitialValue=Width="100%"runat=server>*asp:RequiredF>
</td>
SP:Button id=></td>
a size=2><b>C
dana size=2>Ca
onList id=Raditem>MasterCardtem>Visa</asp:tonList>
rowspan=1>eldValidatoralidate="Radioge="Card Type.tatic"ue="" Width="1
FieldValidator
dana size=2>Ca
d=TextBox1 run
eldValidatoralidate="TextBge="Card Numbetatic"" runat=serve
FieldValidator
dana size=2>Ex
st id=DropDowtem></asp:Listtem >06/00</astem >07/00</astem >08/00</astem >09/00</astem >10/00</astem >11/00</astem >01/01</astem >02/01</astem >03/01</astem >04/01</astem >05/01</astem >06/01</astem >07/01</astem >08/01</astem >09/01</astem >10/01</astem >11/01</astem >12/01</asList>
eldValidatordate="DropDow="Expiration Dtic"=""
>
FieldValidator
=Button1 text=
Credit Card In
ard Type:</fon
ioButtonList1d</asp:ListIteListItem>
id="RequiredFoButtonList1" "
100%" runat=se
r>
ard Number:</f
nat=server />
id="RequiredFBox1"er. "
er>
r>
xpiration Date
wnList1 runat=tItem>sp:ListItem>sp:ListItem>sp:ListItem>sp:ListItem>sp:ListItem>sp:ListItem>sp:ListItem>sp:ListItem>sp:ListItem>sp:ListItem>sp:ListItem>sp:ListItem>sp:ListItem>sp:ListItem>sp:ListItem>sp:ListItem>sp:ListItem>sp:ListItem>
id="RequiredFwnList1"Date. "
r>
="Validate" ru
���� �
nformation</b>
nt>
RepeatLayout=em>
FieldValidator
erver>
font>
FieldValidator
e:</font>
=server>
FieldValidator
unat=server />
�? � ����
></font>
="Flow" runat=
r1"
r2"
r3"
>
����� �� F
=server>
F������
�
www.depurando.com 249
</</tabl
<font
<asp:DOnSele
<a<a<a
</asp
</form
</body</html
Ejem
<%@ Pa
<html><head>
<s
</s
</head<body>
<h<p
<f
</tr></table
</td><td valign=
<table <asp:Va Hea Fon Fon />
</td><</td>
/tr>le>
face="verdana
DropDownList iectedIndexChanasp:ListItem>Lasp:ListItem sasp:ListItem>S:DropDownList>
m>
y>l>
mplo 4
age clienttarg
>>script languag
void Button
if (Pag lblO }
else { lblO } }
void lstOpe
comp1.O comp1.V }
script>
d>>
h3><font face=p>Type a value
form runat=se
<table bgcolo
e>
=top>cellpadding=alidationSummaderText="Yount Names="vernt Size="12"
/tr></table>
a" size=" 1">
id="ListFormanged="ListForList</asp:Lisselected>BullSingle Paragr>
get=downlevel
ge="C#" runat
n1 OnSubmit(O
ge.IsValid) {Output.Text =
Output.Text =
erator Select
Operator = (VValidate();
="Verdana">Coe in each tex
rver>
or="#eeeeee"
20><tr><td>mary ID="valSuu must enter ardana"
Select the ty
at" AutoPostBarmat_SelectedItItem>eted List</asraph</asp:List
%>
="server">
bject sender,
"Result: Val
"Result: Not
edIndexChange
ValidationComp
mpareValidatotbox, select
cellpadding=1
um" runat="sera value in the
ype of validat
ack=trueIndexChanged"
sp:ListItem>tItem>
EventArgs e)
lid!";
t valid!";
ed(Object send
pareOperator)
or Example</foa comparison
10>
���� �
rver"e following fi
tion summary d
runat=server
{
der, EventArgs
lstOperator.S
ont></h3>operator, the
�? � ����
ields:"
display you w
>
s e) {
SelectedIndex
en click "Val
����� �� F
ish: </font>
;
idate" to tes
F������
!
t.</p>
www.depurando.com 250
runat=
Type="
</
</body</html
Ejer
<%@ Pa
<html><head>
<s
<tr valign="t<td>
<h5><fo<asp:Te
</td><td>
<h5><fo
<asp:Li="server">
</asp:L</td><td>
<h5><fo<asp:Te<asp:Bu
</td></tr></table>
<asp:CompareV"String" runat
<br>
<asp:Label ID
/form>
y>l>
rcicio 5
age clienttarg
>>script languag
void Button rangeVa
if (rang lblO } else lblO }
rangeVaif (rang
lblO } else lblO }
rangeVa
top">
ont face="VerextBox id="tx
ont face="Ver
istBox id="ls
<asp:ListIt<asp:ListIt<asp:ListIt<asp:ListIt<asp:ListIt<asp:ListIt
ListBox>
ont face="VerextBox id="txutton runat=s
Validator id=t="server"/>
D="lblOutput"
get=downlevel
ge="C#" runat
n1 Click(ObjelInteger.ValigeValInteger.Output1.Text{Output1.Text
lDate.ValidatgeValDate.IsVOutput2.Text{Output2.Text
lString.Valid
dana">StringxtComp" runat=
dana">Compari
tOperator" On
tem Selected="tem Value="Nottem Value="Gretem Value="Gretem Value="Lestem Value="Les
dana">StringxtCompTo" runaerver Text="V
="comp1" Contr
Font Names="
%>
="server">
ct sender, Evdate();IsValid) { = "Result: Va
= "Result: No
e();Valid) { = "Result: Va
= "Result: No
date();
1:</font></h5="server"></as
ison Operator:
nSelectedIndex
"true" Value="tEqual" >NotEqeaterThan" >GreaterThanEqualssThan" >LessTssThanEqual" >
2:</font></h5at="server"></Validate" ID="
rolToValidate=
"verdana" Font
ventArgs e) {
alid!";
ot Valid!";
alid!";
ot Valid!";
���� �
5>sp:TextBox>
:</font></h5>
xChanged="lstO
"Equal" >Equalqual</asp:ListreaterThan</asl" >GreaterThaThan</asp:List>LessThanEqual
5>/asp:TextBox><"Button1" oncl
="txtComp" Con
t Size="10pt"
�? � ����
Operator_Selec
l</asp:ListItetItem>sp:ListItem>anEqual</asp:LtItem>l</asp:ListIte
<p>lick="Button1_
ntrolToCompare
runat="server
����� �� F
ctedIndexChan
em>
ListItem>
em>
_OnSubmit" />
e = "txtCompT
r"/>
F������
"
nged"
>
o"
www.depurando.com 251
</s
</head<body>
<h<b
<f
<
<
<
<
<
<
if (rang lblO } else lblO }
if (Page lblOu } else lblOu } }
script>
d>>
h3><font face=br /><br />
form runat="se
<table bgcolo<tr valign="t<td>
<h5><fo<asp:Te
</td><td>
<h5><fo</td><td>
<asp:L</td>
</tr><tr valign="t<td>
<h5><fo<asp:Te
</td><td>
<h5><fo</td><td>
<asp:L</td>
</tr><tr valign="t<td>
<h5><fo<asp:Te
</td><td>
<h5><fo</td><td>
<asp:L</td>
</tr></table>
<asp:Button Te
<asp:RangeVali id="rangeVa Type="Integ ControlToVa MaximumValu MinimumValu runat="serv
<asp:RangeVali id="rangeVa Type="Date ControlToVa MaximumValu MinimumValu runat="serv
<asp:RangeVali id="rangeVa Type="Strin ControlToVa MaximumValu MinimumValu runat="serv<br>
geValString.IOutput3.Text{Output3.Text
e.IsValid) { utput.Text = {utput.Text =
="Verdana">Ra
erver">
or="#eeeeee"top">
ont face="VerextBox id="tx
ont face="Ver
Label id="lbl
top">
ont face="VerextBox id="tx
ont face="Ver
Label id="lbl
top">
ont face="VerextBox id="tx
ont face="Ver
Label id="lbl
ext="Validate
idatoralInteger"ger"alidate="txtCue="10"ue="1"ver"/>
idatoralDate""alidate="txtCue="2001/1/1"ue="2000/1/1"ver"/>
idatoralString"ng"alidate="txtCue="Zebra"ue="Aardvark"ver"/>
sValid) { = "Result: Va
= "Result: No
"Result: Page
"Result: Page
ngeValidator
cellpadding=1
dana">Value txtComp1" runat
dana">Data Ty
Output1" Font
dana">Value txtComp2" runat
dana">Data Ty
Output2" Font
dana">Value txtComp3" runat
dana">Data Ty
Output3" Font
" ID="Button1
Comp1"
Comp2"
Comp3"
alid!";
ot Valid!";
e Valid!";
e Not valid!";
Sample</font>
10>
to Check:</font="server"/>
ype: Integer M
t Names="verda
to Check:</font="server"/>
ype: Date Min(
t Names="verda
to Check:</font="server"/>
ype: String Mi
t Names="verda
1" onclick="Bu
���� �
;
></h3>
nt></h5>
Min(1), Max(10
ana" Font Size
nt></h5>
(2000/1/1), Ma
ana" Font Size
nt></h5>
in(Aardvark),
ana" Font Size
utton1_Click"
�? � ����
0)</font></h5>
e="10pt" runat
ax(2001/1/1)<
e="10pt" runat
Max(Zebra)</
e="10pt" runat
runat="server
����� �� F
>
t="server" />
/font></h5>
t="server" />
font></h5>
t="server" />
r" />
F������
)
>
>
>
www.depurando.com 252
<
</
</body</html
Ejer
<html><head>
<s
</s
</head<body>
<h3><f<br />
<form
<t<t
Size="
</
<t
</<t
<asp:Label id=
/form>
y>l>
rcicio 6
>>script languag
void Valida
if (Page lblOu }
else { lblOu } }
script>
d>>
font face="Ve><br />
runat="serve
table bgcolor=tr valign="top<td colspan=<asp:Label
"10pt" runat=</td>/tr>
tr><td colspan=<font face=Ve</td>/tr>tr><td align=rig<font face=
</td><td><ASP:TextBo
</td><td> <asp:Regula Control
Validat
="lblOutput"
ge="C#" runat
ateBtn Click(
e.IsValid) { utput.Text =
utput.Text =
rdana">Simple
r">
="#eeeeee" cep">3>ID="lblOutpu"server"/>
3>erdana size=2
ght>=Verdana size
ox id=TextBox
arExpressionVlToValidate="tionExpressio
Font Names="v
=server>
Object Src, E
"Page is Vali
"Page is InVa
RegularExpre
llpadding=10>
ut" Text="Ente
><b>Personal
=2>Zip Code:<
x1 runat=serve
Validator id="TextBox1"on="\d{5}"
verdana" Font
EventArgs E) {
id!";
alid! : (";
essionValidato
>
er a 5 digit z
Information</
</font>
er />
"RegularExpres
���� �
Size="10pt" r
{
or Sample</fon
zip code" Font
/b></font>
ssionValidator
�? � ����
runat="server
nt></h3>
t Names="Verda
r1" runat="ser
����� �� F
" />
ana" Font
rver"
F������
�*
www.depurando.com 253
</<t
</</
</form
</body</html
Ejer
<%@ Pa
<html><head>
<s
</s
</head<body>
<h3><f<br />
<form
<t
Display Font Na Font Si Zip </asp:Regul
</td>/tr>tr><td></td><td><ASP:Button
</td><td></td>/tr>/table>
m>
y>l>
rcicio 7
age clienttarg
>>
script languag
void Valida
if (Page lblOut }
else { lblOut } }
script>
d>>
font face="Ve><br />
runat="serve
table cellpadd
y="Static"ames="verdanaize="10pt">code must belarExpression
n text="Valid
get="downleve
ge="C#" runat
ateBtn Click(
e.IsValid) { tput.Text = "
tput.Text = "
rdana">More R
r">
ding=10>
a"
5 numeric dinValidator>
date" OnClick=
l" %>
=server>
Object Sender
Page is Valid
Page is Not V
Regular Expres
igits
="ValidateBtn_
r, EventArgs E
d!";
Valid! : (";
ssion Examples
���� �
_Click" runat=
E) {
s</font></h3>
�? � ����
=server />
����� �� FF������
�
www.depurando.com 254
<t
Size="
</
<t
</<t
</<t
9]{4}
</<t
</
tr valign="top<td colspan=<asp:Label
"10pt" runat=</td>/tr>
tr><td colspan=<font face=Ve</td>/tr>tr><td align=rig<font face=
</td><td><ASP:TextBo
</td><td> <asp:Requir Control Display Font Na > * </asp:Requi
<asp:Regula Control
Validat Display Font Na Ple</asp:Regul
</td>/tr>tr><td align=rig<font face=
</td><td><ASP:TextBo
</td><td> <asp:Requir Control Display Font Na * </asp:Requi
<asp:Regula Control
Validat(\sx\s*[0 9]{5 Display Font Na runat=s Must</asp:Regul
</td>/tr>tr><td align=rig<font face=
</td><td><ASP:TextBo
</td><td> <asp:Requir Control Display Font Na * </asp:Requi
<asp:Regula Control
Validat Display Width= Font Na runat=s Zip </asp:Regul
</td>/tr>
p">3>ID="lblOutpu"server" />
3>erdana size=2
ght>=Verdana size
ox id=TextBox
redFieldValidlToValidate="y="Dynamic"ames="Verdana
iredFieldVali
arExpressionVlToValidate="tionExpressioy="Static"ames="verdanaease enter a larExpression
ght>=Verdana size
ox id=TextBox
redFieldValidlToValidate="y="Dynamic"ames="Verdana
iredFieldValiarExpressionVlToValidate="tionExpressio5})?$)"y="Static"ames="verdanaserver>t be in form:larExpression
ght>=Verdana size
ox id=TextBox
redFieldValidlToValidate="y="Dynamic"ames="Verdana
iredFieldVali
arExpressionVlToValidate="tionExpressioy="Static""100%"ames="verdanaserver>code must belarExpression
ut" Text="Ente
><b>Personal
=2>Email:</fo
x1 runat=serve
dator id="RequTextBox1"
a" Font Size="
dator>
Validator id="TextBox1"on="^[\w ]+@[\
a" Font Size="valid e mail nValidator>
=2>Phone:</fo
x2 runat=serve
dator id="RequTextBox2"
a" Font Size="
dator>Validator id="TextBox2"on="(^x\s*[0 9
a" Font Size="
(XXX) XXX XXnValidator>
=2>Zip Code:<
x3 runat=serve
dator id="RequTextBox3"
a" Font Size="
dator>
Validator id="TextBox3"on="^\d{5}$"
a" Font Size="
5 numeric dinValidator>
er values for
Information</
ont>
er />
uiredFieldVali
"10pt"
"RegularExpres
\w ]+\.(com|ne
"10pt">address
ont>
er />
uiredFieldVali
"10pt">
"RegularExpres
9]{5}$)|(^(\([
"10pt"
XXX
</font>
er />
uiredFieldVali
"10pt">
"RegularExpres
"10pt"
igits
���� �
each field" F
/b></font>
idator1" runat
ssionValidator
et|org|edu|mil
idator2" runat
ssionValidator
[1 9][0 9]{2}\
idator3" runat
ssionValidator
�? � ����
Font Names="Ve
t="server"
r1" runat="ser
l)$"
t="server"
r2"
\)\s)?[1 9][0
t="server"
r3"
����� �� F
erdana" Font
rver"
9]{2} [0
F������
��
www.depurando.com 255
<t
</</
</form
</body</html
Ejer
<html><head>
<s
vo
}
</s
</head<body>
<h3><f<br />
<form
<a
<p
<a
<a
tr><td></td><td><ASP:Button
</td><td></td>/tr>/table>
m>
y>l>
rcicio 8
>>script languag
void Valida
if (Pag lblO }
else { lblO } }
oid ServerValint num;
// evenif (int.Try
value. } else {
value. }
script>
d>>
font face="Ve><br />
runat="serve
asp:Label id=l Text="Enter Font Names= Font Size=
p>
asp:TextBox id
asp:RequiredFi
n text="Valid
ge="C#" runat
ateBtn OnClic
ge.IsValid) {Output.Text =
Output.Text =
idate (object
n number?yParse(value.IsValid = (nu
IsValid = fal
rdana">Custom
r">
lblOutput runr an even num="Verdana""10pt" /><br>
d=Text1 runat
ieldValidator
date" OnClick=
=server>
k(object send
"Page is val
"Page is not
source, Serv
Value, out num % 2 == 0);
se;
mValidator Exa
nat="server"mber:"
>
t="server" />
r id="Required
="ValidateBtn_
der, EventArgs
lid!";
t valid! : (";
verValidateEve
um) ) {
ample</font></
dFieldValidato
���� �
_Click" runat=
s e) {
;
entArgs value)
/h3>
or1" runat="se
�? � ����
=server />
) {
erver"
����� �� FF������
��
www.depurando.com 256
</
<a
</
<p
<a
<s
</
</form
</body</html
ControlToVa ErrorMessag Display="Dy Font Names=/asp:RequiredF
asp:CustomVali ControlToVa ClientValid OnServerVal Display="St Font Names= Not an e/asp:CustomVal
p>
asp:Button tex
script languag
function Cl { // even n if (argum argumen else argumen } /script>
m>
y>l>
alidate="Textge="Please enynamic"="verdana" FoFieldValidato
idator id="Cualidate="TextdationFunctiolidate="Servetatic"="verdana" Foeven number! lidator>
xt="Validate"
ge="javascrip
ientValidate(
number?ments.Value%2nts.IsValid =
nts.IsValid =
t1"nter a number"
ont Size="10ptor>
ustomValidatort1"on="ClientValirValidate"
ont Size="10pt
onclick="Val
t">
source, argum
== 0) true;
false;
"
t">
r1" runat="ser
idate"
t">
lidateBtn_OnCl
ments)
���� �
rver"
lick" runat="s
�? � ����
server" />
����� �� FF������
��
www.depurando.com 257
Ejem
Valid<%@ Pa<html<head<tit
</head
<scripvoid
{ La } </scri
<body><for<d
Valida
ErrorM
mplo 9
dationGrouage Language=xmlns="http:runat="servetle>Validationd>
pt language="Cd Button1 Cli
abel1.Text =
ipt>
>rm id="form1" div><h3>ValidatioEnter Search <asp:TextBox<asp:ButtonationGroup="Se<asp:RequiredMessage="Searc Control<br /><br /><hr /><br /><h3>Validatio<table cellpa<tr><td valig
Enter n
up cs.aspx"C#" %>//www.w3.org/r">n Groups</tit
C#" runat="seck(object sen
"Hello " + Te
runat="serve
onGroup (SearTerm:ID="SearchTeID="Button2"earch" />dFieldValidatch is empty!!lToValidate="
onGroup (Nameadding="5">
gn="top">name:</td>
1999/xhtml">
le>
rver">der, EventArg
xtBox1.Text +
r">
ch)</h3>
rm" runat="serunat="server
tor ID="Requir"SearchTerm" V
)</h3>
gs e)
+ ", you selec
erver" />r" Text="Searc
redFieldValida
ValidationGrou
���� �
cted " + Calen
ch" PostBackUr
ator1" SetFocu
up="Search" />
�? � ����
ndar1.Selected
rl="Search_cs
usOnError="tru
>
����� �� F
dDate;
.aspx"
ue" Runat="se
F������
��
rver"
www.depurando.com 258
ErrorM
OnClic
</fo</body</html
Sear<%@ Pa<!DOCT"http<html<head<tit
</head<scrip
void { Te
Se La }
</scri<body><for<d
</<d
</<d
</<s<p
</</fo
</body</html
<td valig<asp:Te
<asp:ReMessage="Name
</td></tr><tr><td valig
Enter m</td><td valig<asp:Ca<br /><asp:Bu
ck="Button1_Cl<br />
</td></tr>
</table><br /><asp:Label ID
orm>y>l>
ch cs.aspxage Language=TYPE html PUBL://www.w3.orgxmlns="http:runat="servetle>Search Pagd>pt language="C
d Page Load(ob
extBox SearchT
earchTerm = (Tabel1.Text =
ipt>>rm id="form1" div><span style=/div>div><hr />/div>div><span style=<asp:Label ID Font Italic/div>span style="fop><br />/p>orm>y>l>
gn="top">extBox ID="TeequiredFieldVis empty!!" Control
gn="top">meeting time:
gn="top">alendar ID="C
utton ID="Butlick" Validat
D="Label1" ru
"C#" %>LIC " //W3C///TR/xhtml1/DT//www.w3.org/r">ge</title>
C#" runat="se
bject sender,
Term;
TextBox)Page.SearchTerm.Te
runat="serve
"font size: 3
"font size: 1D="Label1" ruc="True" /><s
ont size: 32p
xtBox1" runatValidator ID="
ToValidate="T
Calendar1" run
tton1" runat="tionGroup="Nam
unat="server"
DTD XHTML 1.0D/xhtml1 tran1999/xhtml">
rver">
EventArgs e)
PreviousPage.xt;
r">
2pt; color: #
6pt">You searunat="server"pan style="fo
t"></span>
t="server" Wid"RequiredField
TextBox1" Vali
nat="server" /
"server" Text=me" />
Text="Label"
0 Transitionalnsitional.dtd"
FindControl("
#ff0066">Searc
rched for: </sText="Label"ont size: 16pt
���� �
dth="247px" HedValidator2" R
idationGroup="
/>
="Postback to
Font Bold="tr
l//EN"">
"SearchTerm");
ch Page (Searc
span>Font Size="16t"> </span>
�? � ����
eight="22px" /Runat="server
"Name" />
Same Page"
rue" />
;
ch cs.aspx)</
6pt" ForeColor
����� �� F
/>"
span><br />
r="#FF0066"
F������
��
www.depurando.com 259
Ejem
<%@ Pa
<html<head><tit
</head<body><div<h
<f
the fo
mplo 10
age Language=
xmlns="http:>tle>Sign In Fod>>v>h3><font face="Vform action="v<hr width="6<center> <asp:Validaollowing field DisplayMo<br /><br /><! sign<table bord<tr><td co<tab<t<
<</t
</tab</td>
</tr><tr>
"C#" %>
//www.w3.org/
orm Validatio
Verdana">Signvalidationfor00" size="1"
ationSummaryds:"ode="SinglePa
in >der="0" width
lspan="3">le border="0"r><td><font face=
</td>tr>ble>
1999/xhtml">
n Sample</tit
In Form Valim cs.aspx" menoshade>
ID="valSum" r
aragraph" Font
="600">
cellpadding=
"geneva,arial
tle>
idation Sampleethod="post" r
runat="server"
t Names="verda
="0" cellspaci
l" size=" 1"><
���� �
e</font></h3>runat="server"
" HeaderText="
ana" Font Size
ing="0" width=
<b>Sign In Inf
�? � ����
">
"You must ente
e="12" />
="100%">
formation</b><
����� �� F
er a valid va
</font>
F������
�!
alue in
www.depurando.com 260
ErrorM
ErrorM
ErrorM
ErrorM
Size="
ErrorM
Contro
<td al<font
</td><td><asp
</td><td>
<aspMessage="Email Dis *
</asp <aspMessage="Email Dis Fon Not a v
</asp</td>
</tr><tr><td al<font
</td><td><asp
</td><td>
<aspMessage="Passw Dis *
</asp <aspMessage="Passw
Val"11" Wid Passw
</asp</td>
</tr><tr><td al<font
</td><td><asp
</td><td>
<aspMessage="Re en Dis *
</asp <aspolToCompare="p Err run Passwo
</asp</td>
</tr><tr><td co
 </tr><! per<tr><td co<tab<t<
<</t
</tab</td>
</tr><tr><td al<font
</td><td><asp
</td><td></td>
ign="right">t face="Arial
:TextBox ID="
:RequiredFiell. " splay="Dynami
p:RequiredFie:RegularExprel. " splay="Staticnt Names="Arivalid e mail p:RegularExpr
ign="right">t face="Arial
:TextBox ID="
:RequiredFielword. " splay="Dynami
p:RequiredFie:RegularExpreword. " lidationExpre
dth="100%" ruword must incp:RegularExpr
ign="right">t face="Arial
:TextBox ID="
:RequiredFielnter Passwordsplay="Dynami
p:RequiredFie:CompareValidpasswd"rorMessage="Rnat="server">rd fields donp:CompareVali
lspan="3">p;</td>
sonalization
lspan="3">le border="0"r><td><font face=
</td>tr>ble>
ign="right">t face="Arial
:TextBox ID="
" size="2">Em
email" Width=
dValidator ID
c" Font Names
ldValidator>ssionValidato
c" ValidationEal" Font Sizeaddress. MusressionValidat
" size="2">Pa
passwd" TextM
dValidator ID
c" Font Names
ldValidator>ssionValidato
ssion=".*[!@#
unat="server">lude one of tressionValidat
" size="2">Re
passwd2" Text
dValidator IDd. " c" Font Names
ldValidator>dator ID="Comp
Re enter Passw>'t match dator>
information
cellpadding=
"geneva,arial
" size="2">Fi
fn" MaxLength
mail Address:<
="200px" MaxLe
D="emailReqVal
s="Verdana" Fo
or ID="emailRe
Expression="^[e="11" runat="st follow emaitor>
assword:</font
Mode="Password
D="passwdReqVa
s="Verdana" Fo
or ID="passwdR
#$%^&*+;:].*"
>these (!@#$%^&tor>
e enter Passwo
tMode="Passwor
D="passwd2ReqV
s="Verdana" Fo
pareValidator1
word. " Displa
>
="0" cellspaci
l" size=" 1"><
irst Name:</fo
h="20" Width="
���� �
</font>
ength="60" run
l" ControlToVa
ont Size="12"
egexVal" Contr
[\w ]+@[\w ]+\"server">[email protected]
t>
d" MaxLength="
al" ControlToV
ont Size="12"
RegexBal" Cont
Display="Stat
&*+;:)
ord:</font>
rd" MaxLength=
Val" ControlTo
ont Size="12"
1" ControlToVa
ay="Static" Fo
ing="0" width=
<b>Personal In
ont>
"200px" runat=
�? � ����
nat="server" /
alidate="email
runat="server
rolToValidate=
\.(com|net|org
n.
"20" runat="se
Validate="pass
runat="server
trolToValidate
tic" Font Name
="20" runat="s
oValidate="pas
runat="server
alidate="passw
ont Names="Ari
="100%">
nformation</b>
="server" />
����� �� F
/>
l"
r">
="email"
g|edu|mil)$"
erver" />
swd"
r">
e="passwd"
es="Arial" Fo
server" />
sswd2"
r">
wd2"
ial" Font Siz
></font>
F������
�"
nt
e="11"
www.depurando.com 261
Contro
Names=
ErrorM
ErrorM
9]{4}
ErrorM
</tr><tr><td al<font
</td><td><asp
</td><td></td>
</tr><tr><td al<font
</td><td><asp
</td><td></td>
</tr><tr><td al<font
</td><td><asp
fa<asp
</td><td>
<aspolToValidate= Err="Arial" Fon Zip cod
</asp</td>
</tr><tr><td al<font
</td><td><asp
</td><td>
<aspMessage="Phone Dis *
</asp <aspMessage="Phone
Val(\sx\s*[0 9]{5 Dis Must be
</asp</td>
</tr><tr><td co
 </tr><! Cred<tr><td co<font
</td></tr><tr><td al<font
</td><td><asp<as<as
</asp</td><td>
<aspMessage="Card Dis *
</asp
ign="right">t face="Arial
:TextBox ID="
ign="right">t face="Arial
:TextBox ID="
ign="right">t face="Arial
:TextBox ID="ce="Arial" si:TextBox ID="
:RegularExpre"zip"rorMessage="Z
nt Size="11"de must be 5 p:RegularExpr
ign="right">t face="Arial
:TextBox ID="
:RequiredFiele. " splay="Dynami
p:RequiredFie:RegularExpree. " lidationExpre5})?$)"splay="Statice in form: (Xp:RegularExpr
lspan="3">p;</td>
dit Card Info
lspan="3">t face="Arial
ign="right">t face="Arial
:RadioButtonLsp:ListItem>Msp:ListItem>Vp:RadioButton
:RequiredFielType. " splay="Static
p:RequiredFie
" size="2">La
ln" MaxLength
" size="2">Ad
address" Widt
" size="2">St
state" Width=ze="2">Zip Cozip" Width="6
ssionValidato
ip Code. " Va
runat="servernumeric digitressionValidat
" size="2">Ph
phone" MaxLen
dValidator ID
c" Font Names
ldValidator>ssionValidato
ssion="(^x\s*
c" Font Names=XXX) XXX XXXXressionValidat
>
" size="2"><b
" size="2">Ca
List ID="ccTypMasterCard</asVisa</asp:ListnList>
dValidator ID
c" InitialValu
ldValidator>
ast Name:</fon
h="40" Width="
ddress:</font>
th="200px" run
tate:</font>
="30px" MaxLenode:</font>&nb60px" MaxLengt
or ID="Regular
alidationExpre
r">tstor>
hone:</font>
ngth="20" runa
D="phoneReqVal
s="Verdana" Fo
or ID="phoneRe
*[0 9]{5}$)|(^
="Arial" Font
tor>
b>Credit Card
ard Type:</fon
pe" Font Namessp:ListItem>tItem>
D="ccTypeReqVa
ue="" Font Nam
���� �
nt>
"200px" runat=
>
nat="server" /
ngth="2" runatbsp;th="5" runat="
rExpressionVal
ession="^\d{5}
at="server" />
l" ControlToVa
ont Size="12"
egexVal" Contr
^(\([1 9][0 9]
Size="11" run
Information</
nt>
s="Arial" Repe
al" ControlToV
mes="Verdana"
�? � ����
="server" />
/>
t="server" />
"server" />
lidator1"
}$" Display="S
>
alidate="phone
runat="server
rolToValidate=
]{2}\)\s)?[1
nat="server">
/b></font>
eatLayout="Flo
Validate="ccTy
Font Size="12
����� �� F
<font
Static" Font
e"
r">
="phone"
9][0 9]{2} [0
ow" runat="se
ype"
2" runat="ser
F������
�)
rver">
rver">
www.depurando.com 262
ErrorM
Number
ErrorM
algori
number
</td></tr><tr><td al<font
</td><td><asp
</td><td>
<aspMessage="Card Dis *
</asp <aspr. " Cli Fon Not a v
</asp</td>
</tr><tr><td al<font
</td><td><asp<as<as<as<as<as<as<as<as<as<as<as<as<as<as<as<as<as<as<as
</asp</td><td>
<aspMessage="Expir Dis *
</asp</td>
</tr></table><br /><br /><input runa<br /><br /><hr width=
<script typ
function c { var cc var cc var i,
// SAM // Baseithm ) // is urs.
// Get ccSans if(ccSa arg ret }
// Conv
ign="right">t face="Arial
:TextBox ID="
:RequiredFielNumber. " splay="Dynami
p:RequiredFie:CustomValida
ientValidationt Size="11"valid credit p:CustomValid
ign="right">t face="Arial
:DropDownListsp:ListItem><sp:ListItem>0sp:ListItem>0sp:ListItem>0sp:ListItem>0sp:ListItem>1sp:ListItem>1sp:ListItem>0sp:ListItem>0sp:ListItem>0sp:ListItem>0sp:ListItem>0sp:ListItem>0sp:ListItem>0sp:ListItem>0sp:ListItem>0sp:ListItem>1sp:ListItem>1sp:ListItem>1p:DropDownLis
:RequiredFielration Date. splay="Static
p:RequiredFie
at="server" t
"600" size="1
pe="text/java
cClientValida
= arguments.SansSpace;digits, tota
PLE ONLY. Noed on ANSI X4
used to gener
the number, Space = cc.reansSpace.lengguments.IsValturn; // in
vert to array
" size="2">Ca
ccNum" runat=
dValidator ID
c" Font Names
ldValidator>ator ID="ccNum
onFunction="ccrunat="servercard number. dator>
" size="2">Ex
t ID="expDate"</asp:ListItem6/00</asp:Lis7/00</asp:Lis8/00</asp:Lis9/00</asp:Lis0/00</asp:Lis1/00</asp:Lis1/01</asp:Lis2/01</asp:Lis3/01</asp:Lis4/01</asp:Lis5/01</asp:Lis6/01</asp:Lis7/01</asp:Lis8/01</asp:Lis9/01</asp:Lis0/01</asp:Lis1/01</asp:Lis2/01</asp:List>
dValidator ID"c" InitialValu
ldValidator>
ype="submit"
" noshade="no
script">
te(source, ar
Value;
l;
t a real worl.13, the LUHN
ate and/or va
parse out anyplace(/\D/g,gth != 16) { id = false; valid ccn
y of digits
ard Number:</f
="server" />
D="ccNumReqVal
s="Verdana" Fo
mCustVal" Cont
cClientValidatr"> Must contain
xpiration Date
" runat="servem>stItem>stItem>stItem>stItem>stItem>stItem>stItem>stItem>stItem>stItem>stItem>stItem>stItem>stItem>stItem>stItem>stItem>stItem>
D="expDateReqV
ue="" Font Nam
value="Sign I
oshade" />
rguments)
ld actual credN formula (als
alidate and ve
y non digits, "");
���� �
font>
l" ControlToVa
ont Size="12"
trolToValidate
te" Display="S
n 16 digits.
e:</font>
er">
Val" ControlTo
mes="Verdana"
In" />
dit card algoso known as th
erify the accu
should have 1
�? � ����
alidate="ccNum
runat="server
e="ccNum" Erro
Static" Font N
oValidate="exp
Font Size="12
.he modulus 10
uracy of some
16 left
����� �� F
m"
r">
orMessage="Ca
Names="Arial"
pDate"
2" runat="ser
or mod 10
credit card
F������
�*
ard
rver">
www.depurando.com 263
</</di
</body</html
digits for(i= dig
// Doub for(i= dig if }
// Sum total = for(i=
// Resu if( tot arg ret } else arg ret } }
</script>
</center>/form>iv>y>l>
= new Array(0; i<16; i++)gits[i] = Num
ble & sum dig0; i<16; i+=2gits[i] *= 2;(digits[i] >
the numbers = 0; 0; i<16; i++)
ultstal % 10 == 0guments.IsValturn; // v
{guments.IsValturn; // in
16);
mber(ccSansSpa
gits of every ) {
9) digits[i
total +=
) { id = true; valid ccn
id = false; valid ccn
ace.charAt(i))
other number
i] = 9;
= digits[i];
���� �
;
�? � ��������� �� FF������
�
www.depurando.com 264
AApliicaccio
���
;��
ǿǿǿΦƛƴŀŘŜŎƻΦŎƻƳ
Mnecon
�� �
��$�
MCsn .N
�?�
���
CTS:WebNET
3
�
�
:bT
5
www.depurando.com 265
��
Mét
1
Opci<asp:Goto
Opci<inpuButto
<scri// <!functdocum}// ]]</scr
2
Un co
prote{
}
Page
AcceUna dWebocurrobjetentre.NETdatosbien
��� �
todos de
1. Desde
ión a)HyperLink INavigateTes
ión b)ut id "Buttoon1 onclick(
ipt languageCDATA[
tion Button1ment.locatio
>ript>
2. Cross�
ontrol está c
ected void P{
if (Prev { lblD }
else { lblD ((Te Labe }
}
.PreviousPag
ediendo ade las actividutilizando Arido que requtos Session, Ce múltiples pFrameworks de un formdefinida, era
�� ;��
Navegac
el lado de
D "HyperLint2 </asp:Hyp
on1" type "b)" />
e "javascrip
onclick()on "Navigate
Page
onfigurado p
Page Load(ob
viousPage
Data.Text
Data.Text extBox)Previel1.Text R
ge, Obtiene l
a datos fudades que reASP.NET es lauieres accedCache, Cookiaginas, es mya contabamulario anteria algo asi com
��$��
ción
el cliente.
k1" runat "sperLink>
utton" value
t" type "tex
{Test2.aspx";
para realizar
ject sender,
null)
"No Previous
ousPage.Findequest.Form
a página que
ertementecurrentemede pasar da
der a controleies o el Quer
muy común esmos con un sior en otro amo un truco
��
server" Navi
e "Goto Navi
xt/javascrip
;
una PostBac
, EventArgs
sPage";
dControl("tx["txtData"];
e transfirió e
te tipadosnte realizamatos entre foes de la págiryString paraste escenarioencillo mecactual, solo qcon el VIEW
igateUrl "~/
igateTest2"
pt">
ck a una pág
e)
xtData")).Te;
el control a la
smos cuando drmulario Wena anterior ya persistir loso y por esa ranismos adicue no contaSTATE y aspe
���
/NavigateTes
onclick "re
ina Web dife
ext;
a página actu
desarrollamoeb. Cuantas vy en ocasions datos entreazón desde lcional para reba con una iectos de la c
�� �?�� ;�
t2.aspx">
eturn
erente.
ual.
os una aplicacveces no te hes utilizamoe postbacks ola versión 1.eferenciar lomplementacclase Page.
���$���
�
ciónhas loso1 deloscion
www.depurando.com 266
Peroimplepágincontr
En la
1: pu2: {3:4:5:6:7:8:9:10: g11:12:13:14:15:16:17: }
En la pagin
<%@
Esta dtravéde auPrevioanter
En la
1: pu 2: { 3: 4: 5: 6:
7: 8: 9: }
desde ASP.Nementación.na anterior proles.
página inicia
ublic partial
public Text{ get { ret}public Text{
get { return
}protected{
}}
segunda pána anterior, a
@ PreviousPage
directiva noss del atributo
uto generar dousPage perrior.
segunda pá
ublic partial
protected{ Label1.T Label2.T
}
NET 2.0 hanLa clase Pre
permitiéndon
al colocamos
class Defa
tBox pp Nom
turn TextBox
tBox pp Tele
TextBox2; }
d void Page
gina, justamagregamos la
eType VirtualP
s permite espo VirtualPathde manera tirmitiéndonos
gina solo esc
class Defau
void Page
Text = PrevioText = Previo
mejorado esviousPage nnos entre otr
s nuestros co
ult : System.
mbre
x1; }
efono
}
Load(object
mente en la páa siguiente d
Path="~/Defa
pecificar que h especificampada los contener acceso
cribimos el s
ult2 : System
Load(object
ousPage.ppousPage.pp T
ste tipo de eos permite aras cosas ref
ontroles los e
.Web.UI.Pag
t sender, Eve
ágina dondeirectiva:
ult.aspx" %>
deseamos lemos la páginantroles de la o y referenci
iguiente cód
m.Web.UI.Pag
sender, Eve
Nombre.TextTelefono.Tex
scenario hacacceder a mierenciar los v
exponemos c
ge
entArgs e)
e queremos r
>
eer informaca anterior, copágina anteriar los miemb
igo para leer
ge
entArgs e)
t;xt;
���
ciendo más eembros de lavalores y pr
como propied
eferenciar lo
ción de la págon esto, ASPrior en una cbros de la cla
r nuestros da
�� �?�� ;�
elegante sua clase de laopiedades d
dades, ejemp
os datos de u
gina anteriorP.NET se encclase llamadaase de la pág
atos:
���$���
�
e los
plo:
una
r y a cargaagina
www.depurando.com 267
3
Resp
prote{
}
4
HttpFinalisolici
prote{
}
UsaDesd
<?xml<site
<
<</sit
La cla
��
Ambas
Un Site
���
Desde
����
3. El códigque de
ponse.RedirRedirecci
ected void B{ Response
}
4. Su códidiferen
ServerUtiliiza la ejecucitud actual.
ected void B{ Server.T
}
ando SiteMe Visual Stud
l version "1eMap xmlns "<siteMapNode <siteMap <siteMap
</siteMapNodteMap>
ase SiteMap
La propieda
CurrentNod
s propiedades d
eMapNode rep
Title
Url
Description
SiteMapNode
ParentNode
ChildNodes
NextSibling
PreviousSib
go de servbe pedir o
rectona un clien
Button1 Clic
e.Redirect("
igo de sernte.
ity.Transferión de la pág
Button2 Clic
Transfer("Ej
Mapdio podemos
.0" encodinhttp://schem
e url "" titpNode url ""pNode url ""de>
provee acce
ad RootNode
de
decuelven un S
presenta un nod
n
podemos acce
e
s
g
bling
vidor envotra págin
te a una nue
k(object sen
Ejemplo4Dest
rvidor tra
rgina actual e
k(object sen
emplo4Destin
s agregar un
g "utf 8" ?>mas.microsofle "" descrtitle "" dtitle "" d
eso a traves d
iteMapNode.
do en el SiteMa
der a :
vía unmena web
eva dirección
nder, EventA
tino.aspx");
ansfiere el
inicia la ejec
nder, EventA
no.aspx");
SiteMap (o
>ft.com/AspNeription "">descriptiondescription
de programa
ap y provee pro
nsaje al n
n URL y espe
Args e)
;
l control a
cución de un
Args e)
un mapa del
et/SiteMap F
"" /> "" />
ación:
opiedades con in
���
navegador
cifica la nuev
a una pág
a nueva pág
sitio).
File 1.0" >
nformación sob
�� �?�� ;�
r informa
va URL.
ginaWeb
gina para la
bre:
���$���
�ando
www.depurando.com 268
prote{
}
Tes
1. Whto
A
2. Wh
D
3. Yos
A
ected void B{ Response
}
t
hich of the fo a different
A. Redirect
B. NextPage
C. Transfer
hich control
A. SiteMenu
B. SiteMapV
C. SiteMenu
D. SiteMapPa
ou want to pite map. Wh
A. NavigateS
B. SiteMap
C. Map
D. Navigato
Button1 Clic
e.Redirect(S
following serWeb page w
e
requires the
uView
View
u
ath
rovide an Uphich class can
Site
r
k(object sen
iteMap.Curre
rver-side mewithout requi
Web.sitemap
p button for n you use to a
nder, EventA
entNode.Pare
thods can bering a round
p file to disp
your Web paccess the sit
Args e)
entNode.Url)
e used on thetrip to the cl
play site map
pages to progte map to acc
���
;
e HttpServerlient?
p information
grammaticallcomplish thi
�� �?�� ;�
rUtility to na
n?
ly navigate us?
���$���
�
vigate
up the
www.depurando.com 269
AApliicaccio
��
��
��
��
T
Mnecon
���
����
����
��
ǿǿǿΦƛƴŀŘŜŎƻΦŎƻƳ
MCsn .N
� !?
��
� ��
��
CTS:WebNET
3
�
:bT
5
www.depurando.com 270
��
EligservLa codenorealiz
La adtravé
La infpersoo en
Si seopciorendi
Si esusanddel cl
���
giendo envidornexión que smina sesiónza mediante
dministraciónés de múltiple
formación deonalización, oel servidor.
almacena enones en el ladimiento del s
almacenadodo técnicas dliente.
����
ntre man
se establece. Las sesionela administr
n del estadoes peticiones
el estado, coo los objetos
n el cliente, edo del clientservidor porq
o en el servidde manejo d
��� �
tener el e
entre un uses pueden abación del est
es el procesos para las mi
omo por ejems de un carro
el cliente enve tienden a tque no existe
or, el servidoel estado. La
�����
estado en
uario (el equbarcar múltiptado.
o por el cualismas o disti
mplo, el nomo de la comp
vía la informtener seguride demanda e
or la almacea seguridad d
���� !
�� ��
n el lado
uipo cliente)ples páginas
mantenemontas páginas
mbre de usuara, pueden s
ación al servdad mínima,en el servido
na, pero tiende estas opci
!? � �����
���
del clien
y un servidoWeb y su se
os la mismas Web.
rio, las opcioser almacena
vidor con cadpero ofrece
or para mant
ne que pasariones es may
�� �����
�
nte o en e
or Web seguimiento se
información
ones deados en el cli
da petición. Len un rápidoener el estad
rla al clienteyor que en e
�� �����
�
el
e
a
ente
Las
do.
l lado
�
www.depurando.com 271
ViewLos foincluipágin
<inputvalue=F/pMGn
EncrPara
<conf <sy
< </s</con
Para
<%@ PInher
wStateormularios Wida para conna. La propie
t type="hidde="/wEPDwUKMTInqjqHlH66cdw==
riptandola aplicación
figuration>ystem.web><pages viewSsystem.web>nfiguration>
una página c
Page Languagrits " Defau
Web Forms pservar automdad ViewSta
n" name="__VIxNDIyOTM0Mg9k=" />
ViewStatn web
tateEncrypt
>
concreta
ge "C#" Autoult" ViewSta
proporcionanmáticamenteate se manti
IEWSTATE" id="kFgICAw9kFgICA
e
ionMode "Alw
EventWireupteEncryption
n la propiedae valores entene como un
"__VIEWSTATE" AQ8PFgIeBFRleH
ways"/>
"true" CodenMode "Alway
���� !
ad ViewStatetre múltiplesn campo ocu
HQFEzQvNS8yMDA
eFile "Defauys"%>
!? � �����
e como una epeticiones a
ulto en la pág
A2IDE6Mzc6MTE
ult.aspx.cs"
�� �����
estructuraa la mismagina.
EgUE1kZGROWHn/
�� �����
�
rt75X
�
www.depurando.com 272
DesMantproceEnab
Leerif (V
En el
if
Con
Cam<inpu
CooLas coaplicaemplvisiteprevi
La maa estedatosidentdatos
habilitartener un estaesamiento enleViewState
r y EscribViewState["l Labe
else Labe
// Defin ViewStat
ViewState p
(ViewState[ Labe
else Labe
// Defin ViewStat
ntrolState
mpos Ocuut type=”hidd
okiesookies propoaciones Webearse para ae el sitio Webamente.
ayoría de lose límite, es rs, o mejor aútificar al usuas.
ViewStatado de vistan el servidora false
bir ViewStastVisit"]
el1.Text (
el1.Text "ne the ViewSte.Add("lastV
podemos alm
"lastVisit"el1.Text (
el1.Text "ne the ViewSte["lastVisi
e
ultosden” name=
orcionan unb. Por ejempalmacenar lasb de nuevo, l
s exploradoreecomendablún, un identifario y leer inf
tepara cada cor y el tamaño
tate! null)string)ViewS
lastVisit Vitate object Visit", Date
macenar cual
] ! null)(DateTime)Vi
lastVisit Vitate object t"] DateTi
=”nombre” va
medio paralo, cuando us preferenciaa aplicación
es admiten cle utilizar lasficador comoformación re
ontrol supono de la página
State["lastV
iewState notfor the nex
eTime.Now.To
quier objeto
iewState["la
iewState notfor the nex
ime.Now;
alue=”valor”
almacenar inn usuario visas del usuaripodrá recup
cookies de us cookies paro un id. de uelativa a éste
���� !
ne sobrecarga, establecem
Visit"];
t defined.";xt page viewoString());
o que sea Ser
astVisit"]).
t defined.";xt page view
”/>
nformación esita un sitio,o u otra infoperar la infor
n tamaño mra almacenarsuario. Estee de una bas
!? � �����
a. Para redumos la propi
w
rializable
ToString();
w
específica delas cookies pormación. Curmación que
áximo de 40r pequeñas cid. se puedee de datos u
�� �����
cir el tiempoedad
el usuario enpuedenuando el usuaalmacenó
96 bytes. Decantidades de utilizar parau otro almacé
�� �����
�o de
las
ario
ebidoeaén de
�
www.depurando.com 273
Los epuedcookiexplocooki
EscrRespoRespoHttpCaCookaCookRespo
El ejemPara la
Para lacontinHttpCo
Amboscaducique toun obj
Puedevariossubclacrear duserIn
Son vainformcookiedistint
LimiDe fotodasun sitlas co
�
xploradorese almacenaries por sitio;oradores tamies que acep
ribir Cookonse.Cookiesonse.CookiesCookie aCookkie.Value kie.Expiresonse.Cookies
mplo agrega doa primera cooki
a segunda cookuación, lo agreookie, se debe
s ejemplos llevaidad debe ser dodos los valoresjeto String.
e almacenar unpares de nomb
aves se disponedos cookies indfo que tenga la
arias las razonemación relacionae, los atributostas fechas de ca
Response. Response Response
HttpCook aCookie. aCookie. aCookie. Response
itar el ámbiorma predetes ellas se envtio obtiene tookies de do
Limite ellas cookie
también imr en el equipsi se intenta
mbién defineptan desde to
kies["userName"["userName"
kie new HtDateTime.Now
DateTime.N.Add(aCooki
os cookies a la cie, los valores d
kie, el código crega a la colecciópasar el nombr
an a cabo la mide tipo DateTims de las cookies
valor en una cobre y valor en un de forma simdependientes deas subclaves use
s que hacen acada o similar ende ésta, comoaducidad a disti
.Cookies["use.Cookies["ue.Cookies["u
kie aCookie Values["useValues["lasExpires D
e.Cookies.Ad
itoerminada, tovían al servidodas las coos maneras:
ámbito de laes a una apli
ponen limitao del usuarioa almacenarn un límite aodos los sitio
].Value "p].Expires tpCookie("law.ToString()Now.AddDayse);
colección Cookide la colección C
ea una instanción Cookies a trare de la cookie
sma tarea: escrme. Sin embargose almacenan
ookie, como eluna sola cookie.milar a una cadeenominadas userName y lastV
onsejable el usn una sola cookla caducidad, seintos tipos de in
serInfo"]["userInfo"]["lserInfo"].Ex
new HttpCorName"] "ptVisit"] DateTime.Nowd(aCookie);
odas las cookdor con cualqokies para ese
as cookies acación del si
aciones respeo. La mayoríamás, las cooabsoluto, noros en conjunt
patrick";DateTime.No
astVisit"););(1);
es, una denomCookies se esta
ia de un objetoavés del métodcomo parte de
riben una cooko, el valor lastVcomo cadenas,
nombre de usu. Estos pares deena de consultaserName y lastVVisit.
o de subclaveskie. Además, dae aplican a todanformación, de
userName"] lastVisit"]xpires Dat
ookie("userIpatrick";DateTime.Now.AddDays(1);
kies de un sitquier solicitue sitio. Sin em
una carpetatio.
���� !
ecto al númea de los explokies más antrmalmente 3to.
ow.AddDays(1
inada userNamablecen directa
de tipo HttpCoo Add. Cuandol constructor.
ie en el exploraisited también, el valor de fec
uario y la últimae nombre y valoen una direcció
Visit, puede cre
. En primer lugaado que toda laa la informaciónebería almacena
"patrick";DateTime.
teTime.Now.A
Info");
w.ToString();
tio se almaceud para ese smbargo, pue
del servidor
!? � �����
ero de cookieoradores sótiguas se des300, en cuant
1);
me y la otra denmente.
ookie, estableceo se crea una ins
ador. En amboses un valor decha y hora se tie
a visita. Tambiéor se denominaón URL.) Por ejar una sola coo
ar, es convenieinformación esn. (A la inversa,ar ésta en cook
Now.ToStrinAddDays(1);
;
enan juntas eitio. Es decirede establece
r, lo que le pe
�� �����
es que cadalo permitenscartan. Alguto al número
ominada lastVi
e sus propiedadstancia de un o
s métodos, el vafecha y hora. Dene que conver
én puede almacan subclaves. (Lemplo, en lugaokie denominad
nte colocar lastá en una sola, si desea asignies independie
ng();
en el clienter, cada páginer el ámbito
ermitirá limit
�� �����
�sitio20unoso de
isit.
des y, aobjeto
alor deDadortir en
cenarasr deda
arntes.)
ya dede
tar
�
www.depurando.com 274
�
LimiParacomo
HttpC
La rutvirtuacarpewwwcuyabajoaplica
LimiDe fositio esolicide acsalesconcr
Respo
Cuanpáginuna csiguie
Respo
De esdomi
LeerCuanjuntoHttpRobjetlectu
Establezcun domin
itar las cooklimitar las coo en el ejemp
Cookie appCo appCooki appCooki appCooki Response
ta de accesoal. El efecto ceta Applicatiow.contoso.coruta de accedicha carpetaciones, com
itar el ámbiorma predetees www.contan una págicceso determ.contoso.comreto. Para el
onse.Cookies Response Response
do el dominnas del subdocookie que seente:
onse.Cookies Response Response
sta manera,nios sales.co
r Las Cookdo un exploro con la soliciRequest, queto HttpRequera de las coo
ca el ámbitonio que pued
kies a una cookies a unaplo siguiente
ookie newe.Value "we.Expires e.Path "/A
e.Cookies.Ad
o puede ser uconseguido son1 o para lam, la cookieeso sea http:ta. Sin embarmo http://ww
ito de domierminada, latoso.com, laina de ese sitminado.) Si sum y support.lo, establezc
["domain"].Ve.Cookies["de.Cookies["d
io se estableominio espece pueda com
["domain"].Ve.Cookies["de.Cookies["d
la cookie estontoso.com y
kiesrador realizaitud. En sus ae está disponest es esencokies del obje
en un dominden tener acc
carpeta o apcarpeta del
e:
HttpCookie("written " + DateTime.No
Application1d(appCookie)
una ruta de aserá que la ca raíz virtualcreada en e//www.contrgo, la cookieww.contoso.c
inio de las cs cookies seas cookies qutio. (Esto pou sitio tiene scontoso.comca la propied
Value Dateomain"].Expiomain"].Doma
ece de esta mcificado. Tammpartir entre
Value Dateomain"].Expiomain"].Doma
tará disponiby support.co
a una solicituaplicacionesnible como pialmente la meto HttpReq
nio, lo que leceso a una co
plicaciónservidor, est
"AppCookie")DateTime.No
ow.AddDays(11";);
acceso físicacookie sólo e. Por ejempll ejemplo antoso.com/Ape no estará dcom/Applica
cookiesasocian a un
ue escriba sedría no inclusubdominiosm, puede asoad Domain de
eTime.Now.Toires DateTain "suppo
manera, la combién puedee varios subd
eTime.Now.Toires DateTain "conto
ble para el doontoso.com.
ud al servidorASP.NET, pu
propiedad Remisma que lauest se reali
���� !
e permitirá esookie
tablezca la p
);ow.ToString(1);
situada bajoestará dispono, si su sitionterior estarápplication1/ ydisponible paation2/ o htt
n dominio esenvían al se
uir las cookies, por ejempociar las cooke la cookie, c
oString();Time.Now.Addort.contoso.
ookie sólo ese utilizar la prominios, com
oString();Time.Now.Addoso.com";
ominio princ
r, envía las cuede leer lasequest de la ca del objetoza de maner
!? � �����
specificar los
ropiedad Pa
();
o la raíz del snible para lasse denominaá disponibley para las páara las páginp://www.co
specífico. Porervidor cuands que tenganlo, contoso.ckies a un subcomo en este
dDays(1);com";
tará disponiropiedad Domo se muest
dDays(1);
cipal, así com
ookies paracookies medclase Page. LHttpResponra similar a la
�� �����
s subdominio
th de la cook
itio o una ras páginas deapara las págginas situadas de otrasntoso.com/.
r ejemplo, sido los usuarin un valor decom,bdominioe ejemplo:
ble para lasomain para ctra en el ejem
mo para los
ese servidordiante el objLa estructuranse, por lo qua escritura d
�� �����
�os de
kie,
ízla
inasas
suose ruta
rearmplo
retoa delue lae las
�
www.depurando.com 275
cookimanecontr
if (R
ServCon elos nase tramueséste.
<% Rfunc
EstecomoEsto
Y estEsto
Antesexisteque smostsecue
Del mestabde un
if (R
En elprevivalorconve
DateT
ies en el objeeras de obterol Label:
Request.Cook Labe
if (Requ {
Http Labe }
er.HTMLEneste métodoavegadores,ata de obtenstra como siVeamos un
Response.Wciona")) %
sería el códo tal: o es un br
to es lo queo es un br
s de intentare; si no es asse ha llamadorarlo en la pencia de com
mismo modoblecimiento.na subclave:
Request.Cook { Labe
Labe
}
ejemplo antamente en les en formaertirlo al tipo
Time dt; dt Dat
eto HttpRespner el valor d
kies["userNamel1.Text S
uest.Cookies
pCookie aCooel1.Text S
ncode("Strio se puede coen código soer, partiendofuese HTML,ejemplo:
Write(Serv%>
digo interno
reak <B
e mostrará ereak <BR>
r obtener el vsí, se iniciaráo al métodoágina. Esto gmandos ejecu
, la lectura dEn el ejemp
kies["userIn
el1.Text Server.Html
el2.Text Server.Html
terior, el códa representade cadenas,o apropiado,
teTime.Parse
ponse. En elde una cooki
me"] ! nullerver.HtmlEn
["userName"]
kie Requeserver.HtmlEn
ing")onvertir un solamente viso de HTML n, en realidad
ver.HTMLEn
o obtenido, v
BR> que
s navegadoque no fu
valor de unauna excepciHtmlEncodegarantiza queutables a la c
del valor de ulo de código
fo"] ! null
Encode(Reque
Encode(Reque
digo lee el vaación de cade, por lo que scomo en es
(Request.Coo
ejemplo deie denomina
l)ncode(Reques
] ! null)
st.Cookies["ncode(aCooki
tring codificasible pero nonormal, un tid es ASCII pu
ncode("Est
visible en fo
e no funci
r:unciona
a cookie, debón NullRefee para codifice un usuariocookie.
una subclavesiguiente se
l)
est.Cookies
est.Cookies
lor de la subena de un vasi desea utilizte ejemplo:
okies["userI
���� !
código siguieada usernam
st.Cookies["
"userName"];ie.Value);
ado en HTMo ejecutablepo de códigoro. Es útil pa
to es un b
ormato HTM
iona
bería asegurarenceExceptcar el contenmalintencio
e de una cooke muestra un
["userInfo"]
["userInfo"]
bclave lastVisalor DateTimzar el valor la
Info"]["last
!? � �����
ente se muee y mostrar
"userName"].
L, y por tantpor los naveo que aunqura escribir m
break <BR>
ML pero no
arse de que dion. Tenga enido de una conado no ha
kie es similarna manera de
["userName"
["lastVisit
sit, que se esme. Las cookieastVisit com
tVisit"]);
�� �����
estran dossu valor en u
Value);
o ejecutableegadores. Ese el navegad
manuales com
> que no
o ejecutable
dicha cookieen cuenta tamcookie antesagregado un
r a sue obtener el
]);
t"]);
stablecióes almacenao fecha, deb
�� �����
!un
e pordecir,dor lomo
e
mbiéns dena
valor
nbe
�
www.depurando.com 276
Las su
mane
conti
if (R
LeerSyste
ModNo es
consi
explo
siguie
visita
int c
ElimLa elivariase enelimise deel expejempara
HttpC
ubclaves de u
era de obten
nuación, ext
Request.Cook { Syst
User Labe
Labe
}
r coleccioneem.Text.Stri
HttpCookfor (int
{ aCoo outp
outp
} Label1.T
dificar y es posible mo
ste en crear
orador para q
ente se mues
as del usuario
counter;if (Requ
counelse
{ coun } counter+
Response
Response
minar las cminación deción del procncuentra en ene. La técnicesea eliminarplorador complo de códigla aplicación
Cookie aCook
na cookie son
ner una subcl
raer el valor d
kies["userIn
tem.CollectiUserInfoCoo
rInfoCookieCel1.Text Server.Html
el2.Text Server.Html
es de cookiengBuilder o
kie aCookie; t i 0; i <
okie Requeput.Append("+ "<br />")
put.Append("+ "<br /><b
Text outpu
eliminar laodificar direct
una nueva c
que sobrescr
stra cómo m
o al sitio:
uest.Cookiesnter 0;
nter int.P
++;
e.Cookies["c
e.Cookies["c
cookiese una cookie,ceso de model equipo deca consiste er, pero estabmpruebe la cgo siguiente sn:
kie;
n una colección
lave determi
de la subclave
fo"] ! null
ons.SpecialikieCollectio
ollection
Encode(UserI
Encode(UserI
esutput new
Request.Coo
st.Cookies[iCookie name ;Cookie valuer />");
t.ToString()
as cookietamente una
cookie con n
riba la versió
modificar el va
["counter"]
arse(Request
ounter"].Val
ounter"].Exp
, es decir, sudificación. Nol usuario. Sinn crear una nbleciendo sucaducidad dese muestra u
n de tipo Nam
inada es obt
e por su nomb
l)
ized.NameValon;
Request.Coo
InfoCookieCo
InfoCookieCo
System.Text
okies.Count;
i]; " + Serve
e " + Serv
);
sa cookie. En
uevos valore
ón antigua en
alor de una c
null)
t.Cookies["c
lue counte
pires = Date
borrado físio es posible en embargo, pnueva cookiecaducidad ee la cookie, launa manera d
���� !
meValueCollect
ener la colec
bre, como se m
lueCollectio
okies["userI
ollection["u
ollection["l
t.StringBuil
; i++)
er.HtmlEncod
ver.HtmlEnco
su lugar, el p
es y, a contin
n el cliente. E
cookie que a
counter"].Va
er.ToString(
eTime.Now.Ad
co del discoeliminar direpuede consee con el mismn una fechaa descartaráde eliminar t
!? � �����
tion. Por cons
cción de subc
muestra en el
on
Info"].Value
userName"]);
lastVisit"])
lder();
de(aCookie.N
ode(aCookie.
proceso que
nuación, env
En el ejemplo
almacena un
alue);
();
ddDays(1);
duro del usuectamente unguir que el emo nombre qanterior a laporque estátodas las coo
�� �����
siguiente, otra
claves y, a
ejemplo sigu
es;
;
Name)
Value)
se debe seg
iarla al
o de código
recuento de
uario, es unana cookie, yaexplorador laque la cookiea actual. Cuaá anticuada.okies disponi
�� �����
"
a
iente:
uir
e las
aa queae quendoEn elibles
�
www.depurando.com 277
QueSon p2083
Label", Pr", Pa
Tes
1. Yoom
A
2. Yoaru(C
A
3. Yodds(C
string cint limifor (int
{ cook aCoo aCoo Resp }
eryStringpares nombrcaracteres p
http://s
http://s
l1.Text "Urefs: " + Seage: " + Ser
t
ou need to ston your site smanagement
A. Client-side
B. Server-sid
ou need to tradditional loaunning a coChoose the b
A. Client-side
B. Server-sid
ou are creatdatabase. Whdo not need tide state maChoose the b
A. View stat
cookieName;t Request
t i 0; i <
kieName Reokie new Hokie.Expiresponse.Cookie
ge/valor quepor el métod
upport.micros
earch.microso
User: " + Seerver.HtmlEnrver.HtmlEnc
tore a user’s so that you cshould you u
e state manag
de state man
rack non-conad on your sopy of your best answer.)
e state manag
de state man
ting an ASPhile the user ato store the ianagement wbest answer.)
te
.Cookies.Coulimit; i++)
quest.CookiettpCookie(co
DateTimes.Add(aCooki
se pasan endo Http GET
soft.com/Defau
oft.com/result
rver.HtmlEnccode(Requestode(Request
user name acan pass thosuse? (Choose
gement
agement
nfidential useervers. You application.
)
gement
agement
P.NET Web accesses the information b
would meet y)
unt;)
es[i].Name;ookieName);.Now.AddDaysie);
la cadena de
ult.aspx?kbid=
ts.aspx?mkt=en
code(Requestt.QueryStrin.QueryString
and passwordse credentiale the best an
er preferencedistribute re
. Which typ
form that apage, you nebetween visiyour requirem
���� !
s( 1);
e consulta de
=315233
n US&setlang=
t.QueryStrinng["prefs"])g["page"]);
d as he or shs to back-enswer.)
es when a usequests amonpe of state m
allows a useeed to track sits to the Wements and b
!? � �����
el navegador
en US&q=hello
ng["user"]) +
he navigates nd servers. W
er visits young multiple Wmanagement
r to browsesearch and soeb page. Whbe the simple
�� �����
r con un limi
o+world
+
to different Which type of
ur site to minWeb servers
should you
informationorting values
hich type of cest to imple
�� �����
)
te de
pagesf state
nimize , each
u use?
n in a s. You client-ment?
�
www.depurando.com 278
4. Ysetpreftypeimp
5. Yitemresusim
B. Control st
C. Hidden fiD. CookiesE. Query str
You are creatuser prefereferences to be of client-plement? (Ch
A. View s
B. Contro
C. Hidden
D. Cooki
E. Query
You are creams that matcults. Which
mplest to impl
A. View s
B. Contro
C. Hidden
D. Cooki
E. Query
tate
ields
ings
ting an ASP.ences and habe remember-side state mhoose the bes
state
ol state
n fields
es
strings
ating an ASPh the user’s type of clie
lement? (Cho
state
ol state
n fields
es
strings
NET Web siave each pagred between managementst answer.)
P.NET Web criteria. You
ent-side statoose the best
ite with dozege process tvisits, even it meets you
form that seu want userste managemt answer.)
���� !
ens of pages.the preferencif the user clur requirem
earches the ps to be able
ment meets y
!? � �����
You want toce informatioloses the Weents and is
product invento bookmark
your require
�� �����
o allow the uon. You wa
eb browser. Ws the simple
ntory and disk or e-mail sements and
�� �����
*
user to nt the
Which est to
splays search is the
�
www.depurando.com 279
AApliicaccio
��
��
��
%�
Mnecon
���
����
����
����
ǿǿǿΦƛƴŀŘŜŎƻΦŎƻƳ
MCsn .N
� !?�
��
� ��
���
CTS:WebNET
3
��
:bT
5
www.depurando.com 280
��
EstaUna aimáge
El arcdirect
Entre
�����
CuanApplitodasaplicaembaocurrpeticdesen
La infde obpropia la cmedi
ParaelemGloba
��� �
ado de Apaplicación wenes que se
chivo global.atorio virtual
e otras cosas
Applicatio
Applicatio
Applicatio
Session_S
Session_E
do la aplicaccation_Starts las peticionación. Esta seargo, el reinire tras satisfaión. Cuandoncadenando
formación pubjetos, estaniedad Applicolección Conante código.
añadir un arento. En el cal.
� ����
plicacióneb está formencuentran
asax contiende la aplicac
, el archivo g
on_Start
on_End
on_Error
Start
End
ción recibe lat. Si se editanes pendientecuencia reicio de la apliacer cualquiese recibe laotro evento
uede compado cada objeation de la cntens, cuyo c.
rchivo globalcuadro de diá
��� �
nmada por toden un direct
ne el código gción
global.asax c
a primera peel archivo gltes, se desennicia la aplicicación es traer solicitud psiguiente peo Application
rtirse globaleto asociadoclase HttpAppcontenido he
.asax a un prálogo Agrega
�����
as las páginatorio virtual o
global para la
ontiene cont
tición de usuobal.asax y sncadenará elación, eliminansparente ppendiente, yetición, la apn_Start
mente en too a un valor cplication. Laemos añadid
royecto, hacar nuevo ele
���� !?
�� %�
as Web, archo en sus sub
a aplicación
troladores d
uario, se desse guardan loevento Appnando toda lpara todos loy antes de aclicación vuel
oda la aplicacclave. Esto sepropiedad A
do al estado A
emos clic enmento, selec
?�� ������
�����
hivos , compodirectorios.
web. Se enc
e eventos pa
encadena elos cambios,lication_Enda informacióos usuarios, yceptar cualquve a comenz
ción, mediane implementApplication pApplication d
n Sitio Web>Accionamos C
� ����� ��
��
onentes, cód
uentra en el
ara los event
eventose completay se reinicia
ón de estadoya que solouier nuevazar,
te un diccionta utilizandopermite el acdirectamente
Agregar nuevlase de Aplic
� %������
�
digo e
tos:
ránará lao. Sin
nariolacesoe,
vocación
�
www.depurando.com 281
Archi
<%@ Ap
<scrip
vo {
}
vo {
}
vo {
}
vo {
}
vo {
StateS
} vo
{
ivo Global.As
pplication Lan
pt runat="serv
oid Applicatio
// Código q Application Applicationstring[] l
Application WriteFile(
oid Applicatio
// Código Application WriteFile(
oid Applicatio
// Código q
oid Session St
// Código q
oid Session En
// Código q// Nota: E// se estab
Server// o SQLSe
oid WriteFile
System.IO.string str
str = DateT
sax
nguage="C#" %
ver">
on Start(obje
que se ejecutn["MensajeInin["ConexionBdibros = { "c#n["Libros"] ="Aplicación A
on End(object
que se ejecun["MensajeFin"Aplicacion F
on Error(obje
que se ejecut
tart(object s
que se ejecut
nd(object sen
que se ejecutl evento Sessblece como In
rver, el even
(string strTe
StreamWriter;Time.Now.ToSt
>
ct sender, Ev
a al iniciarscio"] = "La Ad"] = "Server=", "Asp.Net", libros; Arrancada");
sender, Even
ta cuando se "] = "La apliFinal");
ct sender, Ev
a al producir
ender, EventA
a cuando se i
der, EventArg
a cuando finaion End se deProc en el ar
to no se gene
xt)
writer = new
ring() + " "
ventArgs e)
se la aplicaciAplicación se =zeus;Database"PcHoy", "Hi
ntArgs e)
cierra la aplicación esta t
ventArgs e)
rse un error n
Args e)
inicia una nue
gs e)
aliza una sesiesencadena sólrchivo Web.con
era.
System.IO.Str
+ strText;
���� !?
iónha iniciado";e=Pub;UID=sa;Pistoria", "Geo
licaciónterminada";
no controlado
eva sesión
ión.lo con el modonfig. Si el mo
reamWriter(@"c
?�� ������
;PWD=secret;";ografia" };
o sessionstateodo de sesión
c:\test.txt",
� ����� ��
ese establece
true);
� %������
�
como
�
www.depurando.com 282
}
</scri
ConcSi vamaplicacontr
Appli
Appli
Appli((int
EstaCuanestadprocelargoun tie
Mienusuar
ASP.N
����
�
Por dproceproceperm
Las seservidconfignecesválido
writer.Writ weiter.Clo
ipt>
currencia ymos a permitación debemrolar el acces
cation.Lock(
cation.Unloc
cation.Lockt)Applicatio
ado de lado nos conedo a la Web yeden del misde las páginempo, que p
tras una aplrio que esté
NET proporc
Funciona
Identifica
Almacena
Produce econtrolar
Libera au
defecto, el eseso ASP.NETeso ASp.NET,manecerá aun
esiones se iddor y viceverguración desario modificos para un U
teLine(str);se();
y Bloqueotir que los us
mos utilizar loso a los objet
()
ck()
k(); Applicaon["PageRequ
a Sesiónectamos cony permite alsmo navegadnas, hasta quor defecto e
icación se esinteractuand
iona un esta
con navega
a si una petic
a datos de la
eventos de srse en el arch
utomáticame
stado de la se. Sin embarg, en otro sernque se prod
dentifican y srsa, utilizandla aplicacióncarlo medianURL, que tien
suarios modos métodos Ltos de estad
tion["PageRestCount"])+
un sitio Websitio Web redor que inicióue conscientees de 20 min)
sté ejecutanddo con el siti
do de sesión
dores que tie
ción es parte
a sesión para
sesión, comohivo global.a
ente recursos
esión se almgo, puede covidor de estaduzca un fallo
siguen con undo una cookien. .NET Framnte programaen dos carac
ifiquen los oLock y Unloco de la aplica
equestCount"+1;Applicati
b ASP.NET, ceconocer queó la sesión. Eemente term).
do, habrá vaio Web.
n con las sigu
enen desact
de una sesió
a usarlos en v
o Session_Stasax o en el c
s de la sesión
acena en lanfigurarse pado o en unao o se reinici
n SessionID de HTTP o unework gestioación. Sessiocterísticas im
���� !?
objetos almack de la claseación.
"] = ion.UnLock()
reamos unae las siguientEsto nos permminemos la se
rias sesiones
uientes carac
ivadas las co
ón existente
varias peticio
art y Sessioncódigo de otr
n si la sesión
memoría deara que se aa base de dae el proceso
de 120 bits, qURL modificona automátonID está formportantes:
?�� ������
cenados en eHttpApplica
);
sesión. La setes peticionemite mantenesión o ésta
s, básicamen
cterísticas:
ookies
ones.
_End, que pra aplicación
termina o c
l servidor, colmacene septos Sql Serveo ASP.NET
que se pasacado, dependticamente elmado por ca
� ����� ��
el estado deationState pa
esión otorgaes de esa págner el estadocaduque (pa
nte, una para
ueden
aduca.
omo parte deparado deler, en cuyo c
del cliente adiendo de laSessionID; naracteres AS
� %������
�
laara
unginaa loasado
a cada
el
caso
al
no esCII
�
www.depurando.com 283
�
�
El estHttpSdiccioLos o
usingusingusingusingusingusingusingusingusingusingusing
publi{
p{
}p{
Son únicael mismo
Son aleattras cono
tado de la seSessionStateonario del esobjetos de dic
g System; g System.Colg System.Cong System.Datg System.Webg System.Webg System.Webg System.Webg System.Webg System.Webg System.Tex
ic partial c
protected vo{
}protected vo{
if (rbl. {
stri Sess Sess
swit {
as a nivel gloSessionID.
torios, por loocer el valor
esión se impl. Esta coleccstado de la seccionario se
lections;nfiguration;ta;b;b.Security;b.UI;b.UI.HtmlConb.UI.WebContb.UI.WebContxt;
class Sessio
oid Page Loa
oid rbl Sele
SelectedInd
ng[] Libros ion["cattexion["catcod
tch (rbl.Sel
case "n": Libros[ Libros[ Libros[
break;case "d": Libros[ Libros[ Libros[
break;case "h": Libros[ Libros[ Libros[
obal, por lo q
o que es comdel SessionID
ementa utilición es un dicesión que seestablecen y
trols;rols;rols.WebPart
nState : Sys
d(object sen
ctedIndexCha
ex ! 1)
new strinto"] rbl.Se"] rbl.SeectedItem.Va
0] "Progra1] "Progra2] "C# Ess
0] "Oracle1] "Sql Se2] "TRansa
0] "PC Har1] "Diccio2] "Linux
ue no es pos
mplicado adivD de la sesió
zando la proccionario clae han añadidoy recuperan
ts;
stem.Web.UI.
nder, EventA
anged(object
ng[3];SelectedItemelectedItem.alue)
amando c#";amando ASP.Nsentials";
e";erver";ac Sql";
rdware";onario HardwDevice Driv
���� !?
sible que dos
vinar el valorn anterior.
opiedad de cove�valor queo directameusando la pa
.Page
Args e)
t sender, Ev
m.Text;.Value;
NET";
ware";vers";
?�� ������
s sesiones di
del SessionI
olección Cone contiene tonte, mediantalabra clase S
ventArgs e)
� ����� ��
ferentes ten
D de otra se
ntents de la codos los objete programaSession.
� %������
�ngan
esión,
claseetosación.
�
www.depurando.com 284
}p{
}}
ConSe cola págnorm
El estsesió
Enab
���
Si sabsesio
Por del atralmacSql Se
En wesecció
G����
�����
} Sess }
}protected vo{
if (rbl. { lblM }
else {
Stri sb.A sb.A sb.A sb.A sb.A lblM ddl.
striint
ddl.for
{
}
} }
figuracióontrola en cagina. En una
malmente situ
tado de sesión para una p
leSessionSta
True
False
ReadOnly
bemos que nnes o en su d
defecto, el esributo modecene separaerver.
eb.config, laón <system.w
�%���� ����
����%��$
break;
ion["libros
oid Button1
SelectedInd
Message.Text
ngBuilder sbAppend("Tu hAppend((striAppend(" con Append((striAppend("\"."Message.TextVisible trung[] CatLibi;Items.Clear(i 0; i <
ddl.Items.A
n del estada página maplicación suado en el d
ón está habilpágina, añad
ate admite es
y
no vamos a udefecto poni
stado de seside la etiquedo del proce
informaciónweb>, que se
HIJ����I ���K
$HI���� ������
"] Libros;
Click(object
ex 1)
"Tu debes
b new Strias seleccionng)Session["codigo \"")
ng)Session[");sb.ToString
e;ros (string
();CatLibros.G
dd(new ListI
ado de sesmediante las ee controla mirectorio raíz
itado por deiendo el atri
stos valores:
utilizar sesioniendo a solo
ión se almacta sessionstaeso ASP.NET,
n sobre la coe encuentra
K�����HI,����I
�H �!�*�*� L���
;
t sender, Ev
s selecciona
ingBuilder()nado la cate"cattexto"]));"catcode"]);
g();
[])Session["
GetLength(0)
Item(CatLibr
siónentradas demediante el az de la aplica
efecto. Podembuto Enable
nes podemoslectura
ena en la meate, en web., en otro serv
nfiguración den la secció
I ������HI�*
���H��L=���D
���� !?
ventArgs e)
ar una categ
);egoria "););
;
"libros"];
); i++)
ros[i]));
la directiva Parchivo de coación.
mos activar eSessionState
s mejorar el
emoria del seconfig, podevidor de esta
del estado dn <configura
I ���������
D���HIMN
?�� ������
goria";
Page, en la ponfiguración
explícitamene a la directiv
rendimiento
ervidor. Sin eemos configuado o en una
e sesión se eation>
���%��$HI �
� ����� ��
parte superioweb.config,
nte el estadova Page
o desactivand
embargo, usurar para quea base de dat
encuentra en
�!�*�*� O�����
� %������
�
or de
o de
do las
andoe setos
n la
�I
�
www.depurando.com 285
Hay v
�
�
�
�
��
�
��
<co
<
c
r
"
<
varios atribut
allowCustsesión pubase de dinicial en
mode: Escontroladestado de
o Oo In
eo S
ee
o So C
cookielesservidor s
o Ao U
Ho S
eo U
cookieNaASP.NET_
customPr
regeneraSessionID
sqlCommde ser ca
sqlConne
Timeout:caduque
onfiguration>
<sessionState
cookieless="t
regenerateExpi
"true" /> </sy
</configuratio
tos, todos op
tomSqlDatabuede ser unadatos predetla cadena de
specifica si eldas por estae sesión.Off. Estado dnProc. El estel valor por dStateServer.este atributoespecifique qSqlServer. SeCustom. Nos
ss: Las cookiesepa a qué sAutoDetect cUseDeviceProHttpBrowserCSi cualquieraespecifica UsUseCookies e
ame: Nombre_SessionId
rovider: Nom
teExpiredSesD caducadas
mandTimeoutncelado. Por
ectionString:
Especifica ey sea rechaz
<system.web>
rue"
iredSessionId
ystem.web>
on>
pcionales:
base: Si es trbase de dat
terminada ese conexión.
l estado de scopia de we
e sesión desado de servidefectoEl estado de, deberá exisque servidoralmacena epermite esp
es se utilizanesión está cocomprobará sofile determCapabilitiesde los antereUri, Sessiones el valor po
e de la cooki
mbre del prov
ssionID: Paraserán sustitu
t. Número der defecto es 3
Cadena de c
el número dezada por el se
=
rue, la base dtos personalis ASPState y
sesión esta db.config y , s
activadodor se almac
sesión se alstir una entrase usará parn BD. stateCpecificar un p
n para almaceonectada la psi el cliente qinará si se ad
riores determnID se manteor defecto
e que almac
veedor de es
a usarlo conuidas por un
e segundo q30
conexión.
e minutos deervidor. Por
���� !?
de datos Sqlizada. Por deno se puede
esactivado psi está activa
cena, en pro
macena en eada para stara almacenaronnectionStproveedor pe
enar la Sessipetición.que hace la pdmiten cook
mina que noendrá añadie
cena la Sessio
stado de ses
sesiones sinnuevo ident
ue un coman
inactividaddefecto es 2
?�� ������
que almacenefecto es false especificar
para todas lado, dónde se
ceso, en el s
el servidor loteConnectior el estado detring especifiersonalizado
onID, de for
petición admies, basándo
se admiten cendo un valo
onID, por def
ión persona
cookies. Si etificador. Es f
ndo SQL está
antes de que20.
� ����� ��
na datos dese, en cuyo cun catálogo
s páginase almacena
ervidor loca
ocal. Si se utionString, quee sesiónicará el servi
ma que el
mite cookies.ose en
cookies, o sior al URL.
fecto es
lizado
es true, lasfalse por def
á inactivo an
e la sesión
� %������
!
caso la
el
l. Es
lizae
dor
se
fecto
tes
�
www.depurando.com 286
<confi
<sys
<
</sy
</conf
Tes
1. In b
A
D. An
2. Yoa
D
3. Yoc
D
4. Yoy
A
iguration>
stem.web>
<sessionState
cookieless
regenerate
timeout="3
sqlConnect
stateNetwo
ystem.web>
figuration>
t
which file sbest answer.)
A. Any ASP.N
B. Web.conf
C. Global.as
ny ASP.NET
ou need to application. W
A. Session
B. Applicatio
C. Response
D. Response.
ou need to sconnects to y
A. Session
B. Applicatio
C. Response
D. Response.
ou need to wyou respond t
A. Applicatio
B. Applicatio
C. Session S
D. Session E
mode="SQLSer
="true "
ExpiredSessio
0"
ionString="Da
rkTimeout="30
should you w
NET server p
fig
sax
T server page
store state Which object
on
e.Cookies
ViewState
store user loour Web app
on
e.Cookies
ViewState
write data to to? (Choose
on Start
on End
Start
End
rver"
onId="true "
ata Source=MyS
0"/>
write code to
page with an
e with an .asp
data that is t should you
ogon credentplication. Wh
a database bthe best answ
SqlServer;Inte
o respond to
n .aspx exten
px.vb or .asp
accessible use? (Choos
tials that arehich object s
before a usewer.)
���� !?
egrated Secur
the Applica
nsion
px.cs extensio
to any userse the best an
provided byhould you us
r’s session ti
?�� ������
ity=SSPI;"
tion Start ev
on
r who connenswer.)
y the user ese? (Choose
imes out. W
� ����� ��
vent? (Choo
ects to your
each time thethe best answ
Which event s
� %������
"
se the
r Web
e user wer.)
should
�
www.depurando.com 287
AApliicac
��
��
��
cio
���
�,$
�� ��
ǿǿǿΦƛƴŀŘŜŎƻΦŎƻƳ
Mnecon
� "?
$���
�� D
MCsn .N
�
���
D��
CTS:WebNET
3
�
�
:bT
5
www.depurando.com 288
��
ConEste eASP.Notras
priva
{
R
A
S
}
Es prelugar
No secontr
Despobjet
ConEn esGlobadecirerrorerroradecu
' HandSub Ap SeEnd Su
' HandPrivat
Di
Di If
���
ntrolar erejemplo de cNET. El contrs palabras, to
ate void Pag
Response.Wri
ApplicationS
Server.Clear
eferible utilizde confiar e
e puede mosrolador Error
ués de contrto Server (cla
ntrolar erste ejemplo dal.asax que d, todos los eres en el niver genérica deuados.
dler in Globapplication Ererver.Transfeub
dler in Errorte Sub Page Lo ByVal e As im errMessage New Systemim appExceptiof (TypeOf (app Dim checkEx CType(a Select Case Case 403 errMes
"Yo Case 404 errMes
"Th Case 408 errMes
"Th Case 500 errMes
"The Case Else errMes
��
rrores encódigo muesrolador captuodos los erro
ge Error(obj
te("An appl
pecificErro
rError();
zar bloques Ten un contro
strar informar no se crean
rolar un erroase HttpServ
rrores ende código sedetecte todorrores que nel de página.enominada E
l.asax file ror(ByVal senr("Errors.asp
s.aspx file oad(ByVal senSystem.EventAs System.Te.Text.StringBon As System.pException) Ixception As HappException,e checkExcept
sage.Append(ou are not al
sage.Append(he page you r
sage.Append(he request ha
sage.Append(server canno
sage.Append(
,$��
n una págstra un contrura todas lasores que no s
ect sender,
ication erro
rLogger(Serv
Try/Catch allador de erro
ación de erron nuevas inst
or, debe borrverUtility).
n una aplmuestra cóm
os los erroresno se detectaEn el ejemprrors.aspx, q
der As Objectx")
der As SystemArgs) Handlesxt.StringBuiluilder()Exception = Ss HttpExceptittpException HttpExceptioion.GetHttpCo
lowed to view
equested cann
s timed out."
t fulfill you
��
����
ginaolador paras excepcionese detectan c
EventArgs e
or has been
ver.GetLastE
lrededor deores de la pá
or en un conttancias de los
rarlo median
icaciónmo crear uns ASP.NET noan con un blolo, el controque interpret
t, ByVal e As
m.Object,s MyBase.Loadlder =
Server.GetLastion) Then = on)ode
w that page.")
not be found."
")
ur request.")
��� "? �
���
el evento Err
s no controlacon un bloqu
e)
logged.");
Error().Mess
cualquier cóágina.
trol (como Las controles e
te una llama
controladoro controladooque Try/Catlador transfita los errores
EventArgs)
tError()
")
��,$���
���
ror de una páadas de la páue Try/Catch
sage);
digo sujeto a
abel), porqueen la página.
ada al métod
r de errores es al procesartch ni en uniere el contros y muestra
��� ���
D��
ágina Web dágina actual.
h.
a errores, en
e al llamar a
do ClearError
en el archivor una solicitucontroladorol a una págilos mensajes
��� D��
�
e. En
n
l
r del
oud, esdeina des
�
www.depurando.com 289
El
En er La SeEnd Su// Hvoid
Se }
// Hprot
{ Sy Sy
if {
} el
{
}
er La
Se }
Erro<cust
def
<
</cus
El atr
"The End Select lse
' The excep errMessage
"The fol appExnd If rrMessage.Appeabel1.Text = eerver.ClearErubHandler in Glod Applicationerver.Transfe
Handler in Ertected void Pa
ystem.Text.Stystem.Exceptio
f (appExceptio
HttpExceptionswitch (chec{case 403:
{ errMes
break; } case 404:
{ errMes
break; } case 408:
{ errMes
break; } case 500:
{ errMes
break; } default:
{ errMes
break; }
}
lse
// The excepterrMessage.Ap appExceptio
rrMessage.Appeabel1.Text = e
erver.ClearEr
ores en etomErrors mo
faultRedirec
<error statu
stomErrors>
ributo mode
server has e
ption was not.AppendFormatlowing error xception.ToSt
end("<br />PlerrMessage.Toror()
obal.asax filError(Objectr("Errors.asp
rors.aspx filage Load(obje
ringBuilder eon appExcepti
on is HttpExc
n checkExceptkException.Ge
sage.Append("
sage.Append("
sage.Append("
sage.Append("
sage.Append("
tion was not ppendFormat("on.ToString()
end("<br />PlerrMessage.To
ror();
el archivoode "RemoteO
ct "customer
usCode "404"
lleva los sigu
xperienced an
an HttpExcep(occurred<br /ring
ease contact String()
e sender, Evenx");
e.ct sender, Ev
rrMessage = non = Server.G
eption)
ion = (HttpExtHttpCode())
You are not a
The page you
The request h
The server ca
Ther server h
an HttpExceptThe following);
ease contact String();
o de confnly"
ror.htm">
redirect "c
uientes valor
��
n error.")
ption.
/>{0}",
the server ad
ntArgs e) {
ventArgs e)
new StringBuilGetLastError()
xception)appEx
allowed to vie
requested can
has timed out"
annot fullfill
has experience
tion.g error occurr
the server ad
figuració
customerror4
res:
��� "? �
dministrator."
lder();;
xception;
ew that page."
nnot be found
");
l your request
ed an error.")
red<br />{0}",
dministrator."
n
404.htm"/>
��,$���
")
");
.");
t.");
);
,
");
��� ��� ��� D��
�
�
www.depurando.com 290
Nomie
Re
On
Of
Web
En un
Cada
Authe(AuthPagesLabel
Label
Label
Parala sig
ConfigAuthen(AuthesectiorootCo
Otra
ConfigAuthen(AuthesectiorootCo
Pode
mbre de embro
emoteOnly
n
ff
b.Config
n archivo We
� A
� C
� N
� P
� S
� S
� T
sección del
enticationSehenticationSsSection ps l1.Text se
l1.Text We
l1.Text We
modificar louiente forma
guration rootCnticationSectenticationSecton2.Mode = Autonfig.Save();
posibilidad e
guration rootCnticationSectenticationSecton2.Mode = Autonfig.Save();
mos crear u
Descripc
Habilita lpersonaliASP.NET
Habilita lDefaultReDeshabilierrores e
eb.Config nos
AppSettingsS
ConnectionSt
NetSectionGr
ProtectedCon
SerializationS
SystemWebS
Transactions
archivo de c
ection sectiection)WebC
PagesSectection.Mode.
ebConfigurat
ebConfigurat
s valores dea
Config = WebCion section2 tion)rootConfthenticationM
es indicar el
Config = WebCion section2 tion)rootConfthenticationM
n nuevo arch
ón
os errores peizados sólo sese muestra e
os errores peedirect, se emita los erroreestándar.
s podemos e
Section
tringSection
roup
nfigurationSe
SectionGrou
SectionGroup
SectionGrou
configuración
on onfigurationion)WebConfiToString();
ionManager.A
ionManager.C
un archivo d
onfigurationM=ig.GetSectionMode.Forms;
nombre de l
onfigurationM=ig.GetSectionMode.Forms;
hivo de confi
��
ersonalizadose muestran een el host loc
ersonalizadosmiten los erros personaliza
encontrar co
ection
p
p
up
n equivale a
nManager.GetigurationMan
AppSettings
ConnectionSt
de configurac
Manager.OpenWe
n("system.web/
a aplicación:
Manager.OpenWe
n("system.web/
iguración:
��� "? �
s sólo en clienen clientes recal.
s. Si no se esores estándaados y permit
n la siguient
una clase.
tSection("synager.GetSec
["MyAppSetti
trings["Nort
ción a nivel d
ebConfiguratio
/authenticatio
:
ebConfiguratio
/authenticatio
��,$���
ntes remotosemotos y los e
specifica ningr.te que se mu
es sesiones d
ystem.web/auction("syste
ing"];
thwind"].Con
de Maquina
on(null);
on");
on("/WebSite5
on");
��� ���
s. Los erroreserrores de
ún objeto
uestren los
de recursos
uthenticatioem.web/pages
nnectionStri
procederem
");
��� D��
�s
n");");
ng;
mos de
�
www.depurando.com 291
Configconfig
El mévalor
filenRuta
saveValorguard
forcetrue
El par
Nomi
Fu
Mi
Mo
Tes
1. Yoe
2. Wha
3. Whs
guration confg.SaveAs(Serve
étodo Configes de config
namede acceso y
Moder de Configurdar.
eSaveAllpara guarda
rametro save
ombre de embro
ll
nimal
odified
t
ou catch an error?
A. Server.Ge
B. Server.Cl
C. Request.G
D. Applicati
hich of the foall that apply
A. Response
B. Page Err
C. Applicatio
D. Server E
hich of the foettings?
ig = WebConfier.MapPath("c
guration.Saveuración que
nombre del
rationSaveM
r aun cuando
eMode pued
Descripción
Hace que todEsto es princinformación
Hace que sóescriban en
Hace que sóconfiguració
unhandled e
etLastError()
learError()
GetLastError
ion.GetLastE
ollowing can.)
e Error
ror
on Error
Error
ollowing cod
gurationManagonfiguracion.
eAs()Escribeincluye este
archivo en q
Mode que det
o no se haya
de tomar los
n
das las propicipalmente úto para trasla
lo las propiedel archivo de
lo las propiedn, incluso cua
exception in
()
r()
Error()
n you use to c
de samples c
��
ger.OpenWebConconfig"), Con
en el archivoe objeto Conf
que se va a g
termina los v
modificado
siguientes v
edades se estil para crear
adar valores d
dades que dife configuració
dades modificando el valor
a Page Err
catch unhand
orrectly retri
��� "? �
nfiguration("/nfigurationSav
o de configuiguration.
uardar el arc
valores de pr
la configura
valores:
scriban en el r archivos dede configurac
fieren de losón.
cadas se escr es igual que
ror handler.
dled exceptio
ieves the curr
��,$���
/WebSite5");veMode.Full, t
ración XML e
chivo de con
ropiedad que
ción; de lo c
archivo de coconfiguració
ción de un eq
valores here
riban en el are el valor her
How can y
ons in an app
rent cookie c
��� ���
true);
especificado
figuración.
e se van a
ontrario, fal
onfiguración.n de
quipo a otro.
dados se
rchivo de redado.
ou access th
plication? (C
configuration
��� D��
�
los
se.
he last
Choose
n
�
www.depurando.com 292
A
B
C
D
4. Yore
A
B
C
D
A. VB Dim sect
//C#
string s
B. VB Dim sect
//C#
HttpCook
WebCo
C. VB Dim sect
//C#
string s
D. VB Dim sect
WebCo
//C#
HttpCook
WebCo
ou need to haequests a file
A. Implemen
B. Implemen
C. Implemen
D. Implemen
ion As String
ection = WebC
ion As HttpCo
iesSection se
onfigurationM
ion As String
ection = WebC
ion As HttpCo
onfigurationM
iesSection se
onfigurationM
ave ASP.NETe ending in a
nt the IPartit
nt the IHttpM
nt the IHttpH
nt the IHttpH
g = WebConfigu
ConfigurationM
ookiesSection
ection = (Http
Manager.GetSec
g = WebConfigu
ConfigurationM
ookiesSection
Manager.GetSec
ection = (Http
Manager.GetSec
T dynamicala .Doc extens
tionResolver
Module interf
Handler inter
HandlerFacto
��
urationManager
Manager.GetSec
= _ WebConfig
pCookiesSectio
ction("httpCoo
urationManager
Manager.GetSec
= _
ction("system
pCookiesSectio
ction("system
lly generate Wsion. How ca
interface.
face.
rface.
ory interface
��� "? �
r.GetSection _
ction("system
gurationManag
on)
okies");
r.GetSection(
ction("httpCo
.web/httpCook
on)
.web/httpCook
Word documan you do thi
.
��,$���
_ ("system.we
.web/httpCook
er.GetSection
"httpCookies"
okies");
ies")
ies");
ments when a is?
��� ���
eb/httpCookies
kies");
n("httpCookies
")
Web browse
��� D��
�s")
s")
er
�
www.depurando.com 293
AApliicac
�
ǿǿǿΦƛƴŀŘŜŎƻΦŎƻƳ
cio
���
<��
J,�
���
Mnecon
�� "
���
����
P��
MCsn .N
"?��
�
���
����
CTS:WebNET
3
�
��
:bT
5
www.depurando.com 294
��
P�
DetEn ASobjetla verel tip
priva{
}
ConObjeRespo
Requ
Serve
���
�����
terminanSP.NET, el obto del tipo Htrsión del expo de explora
ate void But{ System.W
string s + "T + "N + "V + "M + "M + "P + "I + "I + "I + "I + "I + "S + "S + "S + "S + "S
+ "S + "S
TextBox1}
ntexto deect Descriptionse En
AS
est Peun
er Pr
<��
��
ndo Tipobjeto RequesttpBrowserCplorador, y laador cliente.
tton1 Click(
Web.HttpBrow "Browser
Type " + bName " + bVersion "Major VersioMinor VersioPlatform "s Beta "s Crawler s AOL " + s Win16 "s Win32 "upports Framupports Tabupports Cooupports VBSupports Javbrowser.Ecmupports Javupports Act + "\n";.Text s;
Página yionncapsula la infSP.NET.
ermite a ASP.Nna solicitud W
roporciona mé
�� J
de Navegst contiene uCapabilities.a versión prin
object sende
serCapabilitCapabilitie
rowser.Typerowser.Brows+ browser.Ven " + brown " + brow+ browser.P
+ browser.Be" + browserbrowser.AOL+ browser.W+ browser.W
mes " + brles " + brkies " + bcript " + aScript "aScriptVersia Applets iveX Control
y Aplicac
formación de
NET leer los veb.
étodos auxiliar
���� "
J,���
gadoruna propiedaEste objetoncipal y secu
er, System.E
ties browseres\n"+ "\n"
ser + "\n"ersion + "\nwser.MajorVewser.MinorVePlatform + "eta + "\n"r.Crawler + L + "\n"Win16 + "\n"Win32 + "\n"rowser.Framerowser.Tablebrowser.Cookbrowser.VBS+
ion.ToString" + browser
ls " + bro
ión
la respuesta H
valores HTTP e
res para proce
"?�� <���
����
ad denominacontiene prondaria que p
EventArgs e)
r Request.
n"ersion + "\nersion + "\n"\n"
"\n"
""es + "\n"es + "\n"kies + "\n"Script + "\n
g() + "\n"r.JavaAppletowser.Active
HTTP de una o
enviados por u
esar las solicit
�� J,���
� ��
ada Browseropiedades copuede utiliza
Browser;
n"n"
n"
ts + "\n"eXControls
operación
un cliente dura
tudes Web.
���� ��
��
que devuelvomo el nombr para deter
ante
� P������
�
ve unbre yminar
�
www.depurando.com 295
Conte
Sessio
Appli
Trace
Req
Méto
Prop
ext EnHT
on Prcodu
ication Pr
e Pr
re
es
quest
odos
MapPath Su
SaveAs G
piedades
Nombre
AcceptTypes
AnonymousI
ApplicationP
AppRelative
Browser
ClientCertific
ncapsula todaTTP individual
roporciona acconfiguración duración.
roporciona acc
roporciona un
ealizar el segu
sta clase.
obrecargadona ruta de ac
uarda una so
s
ID
Path
CurrentExecu
cate
la informació.
ceso a los valoe la sesión y a
ceso a los valo
conjunto de m
imiento de la
. Asigna la rucceso física d
olicitud HTTP
utionFilePath
���� "
ón específica d
ores del estada los métodos
ores del estad
métodos y pro
ejecución del
uta de accesoel servidor, c
en el disco.
Descripció
Obtiene unMIME adm
Obtiene elhay.
Obtiene laaplicación
Obtiene laaplicaciónde tilde (~"~/page.as
Obtiene o eposibilidadela solicitud
Obtiene ella solicitud
"?�� <���
de HTTP acerc
do de la sesións de administr
do de la aplica
opiedades que
código. No se
o virtual de lacorrespondien
ón
na matriz de citidos por el c
identificador
ruta de acceASP.NET en e
ruta de accey la hace rela) para la raízspx").
establece infoes del explor.
certificado deactual.
�� J,���
a de una solic
n, a la ración de la
ción.
e le ayudan a
e puede hered
a dirección URnte a la solici
cadenas de tcliente.
anónimo del
so a la raíz vel servidor.
so virtual deativa utilizandz de la aplicac
ormación acerador del clie
e seguridad d
���� ��
citud
dar
RL solicitadaitud actual.
ipos Accept
l usuario, si
virtual de la
la raíz de lado la notacióción (como e
erca de las nte que realiz
del cliente pa
� P������
�
a
o
nn
za
ara
�
www.depurando.com 296
ContentEnco
ContentLeng
ContentType
Cookies
CurrentExec
FilePath
Files
Filter
Form
Headers
HttpMethod
InputStream
IsAuthentica
IsLocal
IsSecureCon
Item
LogonUserId
Params
Path
PathInfo
PhysicalApp
PhysicalPath
oding
gth
e
cutionFilePath
m
ated
nnection
dentity
licationPath
h
h
���� "
Obtiene o ecuerpo de
Especifica cliente, en
Obtiene o esolicitud en
Obtiene uncliente.
Obtiene laactual.
Obtiene laactual.
Obtiene lacliente, en
Obtiene o ela secuenc
Obtiene un
Obtiene un
Obtiene el(como GE
Obtiene elentrante.
Obtiene unautenticad
Obtiene unequipo loca
Obtiene unutiliza sock
Obtiene elcoleccionesServerVaria
Obtiene elactual.
Obtiene unQueryStrin
Obtiene laactual.
Obtiene infde un recu
Obtiene lafísico del dque se está
Obtiene la
"?�� <���
establece el jla entidad.
la longitud debytes.
establece el tntrante.
na colección d
ruta de acce
ruta de acce
colección deformato MIM
establece el fia actual de e
na colección d
na colección d
método de trT, POST o HE
contenido de
n valor que ino.
n valor que inal.
n valor que inkets seguros,
objeto especs Cookies, Foables.
tipo Window
na colección cg, Form, Ser
ruta de acce
formación adrso con exten
ruta de acceirectorio raízá ejecutando
ruta de acce
�� J,���
juego de cara
el contenido
tipo de conte
de cookies en
so virtual de
so virtual de
archivos carME de varias p
filtro que se uentrada.
de variables d
de encabezad
ransferencia EAD) que uti
el cuerpo de l
ndica si la sol
ndica si la sol
ndica si la con es decir, HT
cificado desdeorm, QuerySt
sIdentity par
combinada derverVariables
so virtual de
icional de la nsión URL.
so al sistemade la aplicac
.
so al sistema
���� ��
acteres del
enviado por e
enido MIME de
nviada por el
la solicitud
la solicitud
rgada por el partes.
utilizará al le
de formulario
dos HTTP.
de datos HTTiliza el client
la entidad HT
icitud se ha
icitud es del
nexión HTTP TTPS.
e las ring o
ra el usuario
e elementos y Cookies.
la solicitud
ruta de acces
a de archivosción de servid
a de archivos
� P������
�
el
e la
er
o.
TPe.
TTP
so
dor
�
www.depurando.com 297
"<br>
QueryString
RawUrl
RequestType
ServerVaria
TotalBytes
Url
UrlReferrer
UserAgent
UserHostAdd
UserHostNam
UserLanguag
Timestam
Applicat VirtualP Physical HttpHead
>"); HttpMeth IsAuthen IsLocal. IsSecure LogonUse TotalReq UserAgen IpAddres
if (Requ UrlR
else UrlR
UserLangforeach
User
e
bles
dress
me
ges
mp.Text Co
tionPath.TexPath.Text Path.Text
ders.Text
hod.Text Rnticated.TexText Requ
eConnection.erIdentity.TquestBytes.Tnt.Text Res.Text Re
uest.UrlRefeReferrer.Tex
Referrer.Tex
guages.Text(string s i
rLanguages.T
ntext.Timest
t RequestRequest.FileServer.MapP
Server.UrlDe
equest.HttpMt Requestest.IsLocalText Requeext Requesext Requesquest.UserAgquest.UserHo
rrer ! nullt Request
t "No refe
String.Empn Request.Usext + s + "
���� "
físico corre
Obtiene laconsulta H
Obtiene laactual.
Obtiene o edatos HTTP
Obtiene unWeb.
Obtiene elentrada ac
Obtiene infla solicitud
Obtiene infla solicitudvínculo con
Obtiene laexplorador
Obtiene la
Obtiene el
Obtiene unpreferencia
tamp.ToStrin
.ApplicationePath;Path(Requestecode(Reques
Method;.IsAuthentic.ToString();est.IsSecurest.LogonUserst.TotalBytegent;ostAddress;
l).UrlReferrer
errer";
pty;serLanguages"<br>";
"?�� <���
espondiente a
colección deTTP.
dirección UR
establece el mP (GET o POS
na colección d
número de btual.
formación aceactual.
formación aceanterior del
n la dirección
cadena de agr del cliente.
dirección IP
nombre DNS
na matriz de cas de idioma
ng();
nPath;
t.FilePath);st.Headers.T
cated.ToStri;eConnection.rIdentity.Toes.ToString(
r.ToString()
s)
�� J,���
a la dirección
variables de
RL original de
método de trST) que utiliz
de variables d
bytes de la se
erca de la dir
erca de la dircliente que eURL actual.
gente de usu
del host del c
S del cliente r
cadenas ordedel cliente.
ToString()).
ing();
ToString();oString();();
;
���� ��
URL solicitad
tipo cadena
la solicitud
ransferencia dza el cliente.
de servidor
ecuencia de
rección URL d
rección URL destablecía un
uario original
cliente remot
remoto.
enada con las
Replace("&"
� P������
�da.
de
de
de
de
del
to.
s
,
�
www.depurando.com 298
Res
Méto
Prop
Serv
Méto
sponse
odos
AppendHead
Clear
ClearConten
ClearHeader
End
Flush
Redirect
SetCookie
piedades
Cookies
Buffer
Cache
Expires
Status
StatusCode
ver
odos:
ClearError
GetLastErro
HtmlDecode
HtmlEncode
MapPath
Transfer
der Agrega
Borra to
nt Borra to
rs Borra to
Envía apágina y
Envía al
Sobreca
Infraestr
Obtiene la c
Obtiene o een el búferla respuesta
Obtiene la dconfiguració
Obtiene o euna páginala misma pmemoria calas versione
Establece la
Obtiene o edevuelve al
Borra la ex
r Devuelve
e Sobrecargcaracteres
Sobrecarg
Devuelve acceso vir
Sobrecarg
un encabezad
oda la salida d
oda la salida d
odos los enca
cliente today provoca el e
cliente toda
rgado. Redire
ructura. Actu
colección de
establece un y se van a ea completa.
directiva de cón de privac
establece losalmacenada
ágina antes daché. Expireses anteriores
a línea Status
establece el cl cliente.
xcepción ant
la excepción
gado. Descods HTML no vá
gado. Codifica
la ruta de acrtual especific
gado. Finaliza
���� "
do HTTP a la
de contenido
de contenido
bezados de l
la salida delevento EndRe
la salida alm
ecciona un cl
aliza una coo
cookies de re
valor que indnviar despué
caché (por ejdad y cláusu
minutos que en la caché de que expirs se proporcio de ASP.
s que se dev
código de est
erior.
anterior.
ifica una cadálidos.
a una cadena
ceso al archicada en el se
a la ejecución
"?�� <���
secuencia de
de la secuen
de la secuen
a secuencia d
búfer actual,equest.
acenada en e
iente a una n
okie existente
espuesta.
dica si los resés de que se
emplo, tiemplas de variac
deben transde un explore, aparece laona para que
uelve al clien
ado de HTTP
ena que se h
a que se va a
vo físico quervidor Web.
de la página
�� J,���
e salida.
ncia del búfer
ncia del búfer
del búfer.
, detiene la e
el búfer.
nueva direcci
e en la colecc
sultados se vahaya termina
po de expiracción) de una p
scurrir antes drador. Si el usversión alma
e exista comp
nte.
de la salida
ha codificado
mostrar en
corresponde
a actual e inic
���� ��
r.
r.
ejecución de l
ón URL.
ción de cooki
an a almacenado de proce
ción, página web.
de que caduqsuario vuelveacenada en patibilidad con
que se
para elimina
un explorado
e a la ruta de
cia la ejecució
� P������
�
la
es.
nar sar
quee a
n
r
or.
ón
�
www.depurando.com 299
Acc
PageLa prestabpermelem
<%@ P
<!DOC"http
<scri
pro {
}
</scr
<html
<head
</hea
<body<fo
<h3
<ast
r</a
</f</bod</htm
UrlDecode
UrlEncode
ediendo
e.Headeropiedad Heablecer informmite agregar iento head.
Page Languag
CTYPE html Pp://www.w3.o
ipt runat "s
otected void
// Create Style body
bodyStyle. bodyStyle.
// Add the// of the
Page.Heade
// Add the Page.Heade
ript>
l >
d id "head1"runat "ser<title>To
ad>
y>orm id "form
3>HtmlHead C
sp:label idtext "View and
runat "serveasp:label>
form>dy>ml>
de una nu
Sobrecarga través d
Sobrecargdesde el s
a las cab
ader obtienemación del eninformación
ge "C#" %>
PUBLIC " //Worg/TR/xhtml
erver">
d Page Load(
a Style objyStyle new
ForeColor BackColor
e style rule current pag
er.StyleShee
e page title er.Title "
rver">be replaced
m1" runat "s
Class Exampl
"Label1"w the HTML sbody style
er">
eva página p
gado. Descode HTTP y des
gado. Codificaservidor Web
beceras
e una referenncabezado dcomo hojas
3C//DTD XHTM1/DTD/xhtml1
object sende
ect for the Style();
System.DrawSystem.Draw
named bodySe. The rule t.CreateStyl
to the headHtmlHead Exa
.</title>
erver">
e</h3>
ource code oadded to the
���� "
para la solicit
ifica una cadspués se env
a una cadenahasta el clien
ncia a un objel documentde estilos, re
ML 1.0 Trans1 transition
er, System.E
body of the
wing.Color.Bwing.Color.L
Style to theis for the
leRule(bodyS
der element.ample";
of this pagee header ele
"?�� <���
ud actual.
ena que se ció al servidor
a para una trante a través d
eto HtmlHeato para la páeglas de esti
sitional//ENnal.dtd">
EventArgs e)
e page.
Blue;LightGray;
e headerbody HTML e
Style, null,
.
e to see theement."
�� J,���
codificó para sr en una direc
ansmisión HTde la direcció
ad que se puágina. El objelo, un título
N"
element."body");
e title
���� ��
su transmisicción URL.
TTP segura ón URL.
uede utilizareto HtmlHeay metadatos
� P������
!ón
parad les al
�
www.depurando.com 300
Tes
1. Wha
2. Yo
3. Wh
t
hich of the foapply.)
A. Whether
B. Whether t
C. The user’
D. Whether
E. Whether t
ou have crea<Query>”.
A. Page.Ti
B. Page.He
C. Respons
D. Respons
hich of the fthe browse
A. Flush
B. Clear
C. End
D. ClearCo
following can
the client ha
the user is lo
s e-mail add
the browser
the browser
ated an ASP.N. How can yo
itle
eader.Title
se.Header.Ti
se.Title
following Rer while allow
ontent
n you determ
as the .NET F
ogged on as a
dress
supports Ac
supports Jav
NET search ou dynamica
itle
esponse methwing you to a
���� "
mine from the
Framework C
an administra
tiveX
vaScript
page and wally set the pa
hods causes add to the res
"?�� <���
e Request.Br
CLR installed
ator
ant to set theage title?
ASP.NET tosponse later?
�� J,���
rowser object
d
e page title t
o send the cu?
���� ��
t? (Choose a
to “Search re
urrent respo
� P������
"
all that
esults:
nse to
�
www.depurando.com 301
AApliicaccio
��
�#
A
e
Mnecon
���
#$
����
ǿǿǿΦƛƴŀŘŜŎƻΦŎƻƳ
MCsn .N
� )?
��
����
CTS:WebNET
3
�
�
:bT
5
www.depurando.com 302
��
ASP.Ncrearel empropo
PágUna pcomose motenerpágincoloc
Para
12
3
���
Net facilita lar un marco compleo de la porcionado po
ginas Maepágina maeso una plantillostrará en tor una páginana maestra. Tcamos el con
Utilizar pági
1. Creamos2. Agregam
3. Agregam
�#$
a consistencionsistente, eágina Web por “pistas” q
estrasstra proporcila para todasodas las págimaestra conTodas las págtenido que v
nas maestra
un sitio webos una págin
os páginas d
�� A
ia de un sitioen el que cadpor parte delue indiquen
ona HTML cos las páginasnas que utilin un logotipoginas maestrvaría en cada
s realizamos
bna maestra a
de contenido
A���
o web con lasda página ubl usuario, proal usuario có
ompartido, cde un sitio.cen esa págo y un menúras tienen una página hija
s los siguient
al sitio
o basadas en
�
�����
s páginas mabicará su contoporcionadoómo ha llega
controles y cTodo lo queina maestra.; éstos se mona zona de co.
es pasos:
la página ma
���� )? �
aestras, quetenido. La nao por el mapaado a la pági
código, que paparece enPor ejemploostrarán en contenido en
aestra
� �#$��
no permitenavegación faa del sitio y/ona actual.
pueden usarsla página mao, podríamoscada “hijo” dlas que
A�������
�
ncilitao
seaestrasde la
�
www.depurando.com 303
Se cre
<asp:
Este cpáginConte
eará la págin
ContentPlac</asp:Co
comodín sernas hijo). EnentPlaceHold
na maestra c
ceHolder idontentPlaceH
rá lo que rellela página mader.
on una decla
"CPHContenidolder>
enará el conaestra, podem
aración de co
do" runat "s
tenido de lamos añadir l
�
ontrol ya col
server">
página queo que quera
���� )? �
ocada:
use esta págmos alreded
� �#$��
gina maestrador del contr
A�������
�
(lasrol
�
www.depurando.com 304
AñaLas pel Co
Podepropi
Una pÉstas<formdesig
Estoen tie
En las
<%@ PCodeF
<asp:</asp<asp:</asp
La dir
El concorre
PágiEs nootrosun enmantweb pmás v
EditEn re(desdque l
publi{
}
Adem
<%@ M
adir Págináginas que antentPlaceH
mos colocario ID)
página maess son archivom>, <head> ygnada en el c
nos permitirempo de ejec
s páginas hij
Page LanguagFile "Defaul
Content IDp:Content>Content ID
p:Content>
rectiva @Pag
ntrol Contenespondiente
inas Maesormal que qus elementos sncabezado qtuvieran en cpuede combventajoso pa
tar Dinámspuesta a ciede una páginas páginas se
ic Image Log{
get { reset { th
}
más de defini
MasterType v
nas de Códañadiremos,older que he
r más de un C
stra tiene uns .aspx normy <body>. Tocontrol Conte
rá ver el aspecución.
as tendremo
ge "C#" Mastt.aspx.cs"
"Content1"
"Content2"
ge contiene
nt tiene una p
stras Anidueramos mansólo se compue se mantucada divisiónbinarse con uara cada pág
micamenteertos eventoa hija). Paraecundarias p
go
eturn this.Ihis.ILogo v
ir las propied
virtualpath
digoque utilizaráemos añadid
ContentPlace
controlPlacemales, con unodo el contenentPlaceHold
ecto de la nu
os
erPageFile "Inherits " D
ContentPlace
ContentPlace
una referenc
propiedad qu
dadasntener algunpartirán en uuviera para ton. ASP.NET nouna página anina.
e la páginos, podemosello, crearempuedan acced
Logo; } value; }
dades en la p
"~/MasterPag
án esta págindo a la página
eHolder en u
eHolder vacína directiva Pnido del contder de la pág
eva página c
"~/MasterPagDefault" Tit
eHolderID "h
eHolderID "C
cia al archivo
ue lo enlaza
nos elementouna parte deoda la compaos permite cnidada, o co
na maestrquerer cammos una proder y cambia
página maest
ge.master" %
�
na maestra, ca maestra.
una página m
o. Este contrPage, pero sitrol hijo se egina maestra
cuando se co
ge.master" Atle "Página
head" Runat
CPHContenido
o MasterPage
con el Conte
os a lo largola misma. Poañía, pero tarear páginasn la página m
abiar la presepiedad públarla.
tra, en las hi
%>
���� )? �
colocará tod
maestra (cada
rol está llenoin las etiquetncuentra en.
ombine con l
AutoEventWirsin título"
"Server">
o" Runat "Se
e de esta pág
entPlaceHold
de toda la apor ejemplo,ambién elems anidadas. Cmaestra origi
ntación de laica en la pág
jas tendrem
� �#$��
o su conteni
a una tiene s
o de páginastas <html>,la zona
a página ma
reup "true" %>
erver">
gina .
derID
plicación, pepodríamos t
mentos que seCualquier páginal, lo que s
a página maegina maestra
os que hace
A�������
�ido en
si
hijas.
estra
roenereginasea
estra, a la
r:
�
www.depurando.com 305
Propopágin
prote{
}
RefeContrImageim.Im
CargEstamdinám
Podrí
�
�
�
Tes
1. Wh
2. Wha
3. Yc
orciona un mna principal d
ected void B{
this.Maste}
erenciar Crol c Maste im (ImagmageUrl "~
gar Páginmos ante unmicamente u
íamos hacer
Almacena
Volver a
Ses
Res
En el PreI
void Page_
{ if (Sess
Ma
}
t
hat is the rela
A. One mast
B. One conte
C. Multiple
D. One cont
hich of the fall that apply
A. Content p
B. Content p
C. Content p
D. Content p
You are concompatibility
medio de crede ASP.NET c
Button1 Clic
er.Logo.Imag
Controlester.FindContge)c;/imagenes/i
nas Maestrescenario enuna de ellas p
:
ar en sesión
a cargar la p
ssion["master
sponse.Redire
Init cargar la
_PreInit(Objec
sion["masterpa
asterPageFile
ationship bet
ter page for m
ent page for
content page
ent page for
following sta.)
pages can ref
pages can ref
pages can ref
pages can ref
nverting an y, you need t
ar una referecuando la pro
k(object sen
eUrl "~/imag
srol("ILogo")
nadecobn.jpg
ras Dinámn el que tengpara las pági
el nombre d
página
page"] = "Mas
ct(Request.Ur
masterpage
ct sender, Ev
age"] != null
= (String)Se
tween master
multiple cont
multiple ma
es for multipl
one master p
atements abo
ference priva
ference publi
ference publi
ference contr
existing Wto read prop
encia con esopiedad Mas
nder, EventA
genes/inadec
);
g";
micamentgamos diferenas hijas.
de la masterp
ster2.master";
rl.ToString())
e necesaria
entArgs e)
)
ession["master
r and conten
tent pages
ster pages
le master pag
page
out referencin
ate properties
ic properties
ic methods in
rols in the m
Web applicatperties from
�
tablecimientster tiene ac
Args e)
cobn.jpg";
teentes mastes
page que que
;
);
rpage"];
nt pages? (Ch
ges
ng master pa
s in the mast
in the maste
n the master
aster page.
tion to use the master p
���� )? �
to inflexibleceso a la pág
spages y que
eramos
hoose the bes
age member
ter page.
er page.
page.
master pagpage. Which
� �#$��
de tipos a lagina principa
eramos carga
st answer.)
s is true? (C
ges. To mah of the follo
A�������
�al
ar
Choose
aintain owing
�
www.depurando.com 306
cp
A. Ad
D. Ad
4. Yosh
A. Pa
changes are ypage? (Choos
dd an “@ M
B. Add an “@
C. Add a Ma
dd a Content
ou need to dhould you im
age Load
B. Page Ren
C. Page Pre
D. Page Pre
you requirese all that app
asterType” d
@ Master” d
asterPageFil
tPlaceHolder
dynamically mplement the
nder
eRender
eInit
d to make toply.)
declaration.
declaration.
le attribute to
r control.
change the e dynamic ch
o .aspx page
o the “@ Pag
master pagehanging? (Ch
�
es to enable
ge” declaratio
e of a contenhoose the bes
���� )? �
them to wo
on.
nt page. In st answer.)
� �#$��
ork with a m
which page
A�������
�master
event
�
www.depurando.com 307
AApliicaccio
��
��
Mnecon
���
���
ǿǿǿΦƛƴŀŘŜŎƻΦŎƻƳ
MCsn .N
� )?�
��
CTS:WebNET
3
��
:bT
5
www.depurando.com 308
��
Temainform"TementoradmiLos T
ASP.Nlos coestabanchu(CSS)contrCSS, o(Temcontr
ApliLa Waspeces lade seestilode senuest
ApliLas efijar aHTMHTMservidestilo
��� �
as y Skins � Lmación de e
ma". Un Temarno de las pánistrarse reaTemas tambié
NET incluye vontroles de nblecer las proura, altura, epara factoriroles. Podemo podemos da), que se aproles individu
icando eseb es un entcto de difereresponsableervidor de ASos CSS de priervidor y nostros Formula
icando estiquetas esta una lista deL de servidorL estándaresdor. Si obseros se pasan a
� ���
La característstilo y diseñoa se puede aáginas y contalizando camén se puede
varias caractnuestra aplicopiedades deetc. Los contizar los ajustmos definir ladefinir esta iplicarán a toduales se espe
stilos a Ctorno flexibleentes Web Sie de los ricosSP.NET y los cmera clase. Emuestra el barios Web.
tilos a conándar HTMLe parejas atrr de ASP.NETs. El siguientervamos el cóal navegador
��� &
tica de Temao en un grupplicar a cualqtroles del sitimbios al Teman compartir
terísticas parcación. Los coe estilo comoroles tambiées de estilo da informaciónnformacióndas o una paecifican com
Controlese para las inttes. La adopdiseños quecontroles deEsta secciónbuen contro
ntroles htL soportan Cibuto/valor dT pueden acee ejemplo vadigo fuenteen la repres
���,
as y Skins depo separadoquier sitio deio. Los camba, sin tener qcon otros de
ra personalizontroles sopo fuentes, boén soportan cde forma sepn de los estilen grupos dearte de las páo un Skin de
sterfaces de ución generale podemos ee servidor wediscute cóml que nos pro
tmlSS a través ddelimitada peptar estilosarios estilos ade la páginasentación de
���
ASP.NET 2.0de ficheros,e forma queios en el Estique editar laesarrolladore
ar la aparienortan un moordes, colorecompletameparada de lasos como proe ficheros seáginas de la aentro de un T
usuario, con vlizada de "Cancontrar eneb has sido dmo utilizar estoporcionan s
del atributopor puntos yde la mismaaplicados a ddevuelta allos controle
0 nos permitea cuyo conjuafecte a la ailo de un sitios páginas dees.
ncia o el estilodelo de objees de fondo yente "Cascads propiedadeopiedades deeparados llamaplicación. LTema.
variaciones eascading Stylla Web. Tod
diseñados patos estilos jusobre la apar
"style" (esticomas. Todoa forma quediferentes cocliente, verees.
���� )?
e factorizar lunto llamamapariencia yo puedene forma indiv
o de las págeto Style pary primer planing Style Shees de lose los controlemados Themos estilos de
extremas enle Sheets" (Cdos los controra soportar lunto con conriencia de
ilo), que se pos los controlas etiquetasontroles deemos que est
?�� �����
�
aos
vidual.
inas yrano,eets"
es oee
elCSS)oleslostroles
puedeoless
tos
�
www.depurando.com 309
<%@ P
<html<body
<h3
<p>
<sprunat
</s
<p>
<bucolor
<p>
Page Languag
l>y>
3><font face
><font face
pan id "Spant "server"> This is so
span>
><font face
utton id "Bur:black;widt
><font face
ge "C#" %>
e "verdana">A
"verdana"><
n1" style "f
ome literal
"verdana"><
utton1" stylth:100" runa
"verdana"><
Applying Sty
h4>Styled Sp
ont: 12pt ve
text inside
h4>Styled Bu
e "font: 8ptt "server">C
h4>Styled Te
yles to HTML
pan</h4></fo
erdana; colo
a styled sp
utton</h4></
t verdana;baClick me!</b
ext Input</h
L Controls</
ont><p>
or:orange;fo
pan control
/font><p>
ackground cobutton>
h4></font><p
/font></h3>
ont weight:7
olor:lightgr
p>
���� )?
00"
reen;border
?�� �����
�
�
www.depurando.com 310
Ent<in
verdarunat
<p>
Sel<se
color<<<
</s
<p>
Sel<sp<in
color<in
color<in
color</s
</bod</htm
CSS tcontesenciestilotal y c<%@ P
<html<head
<st
ter some texnput id "Texana;backgrout "server"/>
><font face
lect an itemelect id "Ser:lightblue;<option>Item<option>Item<option>Itemselect>
><font face
lect an optipan style "fnput id "Radr:red;zoom:2nput id "Radr:red;zoom:2nput id "Radr:red;zoom:2span>
dy>ml>
ambién defienida en unallo definir loo. Los estiloscomo muestPage Languag
l>d>
tyle>
.spanstyle {
font:font wcolor:
}
.buttonsty {
font:backgrborderwidth:
} .inputstyl
{font:backgrborderborderwidth:
} .selectsty
{font:backgrcolor:
} .radiostyl
{
xt: <p>xt1" type "tund color:ye>
"verdana"><
m: <p>elect1" stylcolor:purpl
m 1</option>m 2</option>m 3</option>
"verdana"><
on: <p>font: 16 pt vdio1" type "00%" runat
dio2" type "00%" runat
dio3" type "00%" runat
na un atribua sección <stys estilos unaen controlestra el siguienge "C#" %>
e
12pt verdanweight:700;orange;
yle
8pt verdanaround color:r color:blac100
e
14pt verdanround color:r style:dashr color:red;300;
yle
14pt verdanround color:purple;
e
ext" value "llow;border
h4>Styled Se
e "font: 14pe;" runat "s
h4>Styled Ra
verdana;fontradio" name"server"/>Opradio" name"server"/>Opradio" name"server"/>Op
to de clase qyle>...</stylea vez y aplicas HTML de sete ejemplo.
a;
;lightgreen;k;
a;yellow;ed;
a;lightblue;
"One, Two, Tstyle:dashe
elect Input<
pt verdana;bserver">
adio Buttons
t weight:300"Mode" chec
ption 1<br>"Mode" styl
ption 2<br>"Mode" styl
ption 3
que puede fije> del documrlos a difereervidor tamb
Three" styleed;border co
</h4></font>
background
s</h4></font
0">cked style "
le "width:50
le "width:50
jarse a una dmento. El atrntes etiquetbién se pued
e "font: 14polor:red;wid
><p>
t><p>
"width:50;ba
0;background
0;background
definición deibuto de clasas sin tenerden establece
���� )?
ptdth:300;"
ackground
d
d
estilo CSSse hace másque redefinier de esta fo
?�� �����
�
ir elrma,
�
www.depurando.com 311
</s
</hea<body
<h3
<p>
<sp
</s
<p>
<bu
<p>
Ent<in
runat
<p>
Sel<se
<<<
</s
<p>
Sel<sp<in
runat<in
2<br><in
3</s
</bod</htm
CuanpropiSysteque mclaveconseHtml
<scri
v
}
</scr
width:backgrzoom:2
}
style>
ad>y>
3><font face
><font face
pan id "Span This is so
span>
><font face
utton id "Bu
><font face
ter some texnput id "Text "server"/>
><font face
lect an itemelect id "Se<option>Item<option>Item<option>Itemselect>
><font face
lect an optipan style "fnput id "Radt "server"/>nput id "Rad>nput id "Rad
span>
dy>ml>
do se analizaiedad Style (em.Web.UI.Hmuestra los ede "style�atecuentemenInputText.
ipt language
void Page Lo MyText.S Response
}
ript>
50;round color:00%
e "verdana">A
"verdana"><
n1" class "spome literal
"verdana"><
utton1" clas
"verdana"><
xt: <p>xt1" type "t>
"verdana"><
m: <p>elect1" clasm 1</option>m 2</option>m 3</option>
"verdana"><
on: <p>font: 16 pt vdio1" type ">Option 1<brdio2" type "
dio3" type "
a una páginadel tipo CssSHtmlControlestilos del cottibute". Porte, obtener
e "C#" runat
oad(Object style["width
e.Write(MyTe
red;
Applying Sty
h4>Styled Sp
panstyle" rutext inside
h4>Styled Bu
s "buttonsty
h4>Styled Te
ext" value "
h4>Styled Se
s "selectsty
h4>Styled Ra
verdana;fontradio" name>radio" name
radio" name
a ASP.NET, laStyleCollectis.HtmlControntrol comoejemplo, poel atributo d
"server" >
ender, Event"] "90px";xt.Style["wi
yles to HTML
pan</h4></fo
unat "servera styled sp
utton</h4></
yle" runat "
ext Input</h
"One, Two, T
elect Input<
yle" runat "
adio Buttons
t weight:300"Mode" chec
"Mode" clas
"Mode" clas
a informaciónon) dentro drol. Esta propgrupos de vaodemos usarde estilo "wid
tArgs E) {;idth"]);
L Controls</
ont><p>
r">pan control
/font><p>
"server">Cli
h4></font><p
Three" class
</h4></font>
"server">
s</h4></font
0">cked class "
ss "radiosty
ss "radiosty
n de estilo sede la clasepiedad es, esalores indexael siguientedth " (ancho)
/font></h3>
ick me!</but
p>
s "inputstyl
><p>
t><p>
"radiostyle"
yle" runat "
yle" runat "
e rellena den
sencialmenteados por cadcódigo para) de un contr
���� )?
tton>
e"
server"/>Op
server"/>Op
ntro de una
e, un dicciondenas, para cfijar y,rol de servid
?�� �����
�
tion
tion
ariocada
or
�
www.depurando.com 312
<inpu
<%@ P
<html
<scri
v
"<br>
"<p>"
}
v
"<br>
}
</scr
<body
<fo
width
runat
OnSer
runat
color
ut type "tex
Page Languag
l>
ipt language
void Page Lo
Message.
Message.>"; Message.
";
Message.
IEnumera
while (k
Stri Mess Mess }
}
void Submit
Message.
MySpan.S MyText.S
Message.>"; Message.
}
ript>
y>
orm id "Form
<h3><font
<div styleh:1;border s
<span<p>
Select<selec
t "server"><opt<opt<opt
</sele<input
rverClick "S</div>
<p><font f
<span id "t "server"> This i</span>
<p><font f
<button idr:black;widt
xt" id "MyTe
ge "C#" %>
e "C#" runat
oad(Object S
InnerHtml +
InnerHtml +
InnerHtml +
InnerHtml +
ator keys M
keys.MoveNex
ng key (Sage.InnerHtmage.InnerHtm
Click(Objec
InnerHtml +
tyle["colortyle["width
InnerHtml +
InnerHtml +
m1" runat "s
face "verda
e "font: 8pttyle:solid;pid "Message
t a color foct id "Color
tion>red</option>green</tion>blue</opect>t id "Submitubmit Click
face "verdan
MySpan" sty
s some lite
face "verdan
d "MyButton"th:100" runa
xt" runat "s
"server">
rc, EventArg
"<h5>Acces
"The color
"The width
"MySelect
MySelect.Sty
t()) {
tring)keys.Cml + "<li>&ml + key +
t Src, Event
"<h5>Modif
"] ColorSe"] "600";
"The color
"The width
erver">
na">Programm
verdana;bacpadding:1,10" EnableView
r the span: Select" styl
tion>option>ption>
1" type "sub">
a"><h4>Style
le "font: 12
ral text ins
a"><h4>Style
style "fontt "server">C
server"/>
gs E ) {
ssing Styles
r of the spa
h of the tex
's style col
yle.Keys.Get
Current; " " + MySel
tArgs E ) {
fying Styles
elect.Value;
r of the spa
h of the tex
matically Ac
ckground col0,25,10">wState "fals
<p>le "font: 11
bmit" runat
ed Span</h4>
2pt verdana;
side a style
ed Button</h
t: 8pt verdaClick me!</b
s...</h5>";
an is: " + M
xtbox is: "
llection is:
tEnumerator(
;";lect.Style[k
{
s...</h5>";
;
an is: " + M
xtbox is: "
ccessing Sty
lor:cccccc;b
se" runat "s
1pt verdana;
"server" Va
></font><p>
; color:oran
ed span cont
h4></font><p
ana;backgroubutton>
MySpan.Style
+ MyText.St
<br><br>";
();
key] + "<br>
MySpan.Style
+ MyText.St
yles</font><
border color
server"/>
font weight
alue "Change
nge;font wei
trol
p>
und color:li
���� )?
e["color"] +
tyle["width"
>";
e["color"] +
tyle["width"
</h3>
r:black;bord
t:700;"
e Style"
ght:700"
ghtgreen;bo
?�� �����
�
] +
];
er
rder
�
www.depurando.com 313
verdarunat
color
style
color
color
<
</bod</htm
ApliLos coañadtalesreprerepreSystepropoherra
El sigincluypropisubp
<p><font f
Enter some<input id
ana;backgrout "server"/>
<p><font f
Select an <select id
r:lightblue;<option><option><option>
</select>
<p><font f
Select an <span styl
<inpute "width:50;
<inputr:red;zoom:2
<inputr:red;zoom:2
</span>
</form>
dy>ml>
icando Esontroles Weiendo variascomo coloresentan un sesentan comem.Web.UI.Worcionan comamientas de
uiente ejemye un calendiedad que esropiedad Pro
face "verdan
e text: <p>"MyText" typ
und color:ye>
face "verdan
item: <p>d "MySelect"color:purpl
>Item 1</opt>Item 2</opt>Item 3</opt
face "verdan
option: <p>e "font: 16
t id "MyRadibackground
t id "MyRadi00%" runat
t id "MyRadi00%" runat
stilos a Coeb de Sevidorpropiedadede fondo, noubconjuntoo propiedadWebControlsmprobacióndesarrollo co
plo muesta udatio sin estils un tipo de copertyName�
a"><h4>Style
pe "text" vallow;border
a"><h4>Style
style "fonte;" runat "sion>ion>ion>
a"><h4>Style
pt verdana;o1" type "racolor:red;zoo2" type "ra"server"/>Opo3" type "ra"server"/>Op
ntroles dr proporcions fuertemenombre y tamde los compes llanas accs.WebControen tiempo domo Microso
un controlWlos aplicadosclase, por eje�SubProperty
ed Text Inpu
alue "One, Tstyle:dashe
ed Select In
t: 14pt verdserver">
ed Radio But
;font weightadio" name "oom:200%" ruadio" name "ption 2<br>adio" name "ption 3
e Servidoan un nivel a
nte tipadas pmaño de la fuortamientoscesibles direcol. La ventaje compilacióoft Visual Stu
WebCalendars para contraemplo Font,yName.
ut</h4></fon
Two, Three"ed;border co
nput</h4></f
dana;backgro
ttons</h4></
t:300">"Mode" checkunat "server"Mode" style
"Mode" style
oradicional deara los ajusteente, etc. Ess de estilo disctamente a ta de usar estón y finalizacudio .NET.
r con varios eastar). Obsernecesitamos
nt><p>
style "fontolor:red;wid
font><p>
ound
/font><p>
kedr"/>Option 1e "width:50;
e "width:50;
soporte paraes de estilosstas propiedasponibles entravés de la ctas propiedación de decla
estilos aplicarvad que al fis usar la sint
���� )?
t: 14ptdth:300px;"
<br>background
background
a estilos,más usadosades de estiloHTML y seclase baseades es quearaciones en
ados a él (seijar unataxis de
?�� �����
!
s,o
�
www.depurando.com 314
<%@ P
<html<body
Page Languag
l>y>
ge "C#" %>
���� )??�� �����
"
�
www.depurando.com 315
<fo
<
</bod</htm
El espencapTableaccesrepreWeekPodePrope
orm id "Form
<h3><font
<p><font f
<b>No Styl<p><ASP:Calen<p>
<b>Style:<<p><ASP:Calen
BackCForeCBordeBordeBordeHeighWidthFontFontFontCellSCellPShowG
/>
</form>
dy>ml>
pacio de nompsula los atrieItemStyle hso a propiedaesentación dkendDayStymos fijar proertyName�Su
m1" runat "s
face "verda
face "verdan
e:</b>
ndar ID "Cal
</b>
ndar ID "Cal
Color "BeigeColor "BrownerWidth "3"erStyle "SolerColor "Blaht "450"h "450"Size "12pt"Names "TahomUnderline "pacing 2
Padding 2GridLines tr
mbres Systemibutos de esteredan de eades de esteel control. Ple, TodayDayopiedades inubPropertyN
erver">
na">Applying
a"><h4>Style
endar1" runa
endar2" runa
""
id"ck"
ma,Arial"false"
ue
m.Web.UI.Wtilo comunessta clase base tipo para esor ejemplo,yStyle, Selecndividuales pName, como m
g Styles to
e Properties
at "server"
at "server"
WebControlss (las clases ase común). Vspecificar el�� da accesoctedDayStyleara estos esmuestra el s
Web Control
s</h4></font
/>
incluye unaadicionales dVarios controestilo de elea propiedade, OtherMontilos medianiguiente ejem
ls</font></h
t><p>
clase base Sde estilo, comoles Web dementos indivdes de accesonthDayStylete la sintaxismplo.
���� )?
h3>
tyle quemo TableStyservidor danviduales deo como: Dayy NextPrevSs de subprop
?�� �����
)
le yn
yStyle,Style.piedad
�
www.depurando.com 316
<%@ P
<html<body
<fo
Page Languag
l>y>
orm id "Form
<h3><font
<p><font f
<ASP:Calen
BackCForeCBordeBordeBordeHeighWidthFontFontFontCellSCellPShowG
TitleTitleTitleTitle
ge "C#" %>
m1" runat "s
face "verda
face "verdan
ndar ID "Cal
Color "BeigeColor "BrownerWidth "3"erStyle "SolerColor "Blaht "450"h "450"Size "12pt"Names "TahomUnderline "pacing 2
Padding 2GridLines tr
eStyle BordeeStyle BordeeStyle BackCeStyle Heigh
erver">
na">Applying
a"><h4>Style
endar1" runa
""
id"ck"
ma,Arial"false"
ue
rColor "darkrWidth "3"olor "olivedt "50px"
g Styles to
e Sub Proper
at "server"
kolivegreen"
drab"
Web Control
rties</h4></
"
ls</font></h
/font><p>
���� )?
h3>
?�� �����
*
�
www.depurando.com 317
<
</bod</htm
Una selem
<ASP:<
</ASP
<%@ P
<html<body
<fo
BackC
BackC
DayHeDayHeDayHeDayHeDayHe
DayStDaySt
Today
WeekEWeekEWeekE
SelecSelec
OtherOther
/>
</form>
dy>ml>
sintaxis ligerento hijo, an
Calendar ..<TitleStyle Back
P:Calendar>
Page Languag
l>y>
orm id "Form
<h3><font
<p><font f
<ASP:Calen
BackCForeCBordeBordeBordeHeighWidthFontFontFontCellSCellPShowG
>
<TitlColor "olive
<DayHColor "olive
<Week
<DayS
eaderStyle BeaderStyle BeaderStyle BeaderStyle FeaderStyle H
tyle Width "tyle Height
yDayStyle Bo
EndDayStyleEndDayStyle WEndDayStyle
ctedDayStylectedDayStyle
rMonthDayStyrMonthDaySty
amente difenidado dentr
. runat "seBorderColor
kColor "oliv
ge "C#" %>
m1" runat "s
face "verda
face "verdan
ndar id "MyC
Color "BeigeColor "BrownerWidth "3"erStyle "SolerColor "Blaht "450"h "450"Size "12pt"Names "TahomUnderline "pacing 2
Padding 2GridLines tr
eStyle Bordedrab" Heigh
HeaderStyleedrab" ForeC
kEndDayStyle
tyle Width
orderColor "orderWidth "ackColor "oloreColor "bleight "20px"
50px""50px"
rderWidth "3
BackColor "pWidth "50px"Height "50px
BorderColorBorderWidth
le Width "50le Height "5
rente permitro de las etiq
rver">"darkoliveg
edrab" Heigh
erver">
na">Applying
a"><h4>Style
alendar" run
""
id"ck"
ma,Arial"false"
ue
erColor "dart "50px" />
BorderColorolor "black"
BackColor "
"50px" Heigh
"darkolivegr"3"livedrab"lack""
3"
palegoldenro"x"
r "firebrickh "3"
0px"50px"
te declarar cquetas del co
green" Bordeht "50px" />
g Styles to
e Sub Proper
nat "server"
rkolivegreen
"darkoliveg" Height "20
"palegoldenr
ht "50px" />
reen"
od"
k"
cada propiedontrol Web d
erWidth "3">
Web Control
rties</h4></
"
n" BorderWid
green" Borde0px" />
rod" Width "
>
dad de Style ce servidor.
ls</font></h
/font><p>
dth "3"
erWidth "3"
"50px" Heigh
���� )?
como un
h3>
ht "50px" />
?�� �����
�
www.depurando.com 318
<
</bod</htm
De lacontrperm
<%@ P
<html<head
<st.
</s
</hea<body
<fo
<Toda
<Sele
<Othe
</ASP:Cal
</form>
dy>ml>
misma formroles Web demite el acceso
Page Languag
l>d>
tyle>calstyle {
style>
ad>y>
orm id "Form
<h3><font
<p><font f
<ASP:Calen
BackCForeCBordeBordeBordeHeighWidthCellSCellPShowG
TitleTitleTitleTitle
DayHeDayHeDayHeDayHeDayHe
DayStDaySt
Today
WeekEWeekEWeekE
SelecSelec
OtherOther
ayDayStyle B
ectedDayStyl
erMonthDaySt
endar>
ma que con loe servidor meo a una prop
ge "C#" %>
font size:1
m1" runat "s
face "verda
face "verdan
ndar ID "Cal
Color "BeigeColor "BrownerWidth "3"erStyle "SolerColor "Blaht "450"h "450"pacing 2
Padding 2GridLines tr
eStyle BordeeStyle BordeeStyle BackCeStyle Heigh
eaderStyle BeaderStyle BeaderStyle BeaderStyle FeaderStyle H
tyle Width "tyle Height
yDayStyle Bo
EndDayStyleEndDayStyle WEndDayStyle
ctedDayStylectedDayStyle
rMonthDayStyrMonthDaySty
orderWidth "
e BorderColo
yle Width "5
os controlesediante unaiedad String
2pt; font fa
erver">
na">Applying
a"><h4>The C
endar1" CssC
""
id"ck"
ue
rColor "darkrWidth "3"olor "olivedt "50px"
orderColor "orderWidth "ackColor "oloreColor "bleight "20px"
50px""50px"
rderWidth "3
BackColor "pWidth "50px"Height "50px
BorderColorBorderWidth
le Width "50le Height "5
"3" />
or "firebric
50px" Height
HTML de sedefinición dllamada Css
amily:Tahoma
g Styles to
CssClass Pro
Class "calst
kolivegreen"
drab"
"darkolivegr"3"livedrab"lack""
3"
palegoldenro"x"
r "firebrickh "3"
0px"50px"
ck" BorderWi
t "50px" />
rvidor, podee clase CSS.sClass para e
a,Arial; }
Web Control
operty</h4><
tyle" runat
"
reen"
od"
k"
idth "3" />
mos aplicarLa clase basestablecer la
ls</font></h
</font><p>
"server"
���� )?
estilos aeWebContrclase estilo.
h3>
?�� �����
�
ol
�
www.depurando.com 319
<
</bod</htm
Si sefuertcontren elde esusarla repes esen el
<%@ P
<html
<head
<st
.
</s
</hea
<body
<fo
weigh
/>
</form>
dy>ml>
establece unemente tiparol. Por defecHTML devuestilo y clase slas propiedapresentaciónpecialmentesiguiente eje
Page Languag
l>
d>
tyle>
beige { bac
style>
ad>
y>
orm id "Form
<h3><font
<p><font f
<table sty<tr>
<td><b<td><A
ht:700;"/></</tr><tr>
<td><b
n atributo enda del contrcto, los contelto al navegse pueden esdes fuertemn real del cone útil para losemplo.
ge "C#" %>
ckground col
m1" runat "s
face "verda
face "verdan
yle "font: 1
b>Login: </bASP:TextBoxtd>
b>Password:
n un control dol, el atributroles de servgador clientestablecer diremente tipadasntrol, tambiés controles d
or:beige }
erver">
na">Applying
a"><h4>Expan
0pt verdana;
></td>ID "TextBox1
</b></td>
de servidor qto y el valor svidor represee que los hayectamente es. Mientras qén puede serde entrada de
g Styles to
ndo CSS Styl
; background
1" runat "se
que no correse rellenan eentarán estoya pedido. Esen controlesque esto reqr una forma fe formulario
Web Control
les</h4></fo
d color:tan"
erver" class
esponda a unen el grupo Aos atributos ssto significa qWeb de servuiere algo deflexible de apestándares
ls</font></h
ont><p>
" cellspacin
s "beige" st
���� )?
na propiedadAttributes desin modificarque los atribvidor, en lugae comprensiplicar estiloscómo verem
h3>
ng 15>
tyle "font
?�� �����
�
dlrlosutosar deón de. Estomos
�
www.depurando.com 320
class
<
</bod</htm
Los eel mé
<%@ P<%@ I
<html
<head
<st
.
</s
</hea
<scri
v
}
</scr
<body
<fo
weigh
<td><As "beige"/><
</tr><tr>
<td><b<td>
<ASP
</AS</td>
</tr><tr>
<td>&n<td><A
</tr></table>
</form>
dy>ml>
stilos de losétodo ApplyS
Page LanguagImport Names
l>
d>
tyle>
beige { bac
style>
ad>
ipt language
void Page Lo
System.W style.Bo style.Bo style.Bo
MyLogin. MyPasswo MySubmit
}
ript>
y>
orm id "Form
<h3><font
<p><font f
<table sty<tr>
<td><b<td><A
ht:700;"/></</tr><tr>
<td><b
ASP:TextBox</td>
b>Select a V
P:DropDownLi<ASP:ListIt<ASP:ListIt<ASP:ListItP:DropDownL
nbsp;</td>ASP:Button I
controles WStyle de la cl
ge "C#" %> pace "System
ckground col
e "C#" runat
oad(Object S
Web.UI.WebCoorderColor orderStyle orderWidth
ApplyStyleord.ApplyStyt.ApplyStyle
m1" runat "s
face "verda
face "verdan
yle "font: 1
b>Login: </bASP:TextBoxtd>
b>Password:
ID "TextBox2
iew: </b></t
st ID "DropDem>Default Dem>My Stock em>My Contacist>
D "Button1"
Web de servidlase baseWe
m.Drawing" %
or:beige }
"server">
rc, EventArg
ntrols.StyleColor.BlackBorderStyle1;
(style);le (style);(style);
erver">
na">Applying
a"><h4>Apply
0pt verdana;
></td>id "MyLogin"
</b></td>
2" TextMode
td>
DownList1" cDesktop</ASPPortfolio</
ct List</ASP
Text "Submi
dor se puedeebControl, có
%>
gs E ) {
e style nek;e.Dashed;
g Styles to
ying Styles
; background
" runat "ser
"Password"
class "beigeP:ListItem>/ASP:ListIteP:ListItem>
it" runat "s
en establecerómo vemos
ew System.We
Web Control
Programmati
d color:tan"
rver" class
runat "serv
e" runat "se
em>
server" clas
r mediante cen el siguien
eb.UI.WebCon
ls</font></h
ically</h4><
" cellspacin
"beige" sty
���� )?
ver"
erver">
s "beige"/>
código utilizante código
ntrols.Style
h3>
</font><p>
ng 15>
yle "font
?�� �����
�
</td>
ando
();
�
www.depurando.com 321
class
class
<
</bod</htm
UsaEn lapropi
<td><As "beige"/><
</tr><tr>
<td><b<td>
<ASP
</AS</td>
</tr><tr>
<td>&n<td><A
s "beige"/><</tr>
</table>
</form>
dy>ml>
ar Temassección anteiedades de lo
ASP:TextBox</td>
b>Select a V
P:DropDownLi<ASP:ListIt<ASP:ListIt<ASP:ListItP:DropDownL
nbsp;</td>ASP:Button i</td>
para pererior vimos vos estilos en
id "MyPasswo
iew: </b></t
st id "MySelem>Default Dem>My Stock em>My Contacist>
d "MySubmit"
rsonalizavarias formaslos propios
ord" TextMod
td>
lect" classDesktop</ASPPortfolio</
ct List</ASP
" Text "Subm
ar un sitis de especificontroles. Po
de "Password
"beige" runP:ListItem>/ASP:ListIteP:ListItem>
mit" runat "
ocar estilos aor ejemplo, c
d" runat "se
nat "server"
em>
"server"
los controleconsideremo
���� )?
erver"
>
s fijando lasos la siguient
?�� �����
�
te
�
www.depurando.com 322
págin
<%@ P<!DOC"http<html<head
na, qué tiene
Page LanguagCTYPE html Pp://www.w3.ol xmlns "httd id "Head1"
e varios ajust
ge "C#" %> PUBLIC " //Worg/TR/xhtmltp://www.w3.
runat "serv
tes del estilo
3C//DTD XHTM1/DTD/xhtml1org/1999/xhtver">
aplicados a
ML 1.0 Trans1 transitiontml">
los controle
sitional//ENnal.dtd">
s individuale
N"
���� )?
es de la págin
?�� �����
�na.
�
www.depurando.com 323
<ti</hea<body
<fo<
ForeC
ForeC
ForeC
CellS
ID "C
Heigh
Size
DataS
Width
SortE
SortE
SortE
ID "S
FROM
<</f
</bod</htm
Ademcualede fodiseñpáginfuent
itle>Page wiad>y>orm id "form<div>
<h3> Page wit<asp:Label
Color "orang<asp:Label
Color "orang<asp:Label
Color "orang<br />
This is so<br /><asp:Calen
Spacing "1"Font Nam
Calendar1"NextPrev<Selecte<OtherMo<TodayDa<DayStyl<NextPre<DayHead
ht "8pt" /><TitleSt
"12pt"ForeCo
</asp:Cale<br /><asp:GridV
SourceID "SqForeColo
h "461px"><FooterS<Columns
<asp:BExpression "
<asp:BExpression "
<asp:BExpression "
<asp:B</Column<RowStyl<PagerSt<Selecte<HeaderS<EditRow<Alterna
</asp:Grid<asp:SqlDa
SqlDataSourcrunat "s
[authors]"></asp:SqlD
</div>form>dy>ml>
más de especes nos ofrecerma separadñar un sitio sinas o el códigte externa pa
th No Theme
m1" runat "s
th No Theme AID "Label1
ge" /><br />ID "Label2
ge" /><br />ID "Label3
ge" /><br />
ome example
ndar BackCol
mes "Verdana
vFormat "ShoedDayStyle BonthDayStyleayStyle Backe BackColor
evStyle FontderStyle Fon
tyle BackCol
olor "White"endar>
View AutoGenqlDataSourceor "#333333"
tyle BackCo>
BoundField Dau id" />
BoundField Dau lname" /
BoundField Dau fname" /
BoundField Dns>e BackColor
tyle BackColedRowStyle Btyle BackCo
wStyle BackCatingRowStyldView>ataSource Coce1"erver" Sele
>DataSource>
cificar estilosen una maneda a las páginin preocupargo de la aplicara aplicar aj
Applied</ti
erver">
Applied</h3>" runat "ser
" runat "ser
" runat "ser
text: The qu
or "White" B
" Font Size
rtMonth" runackColor "#3ForeColor "
Color "#9999"#CCCCCC" /Bold "True"
t Bold "True
or "#333399"
Height "12p
erateColumns1"GridLines "
lor "#1C5E55
ataField "au
ataField "au>ataField "au>ataField "st
"#E3EAEB" /or "#666666"ackColor "#Clor "#1C5E55olor "#7C6F5e BackColor
nnectionStri
ctCommand "S
s en controlera fácil de denas de nuestrte por el estcación. Tambjustes estilíst
itle>
>rver" Text "
rver" Text "
rver" Text "
uick brown f
BorderColor
"9pt" ForeC
nat "server"333399" Fore"#999999" />999" ForeCol/>" Font Sizee" Font Size
" BorderStyl
pt" />
s "False" Ce
"None" ID "G
5" Font Bold
u id" Header
u lname" Hea
u fname" Hea
tate" Header
/>" ForeColorC5BBAF" Font5" Font Bold57" />"White" />
ing "<%$ Con
SELECT [au i
es individualeefinir estilostra aplicacióntilo y aplicarlbién puedesticos a tu ap
"Hello 1" Fo
"Hello 2" Fo
"Hello 3" Fo
fox jumped o
"Black" Bor
Color "Black
" Width "330eColor "Whit>lor "White"
"8pt" ForeCe "8pt" Fore
le "Solid" F
ellPadding "
GridView1" r
d "True" For
rText "au id
aderText "au
aderText "au
rText "state
"White" Hort Bold "Trued "True" For
nnectionStri
id], [au lna
es, ASP.NET 2para contron. El beneficilo más tardeobtener temlicación. Otr
ont Bold "tr
ont Bold "tr
ont Bold "tr
over the laz
rderStyle "S
k" Height "2
0px">te" />
/>
Color "WhiteeColor "#333
Font Bold "T
"4" DataKeyN
runat "serve
reColor "Whi
d" ReadOnly
u lname"
u fname"
e" SortExpre
rizontalAlige" ForeColorreColor "Whi
ings:Pubs %>
ame], [au fn
2.0 introducles y páginaso de los Teme sin tener qumas personalo beneficio e
���� )?
rue"
rue"
rue"
y dog.<br /
olid"
50px"
e" />333"
True" Font
Names "au id
er"
te" />
"True"
ession "stat
gn "Center"r "#333333"te" />
>"
name], [stat
e Temas, loss de nuestromas es que pue actualizarizados de unes que los aj
?�� �����
!
>
"
e" />
/>/>
e]
ssitio,uedeslas
naustes
�
www.depurando.com 324
de esindep
El sigde esinformen la
Them<%@ P<!DOC"http<html<head
<ti</hea<body
<fo<
DataS
SortE
SortE
SortE
ID "S
FROM
<</f
</bod</htm
Exam<asp:
<asp:FonNex<Se<Ot
stilo estan almpendiente de
uiente ejemstilo para el cmación de epágina en ti
me cs.aspxPage LanguagCTYPE html Pp://www.w3.ol xmlns "httd id "Head1"itle>Page wiad>y>orm id "form<div>
<h3> Page wit<asp:Label<asp:Label<asp:Label<br />
This is so<br /><asp:Calen<br /><asp:GridV
SourceID "SqDataKeyN<Columns
<asp:BExpression "
<asp:BExpression "
<asp:BExpression "
<asp:B</Column
</asp:Grid<asp:SqlDa
SqlDataSourcrunat "s
[authors]"></asp:SqlD
</div>form>dy>ml>
mpleSkin.skLabel Font
Calendar Bant Names "VextPrevFormatelectedDaySttherMonthDay
macenados ee la aplicació
plo muestracontrol. Obsestilo. El temaempo de eje
ge "C#" ThemPUBLIC " //Worg/TR/xhtmltp://www.w3.
runat "servth Example
m1" runat "s
th Example TID "Label1ID "Label2ID "Label3
ome example
ndar ID "Cal
View ID "GriqlDataSourceNames "au id>
BoundField Dau id" />
BoundField Dau lname" /
BoundField Dau fname" /
BoundField Dns>dView>ataSource Coce1"erver" Sele
>DataSource>
kinBold "true"
ackColor "Wherdana" Fontt "ShortMonttyle BackColyStyle ForeC
en una únicaón a la que se
la misma páervad que laa aplica autoecución.
e "ExampleTh3C//DTD XHTM1/DTD/xhtml1org/1999/xhtver">Theme Applie
erver">
heme Applied" runat "ser" runat "ser" runat "ser
text: The qu
endar1" runa
dView1" Auto1"" runat "ser
ataField "au
ataField "au>ataField "au>ataField "st
nnectionStri
ctCommand "S
ForeColor "
ite" BorderCSize "9pt"
h" Width "33or "#333399"olor "#99999
a ubicación ye le aplica el
ágina con unpágina en sí
omáticament
heme" %> ML 1.0 Trans1 transitiontml">
ed</title>
d</h3>rver" Text "rver" Text "rver" Text "
uick brown f
at "server"/
oGenerateCol
rver">
u id" Header
u lname" Hea
u fname" Hea
tate" Header
ing "<%$ Con
SELECT [au i
"orange" run
Color "BlackForeColor "
30px" runat" ForeColor99" />
pueden serTema.
tema aplicaí mismo no nte las propied
sitional//ENnal.dtd">
"Hello 1" />"Hello 2" />"Hello 3" />
fox jumped o
/>
lumns "False
rText "au id
aderText "au
aderText "au
rText "state
nnectionStri
id], [au lna
nat "server"
k" BorderSty"Black" Heig"server">"White" />
mantenidos
do para espenecesita contdades de est
N"
><br />><br />><br />
over the laz
e"
d" ReadOnly
u lname"
u fname"
e" SortExpre
ings:Pubs %>
ame], [au fn
" />
yle "Solid"ght "250px"
���� )?
s de forma
ecificar los atener ninguntilo a los con
y dog.<br /
"True"
ession "stat
>"
name], [stat
CellSpacing
?�� �����
"
justesnatroles
>
e" />
e]
"1"
�
www.depurando.com 325
<To<Da<Ne<Da<Ti
F</asp
<asp:For<Fo<Ro<Pa<Se<He<Ed<Al
</asp
La caLos teconsiSkin,paraApp_tiene
ObsedefinconteLas pde laPor erunaten pápropipara
TemUn teglobadirectanterASP.N%WIN
odayDayStyleayStyle BackextPrevStyleayHeaderStylitleStyle BaForeColor "Wp:Calendar>
GridView CereColor "#33ooterStyle BowStyle BackagerStyle BaelectedRowSteaderStyle BditRowStylelternatingRop:GridView>
arpeta Appemas residenste en un sucon extensióficheros está_Themes conun sólo fich
rvad en el ejiciones de coener varias dropiedades dpropiedad lo
ejemplo, unat="server"/>áginas con eliedad se sobuna definició
as Globalesema puede real para todastorio App_Thriormente. LoNETClientFileNDIR%\Micr
e BackColorkColor "#CCCe Font Bolde Font Bold
ackColor "#3White" Heigh
ellPadding "3333" GridL
BackColor "#kColor "#E3EAackColor "#6tyle BackColBackColor "#BackColor "
owStyle Back
Themesn en la carpebdirectorio bón .skin. Uáticos, por ejn dos temas dero skin y un
jemplo previontrol, tal y cdefiniciones dde controlesocal de un codefinición dque se encul Tema aplicabreescribirá.ón de contro
s y de Aplicesidir en uns las aplicaciohemes bajoos temas gloes, bajo el dirosoft.NET
"#999999" FoCCC" />"True" Font"True" Font
33399" Bordet "12pt" />
4"ines "None"1C5E55" FontAEB" />66666" ForeCor "#C5BBAF"1C5E55" Font#7C6F57" />Color "White
eta App_Thebajo esta carUn tema puedjemplo imágdefinidos, llano CSS.
io que los cocomo ellas dde control, ps definidas enontrol del mde un controuentre en unado utilizaránObservad quol en un fiche
caciónnivel de apliones). Los teel directorioobales se colorectorio de iT\Framewor
oreColor "Wh
Size "8pt"t Size "8pt"erStyle "Sol
Width "461pt Bold "True
Color "White" Font Boldt Bold "True
e" />
mes, directarpeta que code contenergenes. La siguamados "Def
ontenidos dedeben aparecpor ejemplo un el tema sobismo tipo enl del tipo <asfichero skinn la fuente Vue es un erroero de skin.
cación o enmas de niveraíz de la apocan en el dnstalación drk\<versio
hite" />
ForeColor "" ForeColorlid" Font Bo
px" runat "se" ForeColor
e" Horizonta"True" Fore
e" ForeColor
amente bajoontiene un grtambién unuiente figurafault" y "Whi
un fichero scer en la páguna definicióbreescribenn la página ensp:Calendarcausará que
Verdana. Unor especificar
un nivel máql de aplicacióplicación, comirectorio "The ASP.NET, pon>\ASP.NE
"White" />"#333333" H
old "True" F
server">r "White" />
alAlign "CeneColor "#333r "White" />
el directoriorupo de unofichero CSS
a muestra elte", cada un
skin son simpgina. Un ficheón por cada tautomáticamn la que aplicFont�Name=e todos los cvalor locar pr un valor de
quina (accesón se encuenmo se ha deshemes", bajopor ejemploETClientFi
���� )?
Height "8pt"Font Size "1
>
nter" />333" />
>
o raíz. Un temo mas fichery/o subdirecdirectorioo de los cua
plementeero de skin ptipo de contrmente los vacamos el tem="Verdana"ontroles Calepara dichae ID de propi
ible de formntran en elscritoo una carpeta
iles\Theme
?�� �����
)/>
2pt"
marosctorio
les
puederol.loresma.
endar
edad
a
a
es.
�
www.depurando.com 326
La ubInet
AsignSe puThem
carpeaplicaestilo
AsignTambespecen unun sttendrconti
<?xml
<conf<
<</con
DeshUn coel est
SkinPor dmismmismpodríen ot
Podela crepordeestabEn aufijada
bicación de lotpub\wwwro
nando un teuede asignarme="..." %
eta bajo el diado, pero eno a los contro
nando un tebién podemocificandolo ena página paring vacío (""remos que enuación).
l version "1
figuration x<system.web>
<pages the</system.webnfiguration>
habilitar Teontrol espectablecimient
ns identidefecto, la demo tipo en lasmo tipo tengaíamos queretra. Podemos
mos definireación de defemos estableblecer este musencia de laa). El siguient
os temas glooot\aspnet
ema a una pun tema a u
%> al nombrirectorio Then dicho temaoles de la pág
ema en conos definir el ten la secciónrticular pode"). Observadstablecer el
.0"?>
xmlns "http:>eme "Exampleb>>
emas para uífico puede so de la prop
ficados eefinición de us páginas dean aparienciaer que el texts hacer esto
diferentes efiniciones seecer diferentmismo SkinIDpropiedad Ste ejemplo m
bales para lot_client\s
páginauna página inre del Tema demes o App_pueden habgina.
nfigtema aplicad<pages th
emos establed que una matema en pág
//schemas.mi
Theme"/>
un controlser excluidoiedad Enable
en un Temun control enla aplicaciónas diferentesto de un contmediante sk
stilos para coeparadas deltes propiedaD en los contrSkinID, se apmuestra difer
os sition websystem_web
ndividual estde nivel glob_Themes). Unber varios fic
do para todasheme="..."
ecer el atribuaster page noginas de cont
icrosoft.com
de tener queeTheming a
man un ficheron. Sin embargs en distintastrol Label apkins identifica
ontroles delcontrol. En lades SkinID aroles de las plica el skin prentes skins
b de IIS esb\<version
ableciendo lbal o de aplicna página puheros skin p
s las páginas"/> de Web�uto Theme do puede tenetenido o en l
m/.NetConfig
e sobreescribfalse.
de skin se apgo, podemoss partes de laparezca en neados en un t
mismo tipolas definiciona nombres depáginas que tor defecto (upara los con
n>\Themes.
a directiva <cación (el nomuede tener sóara aplicar c
s de la aplica�config. Parade la directivaer un tema ala configurac
guration/v2.
bir sus propi
plica a todoss querer quea aplicación.egrita en unatema.
en un fichernes de los coe nuestra eletendrán dichuno sin la prntroles Label
���� )?
.
<%@ Page
mbre de laólo un temaonfiguracion
ciónquitar estea de la páginaplicado;ción (descrito
0">
edades med
s los controlee los controlePor ejemploa parte y en
o skin mediaontrolesección, y desho skin aplicaopiedad Skiny Calendar.
?�� �����
�*
nes de
temana a
o a
iante
es deles delo,italic
ante
spuésado.nID
�
www.depurando.com 327
Obseestilo
Nam<%@ P<!DOC"http
<html<head
<ti</hea<body
<fo<<
rvad que a loos diferente a
medSkin cs.aPage LanguagCTYPE html Pp://www.w3.o
l xmlns "httd id "Head1"itle>Named Sad>y>orm id "form<div><h3>Named Sk
os controlesal skin por de
aspxge "C#" ThemPUBLIC " //Worg/TR/xhtml
tp://www.w3.runat "serv
kins</title
m1" runat "s
kins</h3>
de una págiefecto.
e "OrangeThe3C//DTD XHTM1/DTD/xhtml1
org/1999/xhtver">>
erver">
na con un Sk
eme2" %> ML 1.0 Trans1 transition
tml">
kinID estable
sitional//ENnal.dtd">
ecido se les a
N"
���� )?
aplica un gru
?�� �����
� po de
�
www.depurando.com 328
<</f
</bod</htm
Labe
<asp:<asp:
Calen<asp:DayNaHeigh
<Se<Se<Ot<To<Ne<Da<Ti
/></asp
<asp:CellPForeC
<Se<Se<We<Ot<To<Ne<Da<Ti
</asp
Los skde loskinslas deskin e
/Web/App/MDeReBl
Alterque c
<asp:Label<asp:Label<asp:Label<br /><asp:Calen<br /><asp:Calen
</div>form>dy>ml>
el.skin
label runatlabel runat
ndar.skinCalendar ru
ameFormat "Fht "200px" SelectedDayStelectorStyletherMonthDayodayDayStyleextPrevStyleayHeaderStylitleStyle Ba
p:Calendar>
Calendar SkPadding "4"Color "BlackelectedDayStelectorStyleeekendDayStytherMonthDayodayDayStyleextPrevStyleayHeaderStylitleStyle Bap:Calendar>
kins identifics temas. Debidentificadoefiniciones den un Tema,
bSite1p_Themes
MyThemeefault.skined.skinlue.skin
nativamentecada skin con
ID "Label1ID "Label2ID "Label3
ndar ID "Cal
ndar ID "Cal
t "server" ft "server" S
unat "serverFirstLetter"howGridLine
tyle BackCole BackColoryStyle ForeCe BackColore Font Sizee BackColor
ackColor "#9
kinID "SimplDayNameForm
k" Height "1tyle BackCole BackColoryle BackColoyStyle ForeCe BackColore VerticalAle BackColor
ackColor "#9
cados se puebido a que uos en diferene controles ccada uno no
e podríamosntendría un c
" runat "ser" runat "ser" runat "ser
endar1" runa
endar2" Skin
ont bold "trkinID "Blue"
" BackColorFont Names
s "True" Widor "#CCCCFF""#FFCC66" />olor "#CC996"#FFCC66" Fo"9pt" ForeCo"#FFCC66" F
90000" Font
e" runat "seat "FirstLet80px" Widthor "#666666""#CCCCCC" />r "#FFFFCC"olor "#80808"#CCCCCC" Foign "Bottom""#CCCCCC" F
99999" Borde
eden organizan tema puedtes ficheros,con el mismoombrado seg
agrupar losconjunto de
rver" Text "rver" Text "rver" Text "
at "server"/
nID "Simple"
rue" forecol" font bold
"#FFFFCC" B"Verdana" F
dth "220px">" Font Bold>66" />oreColor "Wholor "#FFFFCFont Bold "TBold "True"
erver" BackCtter" Font N"200px">
" Font Bold>/>
80" />oreColor "Bl" />Font Bold "TerColor "Bla
ar de diferende contener v, de forma quo SkinID. Porgún el valor d
ficheros de cdefiniciones
"Hello 1" />"Hello 2" Sk"Hello 3" />
/>
" runat "ser
lor "orange""true" fore
BorderColorFont Size "8>"True" />
hite" />CC" />True" Height" Font Size
Color "WhiteNames "Verda
"True" Fore
lack" />
True" Font Sack" Font Bo
ntes formas dvarios ficherue cada unor ejemplo, pode SkinID:
control segús de skin para
><br />kinID "Blue"><br />
rver"/>
" />ecolor "blue
"#FFCC66" B8pt" ForeCol
t "1px" />"9pt" ForeC
e" BorderColana" Font Si
eColor "Whit
Size "7pt" /old "True" /
dentro de loros de skin dede estos fichodemor tene
n el tipo de ca un control
���� )?
/><br />
e" />
BorderWidthor "#663399
Color "#FFFF
or "#999999ze "8pt"
te" />
>>
s ficheros deebemos diviheros contener tres ficher
control, de fparticular:
?�� �����
��
"1px""
CC"
"
e skindir losngaros de
orma
�
www.depurando.com 329
/Web/App/MGCaLa
Podeejem
/Web/App/MHoDaFo
La poflexibskinsde sk
EstiUn Tedespuaplicadesarsitio.en lade ap
Por ocompdefinTemaservidTemapropidefin
bSite1p_Themes
MyThemeridView.skinalendar.skinabel.skin
mos inclusoplo:
bSite1p_Themes
MyThemeomePage.skataReports.sorums.skin
osibilidad debilidad de orgcon otros o
kin de un Tem
ilos del laema está desués de que eación no tienrrolladores dCuando se adefinición dplicación.
otro lado, esportamientoir los estilosas para estedor. Cuandoa estableceniedades puedición del Tem
dividir estos
inskin
tener variosganización. Acopiar las dema.
ado del sstinado a serel sitio ya estne porque sede aplicaciónaplica un Temel Tema sob
algo comúnde servidorde control ypropósito, alo aplicamoel valor porden establecma.
s ficheros de
s ficheros deAdemás nosefiniciones d
ervidor ur aplicado a uté hospedadoer la misma qn y diseñadorma a una aplreescriben lo
entre los depor separady de marcadoplicando el Ts de esta fordefecto paracerse tambié
skin basánd
skins en unpermite comde un tema a
utilizanduna aplicacióo en un servque la desarrres del web sicación, las pos valores de
sarrolladoredo. Un ejempo en un ficheTema como urma, las propa los controlén en la págin
donos en las
mismo direcmpartir fácilmotro sin ten
do Temasón después didor. La persrolló. Por ejesite trabajanpropiedadese los controle
es factorizar iplo de esto esero separadouna especiepiedades de ees de la aplicna de contro
áreas de nue
ctorio Thememente las defer que edita
sde haberla crsona que aplemplo, es comdo en diferede estilo ques de destino
informacións la utilizacióo. También pde hoja de eestilo en la dcación, perool para sobre
���� )?
estro sitio, p
e nos da estafiniciones der otros fiche
reado, inclusica el tema amún tenerentes aspectoe se encuento en las pági
estilística yón de CSS paodemos utiliestilos del laddefinición deestas
eescribir la
?�� �����
��
or
aeeros
soa la
os deltrannas
elraizardo del
�
www.depurando.com 330
EstiCuansecciómismcon spropisobre
Them<%@ P<!DOC"http
<html<head
<ti</hea<body
<fo<<
<</f
</bod</htm
Labe<asp:
Una datribual noTemaTemaForeC
los Declado aplicamoón <pages/>
mo nombre dsu propiedadiedad ForeCoe la propieda
meOverridePage LanguagCTYPE html Pp://www.w3.o
l xmlns "httd id "Head1"itle>Theme Oad>y>orm id "form<div><h3>Properti
<asp:Label<asp:Label< Not<br /><asp:Label
</div>form>dy>ml>
el.skinlabel runat
definición deuto StyleShembre del Tema pueden sera del ejemploColor definid
ratiovs deos un tema es> de configure los controld ForeColor folor a naranjad local del c
e cs.aspxge "VB" ThemPUBLIC " //Worg/TR/xhtml
tp://www.w3.runat "serv
Overrides Pa
m1" runat "s
es in the PID "Label1ID "Label2
tice that th
ID "Label3
t "server" f
e Tema se pueetTheme dema. Cuandor sobreescrito anterior apda en la págin
el lado destableciendoación, las prles destino dijada a azul.ja. Observadcontrol, y tod
e "OrangeThe3C//DTD XHTM1/DTD/xhtml1
org/1999/xhtver">ge Propertie
erver">
age are Over" runat "ser" runat "seris Label is
" runat "ser
ont bold "tr
uede aplicare la directivase aplica meas por los coplicado comona gana fren
el servidoo el atributoopiedades dde la página.En el tema a
d al ejecutar ldos los Label
eme" %> ML 1.0 Trans1 transition
tml">
es</title>
rridden By Trver" Text "rver" Text "orange (fro
rver" Text "
rue" forecol
como un est@Page o deediante un Stontroles de lao un StyleShete la definici
rTheme de lae skins del teEl siguienteaplicado, el sla página ques se represe
sitional//ENnal.dtd">
Theme</h3>"Hello 1" />"Hello 2" Foom Theme) in
"Hello 3" />
lor "orange"
tilo del lado de la sección <tyleSheetThea Página. El seetTheme. Oión del Tema
a directiva @ema sobreesejemplo muskin de "Labee la definicióntan naranja
N"
><br />oreColor "blnstead of bl
><br />
" />
de servidor e<pages/> deeme, las prosiguiente ejeObservad quea, de forma q
���� )?
@Page o de lascriben las deuestra un "Lael" define laón del Temaas.
ue" />ue (from Pa
estableciendla configuracpiedades demplo mueste la propiedaque ahora el
?�� �����
��
aelbel"
gana
ge)
do elciónlra elad
�
www.depurando.com 331
contr
PrioUn Staplicamantquereaplicacontr
Las p
Las p
Las pde co
El sig
Them<%@ P<!DOC"http
<html<head
<ti</hea<body
<fo<<
Itali
overr
rol "Label" se
oridad detyleSheetTheación, comotener el comer aplicar Teamos tanto uroles se aplic
ropiedades S
ropiedades d
ropiedades dontrol como
uiente ejem
mesAndStyPage LanguagCTYPE html Pp://www.w3.o
l xmlns "httd id "Head1"itle>Precedead>y>orm id "form<div><h3>Preceden
<asp:Label<asp:Label
ic "false" /< Pag
rides everyw<br />
e representa
Tema y Seme se supomedio paraportamientomas a una apun Tema comcan en el sigu
StyleSheetTh
del Control e
de Tema se aStyleSheetTh
plo muestra
lesheetThege "C#" ThemPUBLIC " //Worg/TR/xhtml
tp://www.w3.runat "serv
ence: Theme
m1" runat "s
nce: Theme OvID "Label1ID "Label2
>ge overrides where
azul.
StyleSheetne que estáfactorizar nuo de la aplicaplicación a lamo un StyleSuiente orden
heme se apli
en la página
aplican en úlheme)
el orden de
emes.aspxe "OrangeThe3C//DTD XHTM1/DTD/xhtml1
org/1999/xhtver">Overrides Pa
erver">
verrides Pag" runat "ser" runat "ser
Font Italic
tPagehecho para suestra información separaa que ya hemheetThemen:
can primero
se aplican (s
ltimo lugar (
prioridad de
eme" StyleShML 1.0 Trans1 transition
tml">
age Override
ge Overridesrver" Text "rver" Text "
c property o
ser aplicadomación de esdo del aspecmos aplicadoa un aplicaci
o
obreescribe
sobreescribie
escrito arriba
heetTheme "Gsitional//ENnal.dtd">
es StyleShee
s StyleSheet"Hello 1" />"Hello 2" Fo
of StyleShee
durante el dstilo en las pácto de la aplicun StyleSheión, las prop
n StyleSheet
endo tanto l
a.
GreenTheme"N"
etTheme</tit
tTheme</h3>><br />oreColor "bl
etTheme, but
���� )?
desarrollo deáginas y asícación. PodeeetTheme. Siiedades de l
tTheme)
as propiedad
%>
tle>
ue" Font
t Theme Fore
?�� �����
��
e la
emos
os
des
Color
�
www.depurando.com 332
<</f
</bod</htm
ConCómode coen unañad
PropLas dpropipropiAñadcontrdatosningúespecacudi
UtiliUna Hsubdiapliqdefin.css
a loselemde la
Style<%@ P<!DOC"http<scri
</scr<html<head
<ti
<asp:Label</div>form>dy>ml>
ntenidoso se ha mostontroles conna aplicaciónir a un ficher
piedadesefiniciones diedades queiedades queiendo una prol por si miss no son temún control. Tcifique lo conid a la docum
izando HoHoja de Estilirectorio deluemos el temido. Podemos. Un Tema pficheros CSSento <headpágina.
esheet.aspxPage LanguagCTYPE html Pp://www.w3.oipt runat "s
ript>l xmlns "httd id "Head1"itle>CSS Sty
ID "Label3
de un Tetrado en las slos valores dn. Esta seccióro de skin o d
Tematizade controlesestán marcapodrían serropiedad qusmo puede smatizables. Poodas las prontrario. Paramentación de
ojas de Esos en CascadTema. La homa, siempreos nombrar epuede contenS (mediante u/>), cualquie
xge "C#" ThemPUBLIC " //Worg/TR/xhtmlerver">
tp://www.w3.runat "serv
ylesheet in
" runat "ser
ema y Skisecciones ande las propieón discute dede Tema.
ablesen un ficheradas como Ttematizadase no es temaer excluido dor defecto, lapiedades sona comprobare referencia
stiloda (CSS) puedoja de estilosque la páginel fichero CSSner múltiplesuna etiquetaer fichero CS
e "MyTheme"3C//DTD XHTM1/DTD/xhtml1
org/1999/xhtver">a Theme</tit
rver" Text "
innteriores, undades que aetalles adicio
ro de skin sóematizabless mediante Tatizable a unde un Tema,a ID de la pron tematizablsi cierta prodel Framew
de ser añadis CSS se aplicna tenga un cS de cualquies ficheros CSa <link reSS del Tema s
%>ML 1.0 Trans1 transition
tml">
tle>
"Hello 3" />
fichero de Splicaremos aonales sobre
lo pueden co. Cada controThemeableAtn fichero de spor ejemploopiedad no ses por defec
opiedad es teork .NET.
do a un Temcará a todascontrol <heaer forma sieSS. Cuando lal="stylesh
se aplicara d
sitional//ENnal.dtd">
><br />
Skin contienea los controlequé es conte
ontener valool define unttribute en lskin produceo los controlese puede temcto a no ser qematizable en
ma colocándolas páginas aad runat="
mpre que tea página contheet" href
espues de la
N"
���� )?
e las definicioes del mismoenido válido
ores paraconjunto dea propiedade un error. Ues de fuentematizar paraque un contrn un control
olo bajo ela las que"server"/>
nga la extentiene referenf="..."/>
as hojas de e
?�� �����
��
oneso tipopara
e.nde
rol,
>
nsiónnciasen elstilo
�
www.depurando.com 333
</hea<body
<fo<
<</f
</bod</htm
Stylebody{
bff
}
Labe<asp:
Asig
<%@ P<!DOC"http<scri
Pro
PEnd
</scr<html<head
<ti</hea<body
<fo<
<</f
</bod</htm
ad>y>orm id "form<div>
<h2> CSS Styl<asp:Label<asp:Label<asp:Label
</div>form>dy>ml>
eSheet.css
background cfont family:font size:sm
el.skinlabel runat
gnando un
Page LanguagCTYPE html Pp://www.w3.oipt runat "s
otected Sub
Page.Themed Sub
ript>l xmlns "httd id "Head1"itle>Assigniad>y>orm id "form<div>
<h2>Assign<a href "p<a href "p
</div>form>dy>ml>
m1" runat "s
esheet in a ID "Label1ID "Label2ID "Label3
color: lightbVerdana;
mall;
t "server" f
n Temam
ge="VB" %>PUBLIC " //Worg/TR/xhtmlerver">
Page PreIni
Server.Htm
tp://www.w3. runat "servng a Theme
m1" runat "s
ning a Theme programmaticprogrammatic
erver">
Theme</h2>" runat "ser" runat "ser" runat "ser
blue;
ont bold "tr
mediante C
3C//DTD XHTM1/DTD/xhtml1
t()
lEncode(Requ
org/1999/xhtver">in Code</tit
erver">
in Code</h2vb.aspx?Thevb.aspx?The
rver" Text "rver" Text "rver" Text "
rue" forecol
Código
ML 1.0 Trans1 transition
uest.QuerySt
tml">
tle>
2>eme ThemeA">eme ThemeB">
"Hello 1" />"Hello 2" />"Hello 3" />
lor "purple"
sitional//ENnal.dtd">
tring("Theme
>Theme A</a>>Theme B</a>
><br />><br />><br />
" />
N"
e"))
>>
���� )??�� �����
�!
�
www.depurando.com 334
AApliicaccio
��
�
Mnecon
���
����
ǿǿǿΦƛƴŀŘŜŎƻΦŎƻƳ
MCsn .N
� )?�
����
CTS:WebNET
3
��
:bT
5
www.depurando.com 335
��
Los eque spermmost
Los e
Los sidinámaparipersoTradidesdeel sernaveg
ASP.Ncrear
IntrEl Co
�
�
��� �
lementos wese ajusten a smiten al usuarrarlo.
lementos we
itios Web momicas y persoencia del coonalizar el cocionalmentee la creaciónrvidor, hastagación.
NET 2.0 inclur páginas con
roducciónnjunto de Co
LosWebPpersonaliservidor o
LasWebPpágina. LaWebPartWebPart
� ���
eb permitensus necesidario escoger q
eb nos perm
odernos reqonalizables.ntenido de laontenido dee, construir en de un códigescribir un s
uye un nuevon diseño mod
n a los Coontroles Elem
Part son conizados con eo control de
PartZone proas WebPartZy para añad.
�����
a los usuarioades y preferqué contenid
miten proporc
uieren frecuLos Usuariosas páginas dla página paresos sitios hago seguro, unscript del lad
o paquete dedular y dinám
ontrolesmentos Web
troles ASP.Nl Conjunto dusuario pue
oporcionan uZone son conir IU comune
�
os cambiar larencias. Mucdo quieren q
cionar esa fu
entemente Is de esos sitioe acuerdo ara mostrar laa requerido dna infraestrudo del cliente
e Elementosmico y con co
Elementincluye los s
NET de servide Controlesede comporta
un modo dentroles contees, consisten
a configurachos proveedue se muest
unción arrast
IUs (Interfacos pueden psus preferena informacióde gran cantiuctura de pere para ofrece
Web que haontenido per
tos Websiguientes co
dor que puedElementos Warse como u
organizar paenedores quentes como un
�
ión de partedores de infore y en qué c
trando “parte
es de Usuariersonalizar encias individun más relevaidad de códigrsonalizacióner una rica ex
acen que searsonalizado.
ontroles:
den ser usadWeb. Cualquin WebPart.
artes dentroe proporcionn Menú Verb
���� )?��
s del sitio paormacióncolumna deb
es” de la pág
o) que seanel diseño y lauales yante.go complejon comprensibxperiencia de
a muy sencill
os yier control d
de regionesnan capas pab y borde a c
�������
�
ara
ben
gina
a
o,ble ene
lo
e
en laara losada
�
www.depurando.com 336
�
�
�
�
�
�
La Zode uscontela res
Un elmienelem
La infpersoelempuedlos elestánespec
Los etodosclaselos edque a
WebContrelem
<asp:
El controcoordinade Contro
CatalogPaelementoinclusión
CatalogZo
Connectiocualquier
EditorParmodificacde usuari
EditorZon
ona es un consuario adicioener múltiplesponsable de
lemento Wetras que unento Web en
fraestructuraonalizado deentos disponen añadir eleementos qundar proporccifican así en
lementos wes los controleabstracta deditores y catáa su vez se he
bPartMarol no visualentos Web.
WebPartMana
lWebPartMla comunicaoles Element
art Es la clasos presentandinámicae n
one Contene
onsZone Conr par de elem
rt Clase baseciones en losio para perm
ne Contened
ntenedor denales a todoes zonas y cae reproducir
b define el celemento edn concreto.
a de los elemelementos pnibles la propementos dine el usuariocionada por en el catálogo
eb son en últes de elemenenominada Pálogos de eleereda de uno
nagerque adminisSólo un Web
ager ID "Web
Managermanación entre latos Web deb
e base paran a los usuarin la página.
edor en el niv
ntenedor enmentos Web
e para todoss elementosmitir a los usu
dor de nivel d
elementos yos los elemenada una de elos elemento
contenido a mditor permite
mentos Webpara mostrarporciona unnámicamenteha eliminadoel sistema. Lode la página
tima instancntos que habPart. Asimismementos weo de los cont
stra los mismbPartManage
PartManager1
neja el estadoas partes y labe tener un c
los controlesos una lista
vel de página
el nivel de pque se encu
los controlesweb. Un eleuarios establ
de página pa
y proporcionntos que conellas puede coos de interfa
mostrar a trae a los usuar
permiten a lrlos en una pcontrol Catae. El catalogoo de la páginos elementoa.
ia controlesbilitan contemo, EditorPab. Todas lastroles de ser
mos elementoer por formu
1" runat "se
o de personaas zonas. Cadcontrol WebP
s de elementde elemento
a para contro
página para lentran en la
s de editor qmento editoecer propied
ra controles
a elementostiene. Una pontener unoaz de usuario
avés de las veios editar la
os usuariospágina y espealogPart. Deo también acna actuandoos eliminados
de servidor.nido utilizadrt y CatalogPclases de elevidor ASP.NE
os en una páulario.
erver"></asp
�
alización de lda página quPartManage
tos de catáloos Web dispo
oles Catalog
as conexionepágina.
que permitenor presenta sdades.
EditorPart
s y funcionalpágina ASP.No o más elemo.
entanas de lestructura y
seleccionar uecificar su poeste modo, lctúa como unsobre la intes se pueden
WebPart esdos en ASP.NPArt son las cementos se hET nativos: P
ágina habilita
p:WebPartMan
���� )?��
las páginas yue usa el paqr.
ogo. Estosonibles para
Part
es definidas
n realizarsu propia inte
idad de interNET puedementos. La zo
a página,los ajustes d
un conjuntoosición. La lislos usuariosn almacén paerfaz de usuarestablecer s
s la clase basET. Deriva dclases basesheredan de PPanel.
ada para
nager>
�������
�yuete
su
entre
erfaz
rfaz
na es
de un
sta de
araariosi se
e dee unaparaPart,
�
www.depurando.com 337
Regiscamby las
El mode ed
Tambpropielem
ZonCadacontrde unpropibarra
EditoCatal
Crea<%@ Pa
<%@ Re<%@ Re
<!DOCT"http
<html<head
<t</head<body>
<f<d
</</
stra el modobio efectuadozonas se rep
odo de presedición no se m
bién permiteiedades y elentos web.
nas de Eletipo de elemroles WebPana coleccióniedades de ea de título) y
orZone se utiogZone se u
ar Páginaage Language=
egister src="Negister src="
TYPE html PUBL://www.w3.org
xmlns="http:runat="servetitle></title>d>>form id="formdiv>
<asp:WebPa</asp:WebPa<asp:WebPa
ID="WebPadding<Empty<PartSt<TitleB<MenuLa<MenuPo
Fon<MenuVe
Fo<PartT
Fo<ZoneTe
<u<u
</ZoneT<MenuVe
Bo<PartCh
Fo<Heade<MenuLa
</asp:Web/div>/form>
de presentao en el modopresentan de
entación pormuestran. Po
e a los usuaricomportami
ementosmento requiert genéricosdenominadaestilo, comoMenuVerbS
liza para contiliza para m
as con el"C#" AutoEven
News.ascx" taFavorites.asc
LIC " //W3C///TR/xhtml1/DT
//www.w3.org/r">>
1" runat="ser
rtManager ID=artManager>rtZone runat=bPartZone1" Bg="6" Width="ZoneTextStyletyle Font SizBarVerbStyleabelHoverStylopupStyle Bacnt Names="VererbStyle BordreColor="WhititleStyle BacreColor="Whitemplate>c2:Favoritesc1:News ID="NTemplate>erbHoverStylerderStyle="SohromeStyle BareColor="#333rStyle Font SabelStyle For
PartZone>
ación de la páo de presente distinta form
defecto es eodemos acce
os mover eleiento de los
ere su propio. Aloja todoa WebParts.PartStyle (eltyle (Elemen
ntener contromostrar el cat
ementostWireup="true
gname="News"x" tagname="F
DTD XHTML 1.0D/xhtml1 tran
1999/xhtml">
ver">
"WebPartManag
"server" HeadorderColor="#358px">Font Size="0e="0.8em" ForFont Size="0.e ForeColor="kColor="#507Cdana" Font SiderColor="#507e" />kColor="#507Ce" />
ID="FavoritesNews1" runat="
BackColor="#lid" BorderWickColor="#EFF333" />ize="0.7em" FeColor="White
ágina y notifación. Segúnma.
el Normal, loeder a la lista
ementos a zocontroles y a
o objeto de zel contenidoEL WebPartestilo del contos de menú
oles de editotalogo de ele
s Webe" CodeFile="W
tagprefix="ucFavorites" tag
0 Transitionalnsitional.dtd"
ger1" runat="s
derText="Esta#CCCCCC" Font
0.8em" />reColor="#33336em" Font Und"#D1DDF1" />CD1" BorderColize="0.6em" />7CD1" BorderSt
CD1" Font Bold
s1" runat="ser"server" />
#EFF3FB" Bordeidth="1px" ForF3FB" BorderCo
ForeColor="#CCe" />
ica a las zonan el modo de
que implicaa de zonas a
onas diferenactiva evento
zona. WebPao de elementtZone nos peontenido), Paú)
or para confiementos Web
WebPart1.aspx
c1" %> gprefix="uc2"
l//EN"">
server">
es la zona #1Names="Verdan
333" />derline="False
lor="#CCCCCC">tyle="Solid" B
d="True" Font
rver" />
erColor="#CCCCreColor="#3333olor="#D1DDF1"
CCCCC" Horizon
�
as y elemente presentació
que las zonatravés de la
tes , editar laos del ciclo d
artZone es eltos Web y losermite definiartTitleStyle
gurar elemeb disponible
.cs" Inherits=
%>
1"na" Height="3
e" ForeColor=
BorderWidth=
BorderWidth="
Size="0.8em"
CCC"333" />" Font Names=
ntalAlign="Cen
���� )?��
tos cualquierón los eleme
as de catalogcolección Zo
a apariencia,de vida de los
contenedors registra a tir algunas(el estilo de
ntos. Ys.
="WebPart1" %
39px"
"White" />
"1px"
1px"
"Verdana"
nter" />
�������
�rentos
go yones.
, lass
r pararavés
la
>
�
www.depurando.com 338
</body</html
EL foreproWebmost
La eti
El con
La fDos f
�
�
y>l>
rmulario conoducción de tcon muchosrar un título
iqueta <Zone
ntenido de c
función dformas de de
Creaciónimplemen
Uno de u
ntiene un contodos los eles estilos y uny un borde a
eTemplate>
ada element
de los conefinir elemen
de un contronte alguna d
n control de
ntrol WebPaementos secpar de elemalrededor de
incluye todo
to Web se m
ntroles dentos Web:
ol de servidode las interfa
e usuario
artManager qundarios. EL
mentos. La zoel contenido
os los elemen
muestra a trav
e usuario
or personalizces necesari
que controlaformulario t
ona de eleme.
ntos web def
vés de un co
o
zado heredadas.
�
la ejecucióntambién conentos Web se
finidos para
ontrol de usu
do de WebPA
���� )?��
n y lantiene una zoe configura p
la zona.
uario (ascx)
Art y que
�������
�
onapara
�
www.depurando.com 339
CroLos V
El “cr
ClasImplepropiusuardiferecontr
ElemPodeun co
A un
Los velem
EditParaDispl
WebP
ModoBrow
Catal
Conn
Desin
Edit
ma, VerbVerbos son la
roma” indica
se WebPaementa las iniedades comrio cuando trencia entre eroles de usua
mentos Wmos utilizarontrol de ser
elemento w
erbos identifento web pu
tar y Listcambiar el mayMOde del
PartManage
owse
log
nect
ng
bos y Menas opciones q
la estructur
artnterfaces: IWmunes de la inrabaja con eescribir elemario.
Web comcontroles invidor en el s
eb podemos
fican accioneuede habilita
tar elememodo de presadministrad
r1.DisplayM
núsque aparecen
ra del titulo y
WebPart, Iwenterfaz de uslementos W
mentos Web a
o controdividuales paegmento <Z
s aplicar estil
es que los usarlos o desha
entos Wesentación tedor de eleme
ode=mode;
n en la lista d
y del borde q
ebActionablesuario utilizaeb. Estas inta través de la
les de seara crear dooneTemplat
los y propied
suarios puedabilitarlos.
ebnemos que aentos Web.
DescLos econteusuadispoTodocon lañaddispoPermWebautoestéPermdentdiferSe melempara
desplegable
que rodea a u
e e IWebEditaadas para meerfaces repra clase base
rvidorcumentos we> de una zo
dades visuale
en ejecutar
asignar un n
ipciónelementos wenido; no serio adicionaonible ningunos los elemena página se mir nuevos eleoniblesmite al usuarexistentes pmáticamentepublicando e
mite al usuariro de la mismentes en la puestran a losentos de edque los usua
�
(Minimizar,
un elemento
able. Estas inejorar la expeesentan la pWebPart o a
eb. Es suficieona de eleme
es.
en los eleme
uevo valor a
eb presentamuestra niny no se encuna funcionalntos de catálmuestran a lementos we
o conectarsepara poder coe en uno cuael otro.o desplazarma zona o a tpágina.s usuarios toición asociadarios modifiq
���� )?��
Cerrar, etc)
o.
nterfaces deferiencia delprincipala través de
ente con coloento Web.
entos Web, c
la propieda
n su propionguna interfauentraidad adicionogo asociados usuariosb de catálog
e a elementoonsumiralquier dato
elementos Wtravés de zo
odos losdos a la páginquen los
�������
�
finen
ocar
cada
d
az de
alosparagos
os
que
Webnas
na
�
www.depurando.com 340
Cuanalred
Los mzona
Crea<%@ C
<scriW
v{
}
p{
}
</scr
<asp:AO
CamUtilizWebP
Al pa
CreaEl conapare
EditoAppe
do se activaedor utilizan
modos Edit, Cde editor o u
ar un conControl Lang
ipt runat "sWebPartManag
void Page Lo{
managerif (!IsP
{
fore {
} }
}
public void{
string s
WebPartDif (mode
man}
ript>
DropDownLisAutoPostBackOnSelectedIn
mbiar el damos una taPartZone.
sar a modo d
ar una zontrol a utilizaece en la pos
orearanceEdito
el modo Desndo arrastrar
Catalog y Conuna zona de
ntrol de uguage "C#" C
erver">ger manager
oad(object s
r WebPartMPostBack)
each (WebPar
if (mode.Is Support
SelectedInd
electedMode
DisplayMode me ! null)nager.Displa
t ID "Suppok "true"ndexChanged
diseño deabla e incorp
diseño, vemo
ona de Edar es EditoZosición exacta
orPart
sign permiter y colocar.
nnect se encconexiones
usuario plassName "Mo
;
ender, Event
anager.GetCu
tDisplayMode
Enabled( manedModes.Item
exChanged(ob
Supported
mode mana
yMode mode
rtedModes" r
"SelectedInd
e las zonaoramos en 2
os como pod
ditorone. La zonaa definida pa
atrib
e a los usuari
uentran disprespectivam
para conmodeSwitcher"
tArgs e)
urrentWebPar
e mode in m
nager))ms.Add(mode.
bject sender
dModes.Selec
ager.Support
e;
runat "serve
dexChanged"
as2 columnas 2
demos move
de Editor sóra ella en la
DescNosanch
utos de elem
os finales m
ponibles sólomente.
mutar m" %>
rtManager(Pa
manager.Supp
.Name);
r, EventArgs
ctedValue;
tedDisplayMo
er"
/>
2 WebPartZo
er los webpar
ólo se muestrpágina.
ripciónpermite editura, el titulo
�
mentos web i
over los elem
o si la página
odos
age);
portedDispla
s e)
odes[selecte
one con 2 ele
rt.
ra en modo d
ar ajustes viso, la dirección
���� )?��
individuales.
mentos web
contiene un
ayModes)
edMode];
ementos en c
de edición y
suales comon del texto y
�������
!.
na
cada
o lael
�
www.depurando.com 341
Beha
Layou
Prope
CreaPerm
EditoDecla
ImpoPage
ConLos co
El mopuntoconsude ele
ElemLas codeclalas ad
EsquVamoWebP
El eleun emID deexpo
viorEditorPa
utEditorPart
ertyGridEdit
ar zona dmite al usuari
orarativeCatalo
orCatalogParCatalogPart
nexión deontroles de u
odelo de cono de conexióumidor. Las cementos We
mentos Webonexiones searativamentedministra el u
uema prinos a aplicar ePArt.
emento provmpleado selee un determirtará el ID de
art
t
torPart
de cataloo añadir elem
ogPart
rt
e Elemenusuarios We
nexión consisón. Una coneconexiones deb.
b que se puee definen dee en el cuerpusuario a tra
ncipal/deel modelo de
eedor se deneccionado. Unado empleael empleado
gomentos en ti
tos Webeb se pueden
ste en 2 entidexión conectadisponibles e
eden conecdos formas:
po del adminavés de la zo
etallese conexión a
nomina EmpUn simple forado y obteneseleccionad
tipo dAjustelemEstiloelemPropdel edefinmarc[Web
iempo de eje
DescPrespartiperoPermListahabe
n comunicar
dades que ina 2 puntos, uen la página
ctar: estáticas y distrador de ena de conex
un par de el
ployeesWebPrmulario deeer sus datosdo a través d
de bordetes de compoento admiteo de marco yentoiedades perslemento wenida en una ccada con losbBrowsable]
ecución. Agre
ripciónenta lista decipan en el dque se pued
mite importarde elemento
er cerrado
entre sí.
nteractúan enuno del contse administr
dinamicas. Lelementos wiones.
ementos We
PArt y muestentrada permpersonales.el contrato d
�
ortamiento,e la edición yy zona a la qu
sonalizadas db. Es una proclase derivadatributos [Pe
egamos un C
elementos wdiseño inicialden añadirr un elementos que el usu
ntre sí: una crol del proveran a través d
as estáticasweb. Las cone
eb personaliz
tra alguna infmite a los usuAsimismo, ede comunica
���� )?��
como si ely la minimizaue pertenece
del componeopiedad púbda de WebPAersonalizable
CatalogZone
web que nol de la página
to webuario puede
conexión y ueedor y otrodel administ
se listanexiones dinám
zados de la c
formación souarios escribel elemento Wción
�������
"ción.e el
enteblicaArte] y
a
ndelrador
micas
clase
obreir elWeb
�
www.depurando.com 342
El comelempedid
El vín
ElemCuancontr
publi{
/i
}
El comde W
Parasusce
[Pers
Indicacontrun eltabla
[Web
Indicaedito
EL sigfunci[Conninterf
[Conn
mponente coento Web qudos emitidos
nculo termina
mentoWebdo se crea urato de comu
ic interface
// Use this int Employee
mponente EmWebPart, que
que se mueseptible de ex
[Personal [WebBrow
public i {
getset
}
onalizable]
a que la proprol se utilizaemento webs a través de
bBrowsable]
a que la propor.
guiente pasoón que devunectionProvifaz IEmploye
nectionProvipublic I
{ retu
}
onsumidor eue implemens por dicho e
a creando un
proveedorn elementounicación pa
e IEmployeeI
property to eID { get; s
mployessWeimplementa
stre el EMploxploración y p
lizable(truewsable(true)nt Employee
{ return em{ empID v
piedad tieneen una zonab. De forma pe aspnetdb
piedad se pu
o conlleva la culeve una insider] Esta funeeInfo.
der("EmployEmployeeInf
urn this;
es el OrdersWnte el contrampleado en
na relación p
Web proveera el punto d
nfo
get the empet; }
ebPArt de ejea la interfaz d
oyeeID en elpersonalizac
e)]]ID
mpID; } value; }
e que conservde elementpredetermin
uede modific
creación destancia de lanción crea el
eeIDProvidero GetEmploye
WebPart, queato de comunun año dete
principal/det
edor, lo primde conexión.
ployeed ID c
emplo es undel contrato
editor de prción.
var su valor eo web o dennada, los dato
ar a través d
un punto declase actuall punto de co
r", "EmployeeeInfo()
e enlaza el IDnicación daderminado.
alles entre lo
ero que defi. Se define co
currently de
control ASP:
ropiedades, d
en el almacéntro de un coos de person
de la interfaz
conexión dey marcarla conexión para
eeIDProvider
�
D del empleao y muestra
os elemento
ne un desarromo una inte
efined in th
.NET person
debemos ma
én de datos sontrol compunalización flu
de usuario d
e proveedor.con el atributa los datos b
r")]
���� )?��
ado a cualquitodos los
s web implic
rollador es eerfaz:
he control
alizado deriv
arcarlo como
subyacente suesto envueluyen en una
del elemento
. Debe defintoasándose en
�������
)ier
cados.
el
vado
o
si elto ende las
o
ir la
n la
�
www.depurando.com 343
TendProviel pu
ElemApartcreac
[Conn
Un puASP.Nmétoen la
Cód<Stat
ProviConsu
</Sta
Una cprimeProvideno
remos en cuderName o Cnto de conex
mento web cte de generación de un pu
nectionConsupublic v
{ if (
{
} else
{
} }
unto de coneNET en correodo marcadointerfaz esp
igo de maticConnectio
iderConnectiumerConnecti
aticConnecti
conexión estero actua coder. EL seguminado Emp
uenta que elConsumerNaxión es para
consumidoar su propia iunto de cone
umer("Employvoid GetEmpl
empInfo !
empID empFindEmploye
e
throw new N
exión consumespondecia co con el atribecificada.
arcadoons><asp:WebParonPointID "onPointID "
</asp:WebPaons>
tablecida entmo proveedndo adoptaployeeIDCon
nombre delame de la etun proveedo
rnterfaz de uexión de con
eeIDConsumeroyeeInfo(IEm
null)
pInfo.EmployeInfo();
otSupportedE
midor se creon un métoduto se acept
tConnectionEmployeeIDPrEmployeeIDCo
rtConnection
tre el elemenor a través del papel de csumer
punto de coiqueta <asp:or o para un
suario, el elesumidor par
r", "EmployemployeeInfo
yeeID;
Exception("N
a automáticado marcadota como retr
ID "Conn1"rovider" Cononsumer">
n>
nt Web con ude un puntoconsumidor
nexión debeWebPart�Coconsumidor
emento webra la interfaz
eeIDConsumerempInfo)
No connectio
amente en tcon el atribuollamada a i
ProviderIDnsumerID "or
un ID de empde conexióna través de u
�
e coincidir coonnection>, dr.
b sólo tiene uespecificada
r")]
on data foun
iempo de ejeuto [Connectnvocar cuan
"emp"rd"
p y un elemede nombreun punto de
���� )?��
on la propieddependiendo
un deber: laa.
nd.");
ecución detionConsumedo todo cam
ent Web ordEmployeeIDconexión
�������
*dado de si
er]. Elmbia
. ElD�
�
www.depurando.com 344
AApliicac
�
Q
&
C
e
ǿǿǿΦƛƴŀŘŜŎƻΦŎƻƳ
cio
���
Q����
����
Mnecon
�
��:
�:�
MCsn .N
*? �
���
��
CTS:WebNET
3
�
:bT
5
www.depurando.com 345
Q�����:���� & C
���
C����
�� *? � Q
:���
Q�����:��
�
�� & C�����:���
�
www.depurando.com 346
����� *? � QQ�����:���� & C�����:���
�
www.depurando.com 347
����� *? � QQ�����:���� & C�����:���
�
www.depurando.com 348
����� *? � QQ�����:���� & C�����:���
�
www.depurando.com 349
����� *? � QQ�����:���� & C�����:���
�
www.depurando.com 350
����� *? � QQ�����:���� & C�����:���
!
www.depurando.com 351
����� *? � QQ�����:���� & C�����:���
"
www.depurando.com 352
����� *? � QQ�����:���� & C�����:���
)
www.depurando.com 353
����� *? � QQ�����:���� & C�����:���
*
www.depurando.com 354
����� *? � QQ�����:���� & C�����:���
www.depurando.com 355
����� *? � QQ�����:���� & C�����:���
�
www.depurando.com 356
Tes
1. YoG
A. Ap
D. Ap
2. Wha
3. Ho
D. In
t
ou need to crGerman. Whi
pp LocalRes
B. App Loc
C. App Loc
pp LocalRes
hat must youapply.)
A. Define th
B. Define th
C. Override
D. Override
ow can you d
A. In Visual
B. In Visual
C. In Visual
n Visual Stud
reate a Web pich of the fol
sources/Page
calResources/
calResources/
sources/Page
u do to enabl
he Page.Cultu
he Page.UICu
the Page.Ini
the Page.Re
define a contr
l Studio, defi
Studio, defi
Studio, edit
dio, edit the (E
page that is allowing resou
e.aspx.resx.d
/Page.aspx.r
/Page.aspx.d
e.aspx.en.res
le users to ch
ure property
ulture proper
itializeCultur
eadStringRes
rol property
ine the DataV
ne the DataS
the Text pro
(Expressions)
���
available in burce files sho
de
resx
de.resx
sx
hoose their o
.
rty.
re method.
source metho
using a glob
ValueField p
SourceID pro
operty.
) property.
�� *? � Q
both the defaould you cre
wn language
od.
bal resource a
property.
operty.
Q�����:��
ault languageate? (Choose
e preferences
at design tim
�� & C��
e of English ae all that app
s? (Choose a
me?
���:���
�
and in ply.)
all that
www.depurando.com 357
4. Yothou add a globhat global re
A. Resource
B. Resources
C. Resources
D. Resource
bal resource source progr
es.Resource.L
s.Resource(“
s(“Login”)
es.Login
with the namrammatically
Login
“Login”)
���
me Login byy?
�� *? � Q
y using Visua
Q�����:��
al Studio. Ho
�� & C��
ow can you a
���:���
�access
www.depurando.com 358
AApliicac
��
'
&
'
ǿǿǿΦƛƴŀŘŜŎƻΦŎƻƳ
cio
���
���
����
Mnecon
�
���
�:�
MCsn .N
�
���
��
CTS:WebNET
3
�
:bT
5
www.depurando.com 359
'�
El papmedi
��
TipoASP.NsoliciEstosdirect
<add
AutEs elcrede
Una e
<aut
��
�
�
AutSe mformenvío
Una vuna cservidauten
����
pel fundameante los sigu
Autentica
Autorizacsolicitado
os de ArcNET proporctudes de cies tipos de arctorio de con
path "*.asc
tenticacióproceso de aenciales, o al
estrada típic
thenticati
None: No
Windowsdefecto
Passport.programasitios web
Forms: Lacredencia
tenticacióuestra un foulario no neco de formula
vez que el clicookie, al cliedor, en cadanticado. Si se
�����
ental de la seuientes méto
ación: Verific
ción: Determo
chivos reiona automártos tipos dechivos se idefiguración de
cx" verb "*"
ónasegurar quelgún tipo de
a para activa
ion mode="
o se realiza a
s. Se usará au
. Servicios deadores de sitb
as solicitudesales del usua
ón basadrmulario decesariamentrio, al código
iente está auente. A contipetición pos
e hace una so
� & '
eguridad es rodos:
car que el cli
minar si el clie
estringidoáticamente ue archivo (contifican en eel entorno y
type "Syste
e el cliente eidentificació
ar la autentic
"Windows"
utenticación
utenticación
e autenticacitios web, pro
s sin autenticario y las env
da en forminicio de seste autentica ao de la aplica
utenticado, einuación, sesterior, lo quolicitud sin u
��
'����
restringir el a
ente es realm
ente tiene pe
osun nivel básicmo los archiel archivo mase asignan a
em.Web.HttpF
s quien diceón.
cación sería:
/>
n. Permite el
Windows, ju
ión centralizaoporcionand
car se redirigvía a la aplica
mulariossión al usuarial usuario, pación que rea
el servidor depasa esta coue indica al suna cookie de
��� � '�
�:��
acceso a part
mente quien
ermiso para
co de seguridvos de confiachine.configa la clase Htt
ForbiddenHan
ser. La aute
acceso anón
unto con IIS.
ado que ofreo un solo ini
gen a una páación para se
io para recogero envía lasaliza la auten
evuelve un pookie de auteervidor quee autenticac
�������
�
tes del sitio W
n dice que es
acceder al re
dad bloqueaguración y dg del servidotpForbiddenH
ndler" valid
nticación se
nimo
Es el compo
ece Microsofcio de sesión
ágina web quer autenticad
ger las credes credencialenticación.
pequeño fragenticación, deste clienteión válida, se
� & '��
Web. Esto se
ecurso que h
ndo lasde código fuer web en elHandler
date "True"/
realiza usan
ortamiento p
ft a losn para varios
ue reúne lasdos.
enciales. Estees, mediante
gmento de del cliente alha sidoe redirigirá
��:���
�
e hace
ha
ente).
>
do
por
s
ee un
atos,
www.depurando.com 360
automcrede
ConEl tipconfig
La etivalida
<auth
path
AtribName
login
Prote
Time
Path
RegUna vautor
El astutilice
El sigIncluycualqde se
máticamenteenciales y se
figuracióo de seguridguración: <a
iqueta <authar el usuario
hentication <forms n"/"/> </authenti
butoe
Url
ection
out
las de autvez establecirización.
terisco (*) esen la aplicac
no de interroyendo esta rquier usuarioeguridad.
e al usuario aautenticará
n de webdad utilizadoauthenticatio
hentication>.
mode "Formsname "Prueba
cation>
torizaciónida la autent
s un carácterión, incluso
ogación (?) eregla en el aro anónimo. T
al formularion.
.configen ASP.NET
on>, <author
define el mo
">" loginUrl "
nticación de fo
r comodín quaquellos no
es un carácterchivo de weTodo usuario
��
o de inicio de
se define enization>, <id
odo de auten
"login.aspx"
DescEl noautenaplicadebela apLa páredircookdefecTipoparaNumcookque svida30La ruaplicapredelos exy minrutajunto
ormularios, t
ue permite eautenticado
er comodín qeb.config inddebe autent
��� � '�
e sesión, en e
n web.configentity>.
ntificación de
" protection
ripciónmbre de la cnticación. Siaciones sobrería darse a clicación un nágina de iniciige al usuariie de autentcto es defaude encriptacel cookie deero de minuie cuando rese haya pasade la cookie.
ta de los cooación. Se reeterminadoxploradoresnúsculas y unpodría impeo a la solicitu
tendremos q
xplícitaments.
que incluye ticamos que sticarse y cad
�������
el que se rec
, a través de
e ASP.NET ut
n "All" time
cookie HTTPse ejecutanre el mismo scada cookie dnombre únicoio de sesión,o si no se enicación válidlt.aspxción y validace seguridad.to antes deecibe la soliciado la mitad. El valor pre
okies emitidocomienda e(\), dado qudistinguen en error en ladir que se end
que establece
te que todos
odos los ususe deniega eda solicitud re
� & '��
cogerán las
e tres seccion
tilizado para
eout "30"
utilizada parvariasservidor webde seguridadodonde se
ncuentra unada. EL valor p
ción utilizada
que expire laitud, siemprdel tiempo dedeterminad
os por lavalore la mayoríaentre mayúscescritura denviase la coo
er las reglas
s los usuarios
uarios anónimel acceso aequiere la co
��:���
�
nes de
ra la
b,d de
apor
a
aedeo es
deculase laokie
de
s
mos.
ookie
www.depurando.com 361
<auth
</aut
Cuanheredarchivbúsqsolici
<auth
</aut
Cambusuar
<auth
</aut
Recoencono an
ConUn didirectSimpañadasegu
<con
<con
ConPode
<loca<
< </l
horization> <deny user
thorization>
do se evalúadados de cuavo machine.ueda. Así, entud actual y
horization> <allow use <deny user
thorization>
biando el ordrio anónimo
horization> <deny user <allow use
thorization>
rdar que si sntrará con lanónimos.
trol de aciseño comúntorio separalemente dejimos un archurado. Este a
nfiguratio<system
<
<
<system
nfiguratio
trol de acmos restring
ation path "<system.web> <authoriza <deny us </authoriz
</system.weblocation>
rs "?"/>>
an las reglas,alquier archiconfig. Tan pn el caso siguno se evalua
ers "*"/>rs "?"/>>
den de estasy se permiti
rs "?"/>ers "*"/>>
e omite la sea regla <allow
cceso a dirn de una aplido. Con archamos las opchivo web.conarchivo simp
on>m.web>authoriza <den/authoriz
m.web>
on>
cceso a argir archivos e
segura.aspx>ation>ers "?"/>ation>
b>
ASP.NET recvo .config depronto comouiente, deterará la segund
dos líneas, srá el acceso
egunda líneaw users=”*”>
rectorioscación es cohivos de confciones <authnfig que defilemente deb
ation>ny users="ation>
rchivos esespecíficos a
">
��
corre la listael directorioo se encuentrminará queda línea.
sin embargo,al resto de l
a, ASP.NET bu> en el archiv
locar los arcfiguración AShorization> pne opcionesbe denegar e
?"/>
specíficosñadiendo et
��� � '�
de arriba abpadre, termra una reglase aplica la r
, se denegaros usuarios
uscará el direvo machine.c
hivos que reSP.NET estapredeterminamás restrict
el acceso a lo
iquetas <loc
�������
bajo y contininando con laplicable, seregla <allow
á el acceso a
ectorio padrconfig para t
equieren auteaproximacióadas en el ditivas en el dios usuarios a
ation> al arc
� & '��
úa con los valos valores de detiene lausers=”*”> a
a cualquier
e y por últimtodos los usu
enticación enón es fácil.rectorio padrectorionónimos
chivo web.co
��:���
�
aloresel
a la
mo seuarios
n un
dre y
onfig.
www.depurando.com 362
ConSe puusuar
<loca<
< </l
La pUna vde iny dec
En elque p
MétoForm
Form
Auth
Redir
SignO
SetAu
GetR
GetA
trol de acueden identifrio separado
ation path "<system.web> <authoriza <deny us <deny us <deny us </authoriz
</system.weblocation>
página devez definidoicio de sesiócide si se deb
espacio de nproporciona
odomsCookieNam
msCookiePath
enticate()
rectFromLog
Out()
uthCookie()
edirectUrl()
AuthCookie()
cceso paraficar específior por comas
segura.aspx>ation>ers "pepe,jers "juan"/ers "?"/>ation>
b>
inicio deel modo den real, que ebe autenticar
nombres Sysmétodos co
me
h
ginPage()
a usuarioicamente un.
">
ose"/>>
sesiónautenticacióes una páginar el usuario.
stem.Web.Sempartidos p
��
s específin nombre de
ón y las reglaa .aspx norm
ecurity dispoara administ
DescPropnommediPropdirecautenCompcontrpuedIniciaASP.Nrespuque sTermaplicaencrIniciaASP.Nformel mérediriniciaPropiniciaSetAusuacódigusuapáginCrea
��� � '�
icosusuario o un
s de autorizamal que solici
nemos de latrar el proces
ripcióniedad de sólbre de la cooiante formuiedad de sólctorio definidnticación meprueba un noraseña contrde introducira la sesión deNET creandouesta y redirsolicitó iniciamina la sesiónación ASP.NEptada existea la sesión deNET creandoulario de autétodo Redireige al usuarialmenteorciona la Ualmente. Se puthCookie()rio en una apgo la decisiónrio a la páginna predetermla cookie de
�������
na lista de no
ación, se debta la informa
clase Formsso.
o lectura queokie de autenarioso lectura quedo para el coediante formombre de usra una lista den el archivel usuario eno la cookie, aigiendo al usalmente.n del usuarioET eliminandenteel usuario eno y adjuntandtenticación.ectFromLogino a la página
RL de la págipodría utilizapara iniciarplicación y ton de si se dena solicitadaminada más ae autenticació
� & '��
ombres de
be crear la páación del usu
sAuthenticat
e proporcionnticación
e proporcionookie de lamulariossuario y unade cuentas quo web.confign una aplicacdjuntándolasuario a la pá
o en unado la cookie
n una aplicacdo la cookieAl contrarionPage, noa que solicitó
ina solicitadaar conla sesión deomar medianbe redirigir ao utilizar unadecuadaón pero no la
��:���
�
áginauario
tion
na el
na el
ue segióna laágina
ióndelque
ó
a
ntealna
a
www.depurando.com 363
Hash
prote{
}
ListPara<form
<auth
</aut
Protprotec {
algori }
RoleEl obj
PropiNameIsAut
Auth
IsInR
PasswordFro
ected void B{
if (TxtP {
Form }
}
a de usuaañadir una cms> y añadir
hentication <forms nam <credent <user <user </creden </forms>
thentication
tección dected void Butt
string algoif (SHA1.Ch
{ algorit } if (MD5.Che
{ algorit } TxtEncriptaitmo);
es Personjeto User tie
iedadethenticated
enticationTy
ole()
omStoringIn
Button1 Clic
Pass.Text.To
msAuthentica
ario en arccuenta de ustanta subeti
mode "Formsme "Prueba"tials passwoname "pepe"name "juan"
ntials>
n>
e las contton1 Click(ob
oritmo="SHA1"hecked)
tmo = "SHA1";
ecked)
tmo = "MD5";
ado.Text = Fo
nalizadosene las siguie
ype
nConfigFile()
k(object sen
String()
tion.Redirec
chivo de cuario, se inseiquetas <use
">loginUrl "lordFormat "Clpassword "ppassword "j
traseñas dject sender,
;
rmsAuthentica
entes propie
��
adjunpersoañadEncralgorpropuna cuna b
nder, EventA
"secret")
ctFromLoginP
configuraerta una suber> como sea
ogin.aspx" plear">pepe"/>juan"/>
de usuarioEventArgs e)
ation.HashPass
edades
DescNomTruecompcódigpáginusuapropUna cautenPerm
��� � '�
nta a la respuonalización airla manualmpta una caderitmo especiforciona un mcontraseña ebase de dato
Args e)
Page(TxtNomb
aciónbetiqueta <cran necesarias
protection "
o median
swordForStorin
ripciónbre del usuasi el usuarioprobar esta pgo si se necena de inicio drio no ha iniciedades (comcadena quenticación utimite evaluar s
�������
uesta. Se pueadicional demente a la reena de textoficado. Este vmétodo seguencriptada enos
bre.Text, fa
redentials> as a la etiquet
"All" timeou
nte encrip
ngInConfigFile
ario que ha ino se ha autenpropiedad ysita redirigirde sesión. Obciado la sesiómo Name) esrepresenta elizada (Formsi un usuario
� & '��
ede realizarla cookie yespuestao utilizando evaloruro de almacn un archivo
alse);
a la etiquetata <credenti
ut "30" path
tación
e(TxtTexto.Te
niciado la sesnticado. Se pdecidir medel usuario abserve que són, el resto dstará vacío.el tipo dems,Basic)o es miembro
��:���
�una
el
enaro
als>
"/">
xt,
siónuedeiantelai elde
o de
www.depurando.com 364
Desguna c
AutCon lde peinicio
<allow
Aut
Para1
2
3
De focontrcasillausuar
Paradel cldeshaLogin
TengaLoginconfigsolici
if (Mem{// Use
// In t// det// is cr
Forms
}
raciadamentcuenta de un
tenticacióa autenticacermitirles el ao de sesión.
w users=”Do
tenticació
a crear una1. Inicie Visu
2. Utilice elllamado L
3. Agregue
orma predeteraseña, y la ca de verificario la almace
impedir queliente, de forabilitar estan como false
a en cuentan, éste validagurado, creatada origina
mbership.Validate
er has supplied va
he following metermines whetherreated.
sAuthentication.R
te, con la autn usuario con
ónWindoción Windowacceso. Exist
ominio\nomb
ón con Ba
aplicaciónual Studio .N
Explorador dLogin.aspx.
un control Lo
erminada, escasilla de verción, se creaena en el disc
e un usuario mrma generalcaracterístic.
que cuandoa automáticaa un vale de almente. Ejec
eUser(username,
alid credentials
thod call, the secor a persistent aut
RedirectFromLogrememberMeIs
tenticación dn un rol med
owsws se confía eten varias op
bre”/>
ase de Da
Web con pNET y cree un
de solucione
ogin a Login.
ste control mrificación Reca una cookieco duro.
malintencionno debe creca, establezca
el usuario hmente el usuautenticaciócuta código s
, password))
ond Boolean parathentication cook
inPage(usernameChecked);
��
un gr
de formularioiante el arch
en que IIS fuepciones difer
atos Sql
ágina de inn sitio Web n
es para agreg
.aspx.
muestra los ccordármelode autentica
nado robe alar cookies da la propieda
ace clic en lauario llamanón de formulasimilar al del
ameterkie
e,
��� � '�
rupo.
os no podemhivo web.con
erza que lo uentes para t
nicio de sesinuevo de ASP
gar al sitio un
ampos de nola próxima vación consta
guna cookiee autenticacad DisplayRe
a opción de indo al proveearios y rediriejemplo sigu
�������
mos asociar dnfig.
usuarios iniciransmitir la i
iónP.NET .
n formulario
ombre de usvez. Si el usunte y el expl
e de autenticción constantememberMe
nicio de sesiedor de pertige al usuariouiente.
� & '��
declarativam
en la sesióninformación
Web nuevo
suario yario activa eorador del
ación del eqtes. Parae del control
ión en el conenencia al gro a la página
��:���
!
ente
antesdel
sta
uipo
ntrolrupo
www.depurando.com 365
4
PasoEn esform
Para
�
�
�
�
�
�
�
�
Si est<formconfigpredeMach
<form
d
re
c
e
<cre
</for
�
<autho<den
4. Agreguenuevos p
o 2. Configuste paso se coularios.
configurar la
Utilice el
Localice e
Agregue<authentsiguiente
<authent
<forms
name
timeo
</authen
tablece el atrms>, para lagurar sólo loeterminada dhine.config.c
ms name=".A
efaultUrl="d
equireSSL="f
ookieless="U
nableCrossA
edentials pas
rms>
Agreguearchivo Wsu sitio W
orization>y users="?" />
un control Cuedan regist
ración de laonfigura la a
a aplicación
Explorador d
el elemento
el siguiente etication> y. ae manera.
tication mod
="SqlAuthCo
out="10" />
ntication>
ributomodeconfiguracióos atributos qde la autentiomments.
ASPXAUTH" l
default.aspx"
false" sliding
UseDevicePr
AppRedirects
sswordForma
el siguiente eWeb.config. EWeb.
reateUserWtrarse en el s
a aplicaciónaplicación AS
Web para la
de solucione
<authentica
elemento <fa continuació
e="Forms">
ookie"
e del elementón de <formsque necesiteicación de fo
oginUrl="log
" protection=
gExpiration="
ofile" domai
s="false">
at="SHA1" />
elemento <aEsto permite
��
Wizard debajositio y crear c
nWeb paraSP.NET para q
a autenticac
es para agreg
ation> y cam
forms> comoón, establezc
to <authentis> se utilizane sobrescribirormularios ta
gin.aspx"
="All" timeou
"true"
n="
>
authorizatione que todos l
��� � '�
o del controlcuentas nuev
a la autentique utilice la
ión de formu
gar un archiv
bie el atribut
o secundarioca los atribut
ication>, perlos valores pr. Aquí se mual como los d
ut="30" path
n> en el elemos usuarios a
�������
Login para qvas.
cación de fa autenticaci
ularios
vo Web.confi
tomode a "F
del elementtos name y t
ro omite el epredeterminuestra la condefine el arch
h="/"
mento <authautenticados
� & '��
que los usua
formulariosón de
ig al proyect
Forms".
toimeout de la
elementonados. Debenfiguraciónhivo
hentication>s tengan acc
��:���
"rios
s
o.
a
deleso a
www.depurando.com 366
<allow</authLa coEl sigdenerediriel nodel ar
PasoEn esrealiz
�
�
�
Crear
El prouna bescribse pumenú
Para
Utilicsistem
aspne
�S esp
�E esp
w users="*" />horization>nfiguraciónno "?" indicagar a los usuigen a la págmbre de la prchivo Mach
o 3. Configuste paso se cozación de las
Crear una
Conceder
Configura
r una base d
oveedor de pbase de datobiendo Aspnuede utilizarú Sitio Web d
crear la base
ce Aspnet_rema de Visual
et_regsql �S
pecifica el se
pecifica que
anterior sóloa usuarios nouarios no autgina de iniciopágina de inicine.config.co
ración de Aonfigura el pacciones sig
a base de da
r acceso a la
ar los parám
e datos del a
pertenenciaos de SQL Seret_regsql.exen modo Aside Visual Stu
e de datos d
egsql.exe parl Studio 2005
(local) �E �A
ervidor, que e
se utilice la a
o permite teno autenticadtenticados, too de sesión. Ecio de sesiónomments es
ASP.NET paproveedor deguientes:
atos del alma
a base de dat
metros de pe
almacén de
a grupo de Srver. El almacxe en la líneaistente o la hudio .NET 200
del almacén d
ra crear la ba5, ejecute el
m
es (local) en
autenticació
��
ner acceso ados, mientrasodas las solicEl atributo lon. La configuLogin.aspx.
ara la pertene pertenenci
acén de usua
tos a la cuen
rtenencia a g
usuario
SQL Server alcén de usuara de comandherramienta05.
de usuario
ase de datoscomando sig
este ejempl
ón de Window
��� � '�
la aplicacións que "*" indcitudes queoginUrl del elración prede
nenciaa a grupo de
ario.
nta de la apli
grupo de AS
lmacena inforio de SQL Seos. Como altASP.NET We
de pertenenguiente.
o.
ws para cone
�������
n a los usuardica todos losrealizan estolemento <foeterminada d
e SQL Server
icación Web
SP.NET.
ormación deerver se pueternativa, Aseb Site Confi
ncia a grupo.
ectarse a SQ
� & '��
rios autenticas usuarios. Aos usuarios srms> determde este atrib
mediante la
.
los usuariosde crearspnet_regsqlguration del
En el símbo
QL Server.
��:���
)ados.Aleminauto
en
.exe
olo del
www.depurando.com 367
�A mautencarac
Para
Resu
Si la b
�
�
Si no
�
�
�
�
Conc
La cuejecuWindde re
Para
1
2
3
Estossiguie
�� Cre
sp_gr
�� Gra
USE a
especifica qnticación simcterística de
ver una lista
ltados esper
base de dato
Aspnetdb
Aspnetdb
existen, las t
aspnet_A
aspnet_M
aspnet_S
aspnet_U
eder acceso
enta de procuta la aplicacdows Server 2ed para ejecu
conceder ac
1. Cree un i
2. Concedade base d
3. Agregue
s pasos se puente secuenc
eate a SQL Se
rantlogin 'NT
ant the login
aspnetdb
ue se agregumple con un apertenencia
completa d
rados
os Aspnetdb
b.mdf
b_log.LDF
tablas siguie
Applications
Membership
SchemaVersio
Users
a la base de
ceso de la apión en Servic2003, de forutar las aplica
cceso a la ba
nicio de sesi
el acceso dede datos.
el usuario a
ueden realizacia de coman
erver login fo
T AUTHORITY
access to th
ue sólo la caralmacén de ua un grupo
e los comand
no existe, se
entes se crea
ons
e datos a la c
plicación Wecios de Microma predeteraciones Web
se de datos
ón de SQL Se
e inicio de se
la función de
ar con el Admndos en el An
or the Netwo
Y\Network S
he membersh
��
racterística dusuario de SQ
dos, ejecute
e crean dos a
n en la base
cuenta de la
b requiere eosoft Internerminada se ub.
erver para N
sión a la bas
e base de da
ministrador cnalizador de
ork Service a
ervice'
hip database
��� � '�
de pertenencQL Server, só
Aspnet_reg
archivos de b
de datos As
aplicación W
el acceso a laet Informatioutiliza la cuen
T AUTHORIT
se de datos A
tos aspnet_
corporativo oconsultas SQ
ccount
e
�������
cia a grupo. Pólo se requie
gsql /?.
base de dato
pnetdb:
Web
base de daton Server (IISnta NT AUTH
TY\Servicio d
Aspnetdb cre
Membership
o se puede eQL
� & '��
Para realizarere la
s:
tos AspnetdbS) 6.0 enHORITY\Servi
e red.
eando un usu
p_FullAccess
jecutar la
��:���
*r una
b. Si
icio
uario
s.
www.depurando.com 368
GO
sp_gr
�� Add
USE a
GO
sp_ad
Confi
En es
Para
1
<
<
En esatribuanter
2
<
rantdbaccess
d user to dat
aspnetdb
ddrolememb
igurar los pa
ste paso se e
configurar la
1. En el archapunte a
connectionStri
<add name="M
connectionS
/connectionStr
ste caso, el nuto connectiriormente.
2. Agreguecomo seimpide qu
membership de
<providers>
<clear/>
<add name="M
connection
application
type="Syste
V
</providers>
s 'NT AUTHO
tabase role
ber 'aspnet_M
arámetros de
specifica la c
a configurac
hivo Web.cola base de d
ngs>
MyLocalSQLServ
String="Initial C
rings>
ombre que uionString co
un elementomuestra en eue se cargue
efaultProvider=
MySqlMember
nStringName="M
nName="MyApp
em.Web.Securi
Version=2.0.0.0
ORITY\Netwo
Membership
e pertenenci
configuració
ción de perte
nfig, agreguedatos de pert
ver"
atalog=aspnetd
utilizará paramo la base d
o <membersel ejemplo sie el proveedo
="MySqlMembe
shipProvider"
MyLocalSQLSer
pName"
ity.SqlMembers
, Culture=neutr
��
ork Service',
p_FullAccess
ia a grupo de
n del sitio W
enencia a gru
e una cadenatenencia a gr
db;data source=
a esta conexde datos de p
hip> despuéiguiente. Obor predeterm
ershipProvider"
rver"
shipProvider, S
ral, PublicKeyTo
��� � '�
'Network Se
', 'Network S
e ASP.NET
Web.
upo
a de conexiórupo.
=localhost;Integ
ión es MyLocpertenencia
és del elemenserve el usominado y nun
" >
ystem.Web,
oken=b03f5f7f1
�������
rvice'
Service'
ón similar a la
grated Security
calSQLServeal grupo que
nto <authoridel elementnca se utilice
11d50a3a" />
� & '��
a siguiente q
y=SSPI;" />
r. Establezcae creó
ization> tal yto <clear/>.e.
��:���
que
a el
yEsto
www.depurando.com 369
<
Asegú("MyEstabaplicade pe
Nota
DebedefinpropiexpoproveMemdefau
PasoEn es
Adici
AgregEsta pcódigpara
protec{Respo
FormForm
RespoRespoRespo
RespoRespoRespoRespoRespo}
Crea1
2
/membership>
úrese de queLocalSQLSerblezca tambiéación. Los deertenencia a
e definir el atición del proiedad que senen una proeedores distimbershipProvultProvider.
o 4. Comproste paso se p
ón de un co
gue el códigopágina sólo dgo muestra lalos usuarios
cted void Page_
onse.Write("He
msIdentity id = (FmsAuthenticatio
onse.Write("<ponse.Write("<bonse.Write("<b
ticket.Expironse.Write("<bonse.Write("<bonse.Write("<bonse.Write("<bonse.Write("<b
ación de un. Vaya a la
La configu
obtener ac
2. Cree un us
proveedor
� L
>
e establece erver") que esén el atributetalles de usugrupo.
tributo defauoveedor. Lose utiliza de fopiedadMemintos de los pvider de los c
obación de lprueba la aut
ntrolador de
o siguiente adebe mostraa informacióautenticado
_Load(object se
ello, " + Server.
FormsIdentity)UonTicket ticket =
p/>TicketNamebr/>Cookie Pathbr/>Ticket Expirration.ToString(br/>Expired: " +br/>Persistent:br/>IssueDate: "br/>UserData: "br/>Version: " +
usuario nupágina Defau
uración anterio
cceso a ningu
suario nuevo
r de pertenenc
La contraseña
el atributo copecificó anteo applicatiouario se orga
ultProvider dcontroles Lo
orma predetembershipProvpredetermincontroles Log
la autenticatenticación d
e eventos Pa
al controladoarse a los usuón obtenida dos.
ender, EventArg
HtmlEncode(Us
User.Identity;= id.Ticket;
: " + ticket.Namh: " + ticket.Cooration: " +());+ ticket.Expired" + ticket.IsPers" + ticket.IssueD" + ticket.UserD+ ticket.Version
uevolt.aspx de la a
or del element
na de las pág
con una contr
cia a grupo de
debe tener un
��
onnectionStreriormente enName comanizan por no
del elementoogin utilizanerminada. Sivider que penados. Aunqugin, es acons
ación de fode formulario
age_Load
or de eventosuarios autentdel vale de a
gs e)
ser.Identity.Na
me );okiePath);
.ToString());sistent.ToStringDate.ToString()Data);.ToString());
aplicación.
to <authoriz
inas de la apl
raseña segura
e SQL para la
na longitud de
��� � '�
ringName coen la seccióno un valor úombre de ap
o <memberseste atributoin embargo,ermite utilizaue es posiblesejable defin
rmulariosos.
s Page_Loadticados. Parautenticación
me));
g()););
zation> impid
icación y le re
a. Las reglas p
contraseña so
e al menos sie
�������
omo el mismn connectionnico que repplicación en l
hip> para quo para deterestos controar con los cone definir la prnir el atributo
d de la páginaa demostrarn de formula
de a los usuar
edirige a la pá
predeterminad
on las siguient
ete caracteres
� & '��
mo nombrenStrings.presente lala base de da
ue apunte aminar laoles tambiénntrolesropiedado
a Default.aspque es así, erios que se e
ios no autenti
gina Login.as
das que aplica
tes:
s.
��:���
�
atos
la
px.elemite
icados
px.
a el
www.depurando.com 370
3
CreaAhora
Arrasdel coLoginel tex
Adembasánpuedconte
A cocuandal usu
MemLa clausuarelectobjetWeb.práct
La cla
�
�
�
� L
3. Inicie sesi
redirigir a
de autenti
ar la Pága podemos a
stramos un Lontrol LoginSnText y Logouxto del estad
más usamos undonos en sien ver usandenido de la p
ntinuación, edo se muestuario por su
mbershipase Memberrio y adminisrónico. La clato de crear u. El control Ltico para vali
aseMember
Crear nue
Almacenadireccionun almac
Autenticaa los usuacompleto
La contraseña
ón con su cue
la página Def
cación de form
gina de Biañadir la pág
LoginStatus aStatus, por eutText. Tambdo de sesión
un LoginViewi el usuario hdo la etiquetplantilla que
establecemore esta plantnombre.
pship se utilizstrar la confiase Membern sistema coogin encapsudar a los usu
rship proporc
evos usuario
ar la informanes de correocén de datos
ar a los usuaarios o puedo que requie
debe contene
enta de usuari
fault.aspx que
mularios.
ienvenidgina que dará
a la página Biejemplo, parabién podemoiniciada
w. Aquí podeha iniciado lata inteligentese mostrará
os LoggedInTtilla, podemo
a en aplicaciguración delrship se puedompleto paraula la clase Muarios.
ciona los me
os.
ación de susco electrónicoalternativo.
rios que visite utilizar el cre poco o nin
��
er al menos un
io nueva. Si to
e solicitó inicia
daá la Bienveni
ienvenido.asa cambiar elos desplegar
emos introdusesión o noe: Anonymoudependerá d
Template. Coos utilizar el
iones ASP.NEl usuario comde utilizar soa autenticarMembership
edios para:
cripción (nomo y datos com
tan su sitio. Mcontrol Loginngún código
��� � '�
n carácter alfa
odo se realiza
almente y deb
da al usuario
spx. Podemotexto del vínr la ventana d
ucir texto y c. Este controusTemplate yde si el usua
omo el usuarcontrol Login
ET para validmo contraseñola o con la cla los usuariopara propor
mbres de usumpatibles) en
Mediante prn para crear.
�������
anumérico.
correctamen
berían aparece
o.
os establecernculo con lasde vista para
controles queol tiene dos vy LoggedInTerio ha iniciad
io habrá inicnName para
dar las credenñas y direcciolase FormsAos de una aprcionar un m
uario, contran Microsoft S
rogramaciónun sistema d
� & '��
te, se le debe
er detalles del
las propiedas propiedadea ver el vincu
e se mostrarvistas, que seemplate. Eldo la sesión o
ciado la sesiódar la bienv
nciales delones de corruthenticatiolicación o sit
mecanismo
aseñas,SQL Server o
puede autede autenticac
��:���
�ería
vale
adesesulo y
ráne
o no.
ónvenida
reon contio
en
nticarción
www.depurando.com 371
�
p
{
N
a
}
Administrestablecque requpeticioneque la ha
ublic void L
if (Membe
FormsAu
NotPublicChe
else
Msg.Tex
gain.";
Nombre
CreateUs
DeleteUs
Equals
FindUser
FindUser
Generate
GetAllUs
GetHashC
GetNumb
rar contrasecimiento, etciera una prees de restableyan olvidado
Login OnClic
rship.Valida
uthenticatio
ckBox.Checke
t "Login f
ser
ser
rsByEmail
rsByName
ePassword
ers
Code
berOfUsersO
ñas que incluc. Opcionalmgunta y unaecimiento oo.
ck(object se
ateUser(User
on.RedirectF
ed);
failed. Plea
Desc
Sobredatos
Sobre
Sobreson i
Sobresuscrcontique d
Sobresuscrnom
Geneespe
Sobreusua
Actúahered
Online Obtie
��
uyen su creaente puederespuesta drecuperació
ender, Event
rnameTextbox
FromLoginPag
ase check yo
ripción
ecargado. Ags.
ecargado. El
ecargado. Deguales. (Se h
ecargado. Oritos donde liene la direccdebe coincid
ecargado. Oritos donde ebre de usuar
era una contcificada.
ecargado. Orios en la ba
a como funcda de Object
ene el núme
��� � '�
ación, cambioconfigurar lae contraseñan de la contr
tArgs args)
x.Text, Pass
ge(UsernameT
our user nam
grega un nue
imina a un u
etermina si dhereda de Ob
btiene una ca dirección dción de corredir.
btiene una cel nombre derio especifica
raseña aleat
btiene una cse de datos.
ción hash part).
ro de usuari
�������
o, recuperaca suscripcióna para autenraseña para
wordTextbox
extbox.Text
me and passwo
evo usuario a
usuario de la
dos instanciabject).
colección dede correo eleeo electrónic
colección dee usuario coado que deb
toria de la lon
colección de
ra un tipo co
os que actua
� & '��
ción yn a ASP.NET pnticar lasaquellos usu
.Text))
,
ord and try
al origen de
base de dat
as de Object
usuariosectrónicoco especifica
usuariosntiene ele coincidir.
ngitud
todos los
oncreto. (Se
almente tien
��:���
�para
uarios
os.
ada
en
www.depurando.com 372
RoleAdmiaplica
La adaplicausuaraplicanombtenerprivil
Los udiscuPodríusuar
GetType
GetUser
GetUserN
Referenc
ToString
UpdateU
ValidateU
esinistra la susación ASP.NE
dministraciónación basándrios a las funación Web bbres de usuar funciones cegios diferen
suarios puedsión, algunoía definir cadrio con amba
NameByEma
ceEquals
User
User
cripción delET. Esta clase
n de funcionedose en grupnciones permasándose enario, o ademácomo Adminntes a cada f
den pertenecos usuarios pda función deas funciones
acces
Obtiede O
Sobredatos
ail Obtieelectelect
Detela m
DevuObje
Actuacorre
Comprop
usuario a fue no se pued
es de ASP.NEpos de usuarmite controlan funciones,ás de ellos. Pistradores, Efunción.
cer a más deodrían tenerel sitio de fotendría los d
��
so a una apli
ene el objetobject).
ecargado. Os para el usu
ene un nombtrónico coinctrónico espec
rmina si lassma instanc
uelve una claect actual. (Se
aliza la baseespondiente
prueba queorcionados s
nciones parade heredar.
ET le permiteios, que se dr el acceso aen lugar de ePor ejemplo,Empleados, D
e una funciónr a la vez lasrma que tendos conjunto
��� � '�
icación.
o Type de la
btiene la infouario suscrito
bre de usuarcide con la dicificada.
instancias deia. (Se hered
se String quee hereda de
de datos coal usuario es
el nombre dson válidos.
a el control d
e administradenominan fua partes o carespecificar uuna aplicaciDirectores, et
n. Por ejempfunciones Mga privilegioos de privileg
�������
instancia act
ormación deo.
rio cuya direcirección de c
e Object espda de Object)
e representaObject).
n la informaspecificado.
e usuario y l
de autorizaci
r la autorizacunciones. Laracterísticasuna autorizacón de empletc., donde se
plo, si su sitioMiembros y Mos diferentes,gios.
� & '��
tual. (Se her
el origen de
cción de corrcorreo
ecificadas so).
a la clase
ción
a contraseña
ón en una
ción para suasignación ddiferentes dción basada eeados podríae especifican
o es un foro dModeradores, por lo que
��:���
�
eda
reo
on
a
dede suenan
des.un
www.depurando.com 373
PararoleM
habilitar la aManager de l
Nombre
AddUsers
AddUsers
AddUserT
AddUserT
CreateRo
DeleteCo
DeleteRo
Equals
FindUser
GetAllRol
GetHashC
GetRoles
GetType
GetUsers
IsUserInR
Referenc
RemoveU
RemoveU
RemoveU
RemoveU
RoleExist
ToString
administracióa sección sy
sToRole
sToRoles
ToRole
ToRoles
ole
ookie
ole
sInRole
les
Code
sForUser
sInRole
Role
eEquals
UserFromRole
UserFromRole
UsersFromRo
UsersFromRo
ts
ón de funciostem.web de
Descrip
Agrega
Agregaespecific
Agrega
Agrega
Agrega
Eliminafunción
Sobreca
Sobrecaiguales.
Obtieneespecific
Obtiene
Actúa code Obje
Sobrecaincluido
ObtieneObject).
Obtieneespecific
Sobrecaincluido
Determimisma
e Quita el
es Quita el
le Quita lo
les Quita loespecific
Obtieneespecific
Devuelvactual. (
��
nes para su ael archivo W
pción
los usuarios
los usuarios cadas.
el usuario es
el usuario es
una función
la cookie don
argado. Quita
argado. Deter(Se hereda
una lista decada que con
una lista de
omo función ct).
argado. Obtieun usuario.
el objeto Ty.
una lista decada.
argado. Obtieen la función
ina si las instnstancia. (Se
usuario espe
usuario espe
s usuarios es
s nombres dcadas.
un valor quecado ya exist
ve una clase S(Se hereda d
��� � '�
aplicación ASWeb.config de
especificados
especificados
pecificado a
pecificado a
nueva al orig
nde se almac
a una función
rmina si dos de Object).
los nombresntienen un no
todas las fun
hash para un
ene una lista
pe de la insta
usuarios incl
ene un valor qn especificada
tancias de Obe hereda de O
ecificado de
ecificado de
specificados d
e usuario esp
e indica si el te en el orige
String que ree Object
�������
SP.NET, utilice su aplicació
s a la función
s a las funcio
la función es
las funciones
gen de datos.
cenan los nom
del origen d
instancias de
de usuario dombre de usu
nciones de la
n tipo concret
de las funcio
ancia actual.
luidos en la f
que indica sia.
bject especifObject).
a función esp
as funciones
de la función
pecificados de
nombre de fuen de datos d
epresenta la c
� & '��
ce el elemenón
n especificada
nes
pecificada.
s especificad
mbres de
e datos.
e Object son
de una funcióuario buscado
aplicación.
to. (Se hered
nes en que e
(Se hereda d
función
un usuario e
ficadas son la
pecificada.
especificada
especificada
e las funcione
unción e la función.
clase Object
��:���
�nto
a.
as.
óno.
da
está
de
stá
a
s.
.
es
www.depurando.com 374
��
Los siespecuna fdicho
Un pelos usfichedel pen lade laharía
Aunqtambinform(Anonjuntaincluiauten
AntesaccesASP.Nen otRolesprovecaracvienepersocarac
AdemadmiProfiProfi
�
�
��,���
itios web necíficos de unforma de defos datos.
erfil de usuasuarios del sro de configuerfil desde laconfiguraciópágina. Podmos para cu
que la utilizacbién permitemación de unymous Idens para permidos en estenticados com
s del inicio dsible para seNET guarda atras funcionas" (Role Maneedor. Los prcterística dee con un provonalizados ycterística per
más de la pronistración deleManager (leManager i
Burcar inperfiles d
Determinperíodo d
�
cesitan frecuusuario quefinir datos es
rio es un conitio. El perfiluración (maca página, utilón y genera aemos accedeualquier otra
ción más comalmacenar isuarios anónntification). Litir el uso detutorial mue
mo con usuar
el ciclo de vir usado porautomáticamalidades, comnager), la cararoveedores alas clases y lveedor paraconfigurarlorfil seguirán f
opiedad Profe perfiles (ta(administradncluyen:
formación ede usuarios a
nar el númerde tiempo.
uentementee se aplicaránspecíficos de
njunto de prode usuario schine.configlizaremos laautomáticamer a las propclase.
mún del Profnformaciónnimos depenLas funcionae la propiedaestran el usorios anónimo
ida de la págla página. Demente el Perfmo "Pertenenacterística Pabstraen el aógica de negMicrosoft™
os para trabafuncionando
file, la caractanto para usuor de perfile
stadística soanónimos.
o de perfiles
��
un métodon a todo el sie usuario de f
opiedades qse define meo web.confipropiedad Pmente una clpiedades del
file es almacde usuariosnde de la caralidades de Pad Profile paro de la caractos.
gina, ASP.NETe forma simifil en los almncia a un gruerfil ha sidoalmacén de dgocio de dichSQL Server.jar con la cao igual con nu
erística Profuarios autentes). Tareas co
obre todos lo
s que no se h
��� � '�
convenienteitio. La caracforma fácil, a
ue definen laediante una sg). Para haceProfile. ASP.Nase accesibleProfile de la
enar datos danónimos. Eacterística "Ierfil y Identifra usuarios aterística Prof
T se aseguralar, al final d
macenes de dupo" (Membdiseñada codatos físico cha característPodemos crracterística Puestros prov
file proporcioticados comomunes que
os perfiles de
han modifica
�������
e para almacecterística deasí como def
a informaciósencilla sintaer referenciaNET lee el ese desde la prmisma form
de usuarios aEl almacenamIdentificacióficación Anóanónimos. Lofile tanto con
que el Perfiel ciclo de viatos. De la mership) o "Adn un modelocorrespondietica. La caracear nuestrosPerfil. Las páveedores per
ona soporteo anónimos)haremos co
e usuarios au
do en un det
� & '��
enar los datoPerfil proporfinir y almace
ón a almacenaxis XML en ua a la informaquema definropiedad Proma que lo
utenticadosmiento de lan Anónima"nima trabajaos ejemplosn usuarios
l se encuentida de páginamisma formadministradoro basado enente a unacterística Pers proveedoreáginas que usrsonalizados.
para la) con eln el
tenticados y
terminado
��:���
!
osrcionaenar
nar deunaciónnidoofile
,
an
raa,a quer de
rfilessan la.
y
www.depurando.com 375
�
GuaLa foresa inde pede Da
Aspn
ConASP.Nde peutilizapropoteneminteradebeweb.
<prof
EstonombString
Eliminar pmodificac
ardar informa más sennformación eersistencia qatos.
et_regsql.ex
figurar laNET ha disocerfil) del provar el proveedorcionados (mos un sisteactuar con emosinformaConfig:
file enabled <propert <add n <add n <add n <add n </proper </profile>
hace que la Abre, apellidog. Sin embar
perfiles indivción de estos
rmación dncilla de persesté disponibue va mucho
xe es un com
a gestión dciado la API dveedor de dador predeterSqlServer) oma de gestiól perfil en elr al sistema
d "true" defties>name "Nombrename "Apelliname "Telefoname "fechaNrties>>
API de perfils,teléfono ygo, podemo
viduales o grs.
de Personsonalizaciónble siempre qo más allá de
ando que pe
de los Perde perfil (cómatos subyacerminado (Sqlincluso escrón de relacioresto del códe los datos
aultProvider
"/>dos"/>no"/>acimiento" t
cree espaciofecha de nacs definir un t
��
upos de perf
nalizaciónes guardar ique el usuarel estado de
ermite instal
rfilesmo interactuente (cómo slServerExpreribir nuestroones con el cdigo. Para agque querem
r "AspNetSql
type "System
o para almaccimiento. Eltipo.
��� � '�
files basándo
nnformación srio inicie unala sesión. Pa
ar una base
ar mediantese almacenaness) o uno depropio provliente) sin cagregar datosmos almacen
lProfileProv
m.DateTime"/
cenar cuatrotipo de alma
�������
onos en la fe
sobre el usuasesión. Estora ello utiliza
de datos de
e programacin los datos).e los otros prveedor (por eambiar la fors al perfil delar. Esto lo ha
vider">
/>
fragmentosacenamiento
� & '��
echa de últim
ario y hacero necesita unaremos una
Sql Server
ón con los dEsto nos peroveedoresejemplo, sirma deusuario, antacemos en e
de informaco por defecto
��:���
"ma
quen tipoBase
atosrmite
tesel
ción:o es
www.depurando.com 376
AApliicaccio
��
A
e
ǿǿǿΦƛƴŀŘŜŎƻΦŎƻƳ
Mnecon
���
��
MCsn .N
� ��
����
CTS:WebNET
3
�
�
:bT
5
www.depurando.com 377
��
SimUsare
ForUn fo
Tene
<%@ PInher<%@ RAssem
<html<body
<
<</bod</htm
usingusingusingusingusingusingusing
publi{
p{
}}
���
muladoremos un sim
http://de
mularioormulario mó
mos que reg
Page Languagrits " DefauRegister Tagmbly "System
l xmlns "htty><mobile:Form
<a href<br /><a href<br /><a href<br /><a href<br /><mobile:
</mobile:Fordy>ml>
g System; g System.Colg System.Ling System.Webg System.Webg System.Webg System.Web
ic partial c
protected vo{
MobileCa elNavega
}
� A��
mulador de te
eveloper.ope
móvilóvil hereda d
gistrar una lib
ge "C#" Autoult" %> gPrefix "mobm.Web.Mobile
tp://www.w3.
m id "Form1""CalendarTe
"LabelTest.
"ObjectList
"AdRotatorT
Label Runatrm>
lections.Genq;b;b.UI;b.UI.WebContb.Mobile;
class Defau
oid Page Loa
apabilities mador.Text m
����
eléfono móvi
enwave.com
de System.W
brería de con
EventWireup
ile" Namespa" %>
org/1999/xht
runat "servst.aspx">Cal
aspx">LabelT
Test.aspx">O
est.aspx">Ad
"server" Fo
neric;
rols;
lt : System
d(object sen
mobCaps (MmobCaps.Pref
��
il
Web.UI.Mob
ntroles
"true" Code
ace "System.
tml" >
ver">lendarTest.a
Test.aspx</a
ObjectListTe
dRotatorTest
ont Bold "Tr
.Web.UI.Mobi
nder, EventA
MobileCapabiferredRender
bileContro
eFile "Defau
.Web.UI.Mobi
aspx</a>
a>
est.aspx</a>
t.aspx</a>
rue" ID "elN
ileControls.
Args e)
ilities)RequringType;
�
ols.Mobile
ult.aspx.cs"
ileControls"
>
Navegador" /
MobilePage
uest.Browser
��� �� A
ePage
>
r;
A������
�
�
www.depurando.com 378
La clade fu
Los codispoemulemuldispocomodesplinterf
Dent<Chocon lael ordconstreemdel d
ase MobileCanciones sob
ontroles de Aositivos móviadores que sador permitositivos de hao lo harían lolazaría un usfaz y utilizar
ro de un elemoice>, cada uas funcionesden en que atrucción de D
mplazar propiispositivo pa
apabilities Prre dispositiv
ASP.NET Moiles. Los fabrsimulan el fue ver las págardware de los usuarios. Esuario por suuna plantilla
mento <Devno de los cuas del dispositaparece y la pDeviceSpecifedades; porara el contro
roporciona uos cliente y p
obile permiteicantes de launcionamienginas Web deos fabricanteEs posible, positio Web e
a DeviceSpec
iceSpecific>ales contieneivo de destinprimera opcfic/Choice seejemplo, sel Image.
un solo origepara realizar
en desarrollaa mayoría deto del hardwe ASP.NET Mes, así comoor ejemplo, qn un dispositcific para ese
se especificae atributos qno. En tiempión correctautiliza parapuede utiliz
n para obtenr consultas en
r aplicacionee dispositivosware y de losMobile tal y coprobar la inque despuéstivo determie dispositivo.
a normalmenque especificpo de ejecucimente evaluespecificar lzar para indic
�
ner acceso an funciones
es para una gs móviles pros exploradoreomo se veríaterfaz del sits de comprobnado, decida.
nte uno o vacan cómo seón, cada opcuada es la quos conjuntoscar las imáge
��� �� A
la informacide dispositiv
gran variedaoporcionanes. El softwaan en lostio Web tal ybar cómo sea modificar l
rios elementevalúa la opción se evalúe se utiliza. Ls de plantillaenes específi
A������
�
iónvo.
d de
re
y
a
tosciónúa enLaas ycas
�
www.depurando.com 379
DeviEspecbasadutilizaconte
<devic
</devi
ConLos coconteenvíointerrlos fo
Con<%@ P%><%@ RAssem
<!DOC"http
<html<head
<</hea<body
<
<</bod</htm
Un paFormpropicomo
ConReprecaracActioURL.
Una pnaveg
iceFiltercifica un dispdo en el agenar un filtro denido o plant
ceFilters>
<ficeFilters>
ntroles deontroles ASPenedores deo de datos, mrelacionadosormularios, s
trol PanePage Languag
Register Tagmbly "System
CTYPE html Pp://www.w3.o
l xmlns "httd runat "ser<title></titad>y><mobile:Form
<mobile:<mob
</mobile<mobile:
<mob</mobile
</mobile:Fordy>ml>
anel puede cm o StyleSheeiedades de eo el estilo de
trol Formesenta el concterísticas deon por defectUn formular
página puedgador. El for
positivo o clante de usuarde dispositivotillas que cam
<filter name<filter namefilter name="
el ContenP.NET incluyeotros contro
mientras ques. Varios panin embargo,
elge "C#" Auto
gPrefix "mobm.Web.Mobile
PUBLIC " //Worg/TR/xhtml
tp://www.w3.rver">tle>
m ID "Form1"Panel Runat
bile:Label re:Panel>Panel Runat
bile:Label Re:Panel>rm>
contener cuaet. Los controestilo de los clos controle
mntenedor máe este controto es una cadrio desencad
e contener vmulario activ
ase de disposrio o explorao para reempmbian el dise
="IsIE" compa="IsMobile" cisHTML32" com
nedoren un par deoles. El contrPanel repre
neles puedenno pueden
EventWireup
ile" Namespa" %>
3C//DTD XHTM1/DTD/xhtml1
org/1999/xht
Runat "serv"server" Fo
unat "server
"server" Baunat "server
alquier controles de panecontroles indes hijos están
ás externo deol tienen propdena vacía, lodena eventos
varios formuvo actual pu
sitivo en un sdor. Un progplazar propieeño y la apar
are="Browser"compare="IsMobmpare="Preferr
e controles: Prol Form se dsenta un simn anidarse e ianidarse.
"true" Code
ace "System.
ML 1.0 Trans1 transition
tml">
ver">ont Bold "Trr">Programac
ackColor "yer">Gerardo S
rol de movilidel no tienen rdividuales qun controlado
e controles dpiedades deo que causas cuando se a
larios, pero sede fijarse y
sistema Mobgramador deedades del coriencia.
argument="IE"bileDevice" arredRenderingTy
Panel y Formdiferencia demple grupo eincluirse en l
eFile "Panel
.Web.UI.Mobi
sitional//ENnal.dtd">
rue" Alignmeción en ASP.
ellow">Sanz</mobile
dad ASP.NETrepresentacióuehay en su is por el adap
dentro de unl estilo actioun envío deactivan y se d
sólo se dibujrecuperarse
�
bileCapabilitie páginas o aontrol o defi
" /> rgument="true"ype" argument=
m que funcione Panel en qustático de colos formulari
l.aspx.cs" I
ileControls"
N"
ent "Right">NET 2.0</mo
e:Label>
T diferente dón visual y sóinterior. Tantptador del di
na página den y method.datos de dadesactivan.
a uno cada ve mediante la
��� �� A
ies ASP.NETplicaciones pnir bloques d
" /> ="html32" />
nan comoue soporta eontrolesios, mientras
nherits "Pa
>obile:Label>
e MobilePagólo alberganto la disposicispositivo.
movilidad. LEn particulatos a la mism
vez en ela propiedad
A������
�
puedede
l
s que
nel"
ge,n lasción
Lasar,ma
�
www.depurando.com 380
Activusand
<%@ P<%@ RAssem
<!DOC"http
<html<head
<</hea<body
<
Form<<<
Form<<
</bod</htm
ParaNavig
ConLos coe iterEl conelemEl conlista.Por úbase
El coDibujestátelem
En mselecestá popcioelemque ela pro
<%@ P<%@ RAssem
eForm. Cuando el control
Page LanguagRegister Tagmbly "System
CTYPE html Pp://www.w3.o
l xmlns "httd runat "ser<title></titad>y><mobile:Form
<mobile:<mobile:
</mobile:Lin</mobile:For<mobile:Form
<mobile:<mobile:
</mobile:Lin</mobile:Fordy>ml>
hacer que ungateUrl el ID
ntroles deontroles Listrativos de ASntrol List se pentos.ntrol Selectio
último, debemde datos de
ontrol Lisja una secueico o interacento es texto
odo interactcionarse y qpresente, elones estáticaentos en hipel clic se inteopiedad Data
Page LanguagRegister Tagmbly "System
ndo varios fol Link.
ge "C#" AutogPrefix "mobm.Web.Mobile
PUBLIC " //Worg/TR/xhtml
tp://www.w3.rver">tle>
m ID "Form1"Label ID "LLink ID "Li
nk>rm>m ID "Form2"Label ID "LLink ID "Li
nk>rm>
n control Lindel formula
e Listadot, ObjectLIst ySP.NET.parece a Rep
onList es útil
mos usar el cforma tabul
stncia de elemctivo. En modo plano.
tivo, todos loue generan ucontrol funca. Cuando sepervínculos. Erpreta comoaValueField y
ge "C#" AutogPrefix "mobm.Web.Mobile
ormularios es
EventWireupile" Namespa" %>
3C//DTD XHTM1/DTD/xhtml1
org/1999/xht
Runat "servabel1" Runatnk1" Runat "
Runat "servabel2" Runatnk2" Runat "
nk apunte a urio prefijado
oy SelectionLi
peater y a Da
si necesita q
control Objear.
mentos en undo estático, e
os elementosun evento. Sciona de formfija a true, laEn este casoo un salto a uy el texto de
EventWireupile" Namespa" %>
stén activos
"true" Codeace "System.
ML 1.0 Trans1 transition
tml">
ver">t "server">P"server" Nav
ver">t "server">S"server" Nav
un formularioo con el simb
ist son parte
ataList y mue
que el usuar
ctList si nece
n dispositivo.el control ge
s se dibujan cSi un gestor dma interactiva propiedad, ningún eveuna nueva URhipervínculo
"true" Codeace "System.
en la misma
eFile "Form..Web.UI.Mobi
sitional//ENnal.dtd">
Primer Form<vigateUrl "#
Segundo FormvigateUrl "#
o interno, poolo #
s demovilida
estra una list
io elija entre
esitamos mo
. EL control penera una list
como elemede eventos pva, sino, trabItemsAsLinknto ItemCOmRL. Prodremo DataTextFi
eFile "List..Web.UI.Mobi
�
página, pue
aspx.cs" InileControls"
N"
</mobile:Lab#Form2">Sigu
m</mobile:La#Form1">Ante
onemos en la
ad de los con
ta estática lim
e varios elem
ostrar la infor
puede trabajta estática en
entos que puara el eventoaja como unks transformammand se dos indicar esield
aspx.cs" InileControls"
��� �� A
ede conmuta
nherits "For
bel>uiente
abel>erior
a propiedad
ntroles de list
mitada de
mentos de un
rmación de u
jar en modon la que cada
edeno ItemCommna lista dea la lista deesencadenarsta URL med
nherits "Lis
A������
�rlos
m" %>
tado
a
una
a
mand
rá, yaiante
t" %>
�
www.depurando.com 381
<html<body
<
<<
<</bod</htm
usingusingusingusingusingusingusingusingusingusingusingusingpubli{
p{
}}
Un coDataSespecEstosAl deelem
<%@ PInher<%@ RAssem
<!DOC"http
<html<head
<</hea<body
<
DataVOnIte
<<
[auth
l xmlns "htty><mobile:Form
<b>Where<mobile:
<ite<ite<ite<ite<ite
</mobile</mobile:For<mobile:Form
<mobile:</mobile:Fordy>ml>
g System; g System.Colg System.Comg System.Datg System.Drag System.Webg System.Webg System.Webg System.Webg System.Webg System.Webg System.Webic partial c
protected vo{
string m e.ListI
Info.Tex ActiveFo
}
ontrol List puSource. El cocificada: unas valores se ffinir un gestentos como
Page Languagrits "ListBdRegister Tagmbly "System
CTYPE html Pp://www.w3.o
l xmlns "httd runat "ser<title></titad>y>
<mobile:Form<mobile:
ValueField "emDataBind "</mobile:For<asp:sqldata
ConnectiSelectCo
hors]"></asp
tp://www.w3.
m id "Form1"e do you wanList runat
em Text "Romem Text "Newem Text "Lonem Text "Parem Text "Syde:List>rm>m runat "servLabel runat
rm>
lections;mponentModelta;awing;b;b.Mobile;b.SessionStab.UI;b.UI.MobileCb.UI.WebContb.UI.HtmlConclass List :
oid List Cli
msg Stringtem.Text, e
xt msg; orm Result
uede estar limontrol List pua para la propfijan mediantor para Itemla combinac
ge "C#" Autod" %> gPrefix "mobm.Web.Mobile
PUBLIC " //Worg/TR/xhtml
tp://www.w3.rver">tle>
m ID "Form1"List DataSau id" RunaOnItemDataB
rm>asource id "onString "<
ommand "SELEp:sqldatasou
org/1999/xht
runat "servt to go toda"server" ide" Value "€1York" Value
don" Value "is" Value "€ney" Value "
ver" id "Res"server" id
;
te;
ontrols;rols;trols;System.Web
ck(object so
.Format("Goi
.ListItem.Va
sForm;
mitado por uuede vincularpiedad Text dte las propie
mDataBind, seción de más c
EventWireup
ile" Namespa" %>
3C//DTD XHTM1/DTD/xhtml1
org/1999/xht
Runat "servource "<%# St "server" Iind"></mobil
SqlDataSourc%$ ConnectioCT [au lnamerce>
tml" >
ver">ay?</b>"Cities" On
10" />e "$500" />"€200" />€350" />"$1200" />
sultsForm">d "Info"/>
.UI.MobileCo
ource, ListC
ing to {0} falue);
una fuente drse sólo conde la lista dedades DataTe puede tamcampos de o
"true" Code
ace "System.
ML 1.0 Trans1 transition
tml">
ver">SqlDataSourcID "lista"le:List>
ce1" runat "onStrings:pue], [au id],
nItemCommand
ontrols.Mobi
CommandEvent
for {1}.",
e datos sólodos columnae elementosTextField y Dmbién fijar el torigen.
eFile "ListB
.Web.UI.Mobi
sitional//ENnal.dtd">
ce1 %>" Data
"server"ubsConnectio, [au fname]
�
d "List Clic
ilePage
tArgs e)
mediante laas de la fueny otra de proataValueFieltexto de una
Bd.aspx.cs"
ileControls"
N"
aTextField "
onString %>" FROM
��� �� A
ck" >
a propiedadte de datosopiedad Valuld del controa lista de
au fname"
A������
�
ue.ol List.
�
www.depurando.com 382
</bod</htm
usingusingusingusingusingusing
publi{
p{
}p{
"au f}
}
El OEs lapuedorden
La prmenúla quehace
La visespeccerraAutoGa dib
<%@ PInher<%@ RAssem
<html<body
<
Style
<
Conne
FROM
</bod</htm
dy>ml>
g System; g System.Colg System.Webg System.Webg System.Webg System.Web
ic partial c
protected vo{
if (!IsP}protected vo{
// e.Listfname"), Dat}
Objeto Objparte de moe tener dos vnación de m
opiedad Labú rápido. Cade todos los cque pueda p
sta de detallecificados meda, cuyo texGenerateFieujar en realid
Page Languagrits "ObjectRegister Tagmbly "System
l xmlns "htty><mobile:Form
<mobile:eReference "
Data<Dev
</De</mobile
</mobile:For<asp:sql
ectionStringselectco
[Customers]
dy>ml>
lections.Geb;b.UI;b.UI.WebContb.UI.MobileC
class ListBd
oid Page Loa
PostBack) Da
oid OnItemDa
tItem.Text taBinder.Eva
jectListovilidad del cvistas: la deenú hecha co
elField les peda elementocampos de lapulsarse está
e puede includiante el usoxto se fija conld dentro dedad.
ge "C#" AutotListTest" %gPrefix "mobm.Web.Mobile
tp://www.w3.
m id "Form1"ObjectListsubcommand"
aSource "<%#viceSpecific<Choice Fil</Choice>
eviceSpecifie:ObjectListrm>datasource
gs:Connectioommand "SELE"></asp:sql
neric;
rols;ontrols;
: System.We
d(object sen
taBind();
taBind(Objec
String.Forml(e.DataItem
ontrol DataGlista y la de don los valore
ermite elegirmostrado se
a fila de datoá determinad
uir una barrao de la etiqun la propiedae las etiqueta
EventWireup>ile" Namespa" %>
org/1999/xht
runat "servID "ObjectLi
SqlDataSour>ter "IsIE">
c>>
id "SqlDataSnString %>"CT [Customerdatasource>
eb.UI.Mobile
nder, EventA
ct sender, L
mat("{0} $m, "au id"))
Grid del servdetalles. En les de un únic
r qué campoe puede seleos quedan moda por el disp
a de herramieta <commaad BackCommas <fields> le
"true" Code
ace "System.
tml" >
ver">ist1" Runat
rce1 %>" Lab
Source1" run
rID], [Compa
eControls.Mo
Args e)
ListDataBind
${1}", DataB);
idor de ASP.la vista de lisco campo.
o límite se pueccionar y geostrados. Lapositivo.
ientas con toand> junto comandText. Pe permite dec
eFile "Objec
.Web.UI.Mobi
"server" Co
belStyle Sty
nat "server"
anyName], [C
�
obilePage
dEventArgs e
Binder.Eval(
NET. En concsta, el contro
uede usar paenera una visforma en qu
odos los comon su corresPor último, lacidir qué cam
ctListTest.a
ileControls"
ommandStyle
yleReference
" connection
ContactName]
��� �� A
e)
e.DataItem,
creto, Objecol muestra u
ra promociosta de detalleue el elemen
mandospondientea propiedadmpos límite s
aspx.cs"
e "title">
nstring "<%$
, [ContactT
A������
!
tListna
onar ele ento se
se van
itle]
�
www.depurando.com 383
usingusingusingusingusingusingusingusingusingusingusingusing
publi{
p{
}}
El CPropolista dseleclado dWebSelec
El conbotónmúltisopotiposselec
ConLa clanavegpued
Los comoviHyperepre
ConGeneintrodpued
Este cejecumism
g System; g System.Colg System.Comg System.Datg System.Drag System.Webg System.Webg System.Webg System.Webg System.Webg System.Webg System.Web
ic partial c
protected vo{
if (!IsP}
ontrol Selorciona unade selección,cionar uno odel servidorcuando la prctedIndexCha
ntrol Selection de seleccióiple. Puede ertan todos ede lista de cción, cuadro
ntroles dease TextContgación y de een utilizarse
ontroles Linklidad Label eerLink de ASPesenta un bo
trol TextBera un cuadroduce el usuae tener más
control tambuta el gestorma página.
lections;mponentModelta;awing;b;b.Mobile;b.SessionStab.UI;b.UI.MobileCb.UI.WebContb.UI.HtmlCon
class Object
oid Page Loa
PostBack) Da
lectionLisselección UI, muestra uno más elemese genera auropiedad Auanged se gen
onList puedeón, botón deelegir entre estos tipos decomprobacióo de lista y de
e Textotrol es una clentrada. Tode mediante p
k, TextBox, yes similar al dP.NET. Otrosotón de coma
Boxo de texto deario. El controque una líne
bién tiene soespecificado
;
te;
ontrols;rols;trols;
ListTest : S
d(object sen
taBind();
stpara una lis
na lista de elentos. CuandoutomáticametoPostBack snera para el c
e dibujarse dcomprobaciellos mediane selección. Tón y de selece lista desple
lase abstractdos los contrrogramación
y Label son ejde ASP.NET ycontroles deando y el con
e una sola línol puede traea o ser un a
oporte para eo si el texto c
System.Web.U
nder, EventA
ta de elemeementos queo un elemenente, como ose fija con elcambio de se
e cinto tiposión, cuadrote la propiedTípicamente,ción múltipleegable se dib
ta a partir deoles basadosn para dibuja
jemplos de ey el control de texto son entrol PhoneC
nea y guardabajar en moatributo de só
el evento delcambia entre
UI.MobileCon
Args e)
ntos. AL iguae pueden pento queda seocurre en cievalor true. Eelección.
s distintos: lisde lista y cuadad SelectTy, un teléfonoe, de forma qbujan con un
e la cual heres en texto tiear la salida de
este tipo de cde movilidadel control CoCall.
a en la propiedo de contraólo lectura.
l lado del cliee dos envíos
�
ntrols.Mobil
al que la listarmitir a los uleccionado,ertos controlEl evento
sta desplegaadro de listaype. No todoso móvil reconque los tiposa lista de ele
edan ciertosenen la prope un control
controles. ElLink se paremmand, cuy
edad Text elaseña o num
ente OnTextCde datos suc
��� �� A
ePage
a desplegableusuariosningún evenles de listado
able (por defa con opcións los dispositnocerá sólos de cuadro dección.
controles deiedad Text, y.
control deece mucho aya lógica
texto queérico, pero n
Changed, qucesivos en la
A������
"
eo la
to delo
ecto),
tivoslosde
ey
l
no
ue
�
www.depurando.com 384
<mobi
ConContiPuedpermpara
Cualqservidgestoun arcontr
<%@ PInher<%@ RAssem
<html<body
<
<
<
<</bod</htm
usingusingusingusingusingusingusingusingusingusingusingusing
publi{
p{
}}
La prform
ile:TextBox</mobile
trol Commiene la mayoe ser dibujad
mite elegir enmostrar com
quier pulsacidor de dos foor del eventorgumento. Curol tiene que
Page Languagrits "TextBoRegister Tagmbly "System
l xmlns "htty><mobile:Form Search f
<mobile:<mobile:
</mobile:For
<mobile:Form<mobile:
</mobile:Fordy>ml>
g System; g System.Colg System.Comg System.Datg System.Drag System.Webg System.Webg System.Webg System.Webg System.Webg System.Webg System.Web
ic partial c
protected vo{
string m msg St theResul
ActiveFo}
opiedad Actulario activo
ID "TextBoxe:TextBox>
mandoría de las cado como untre Button o
mo elemento
ón en este cormas distinto ItemCommuando se pue realizar una
ge "C#" Autoox" %> gPrefix "mobm.Web.Mobile
tp://www.w3.
m ID "Form1"for:TextBox runCommand ID
rm>
m runat "servLabel runat
rm>
lections;mponentModelta;awing;b;b.Mobile;b.SessionStab.UI;b.UI.MobileCb.UI.WebContb.UI.HtmlCon
class TextBo
oid OnSearch
msg "Resultring.Formatts.Text m
orm Result
iveForm delo actualment
1" Runat "se
racterísticasbotón de eno Link. Si el foo seleccionab
ontrol provotas: con el geand, puede tlsa el controa validación s
EventWireup
ile" Namespa" %>
org/1999/xht
runat "serv
at "server""Command1" r
ver" id "Res"server" id
;
te;
ontrols;rols;trols;
x : System.W
(object send
ts for '{0}(msg, theSubsg;
sForm;
objeto Formte.
erver" OnTex
s del controlnvío o como uormato elegible. La image
oca un envíoestor del evetambién darl, la propiedsobre el rest
"true" Code
ace "System.
tml" >
ver">
id "theSubjrunat "serve
sultsForm">d "theResult
Web.UI.Mobil
der, EventAr
'";bject.Text);
mmodifica u
xtChanged "A
Button de Aun hipervíncdo es Link, pen se fija med
de datos. Puento ItemCor al control uad lógica Cauo de control
eFile "TextB
.Web.UI.Mobi
ject" />er" Text "GO
ts" />
leControls.M
rgs e)
;
obtiene med
�
Alert">
SP.NET y deulo. La proppodemos elediante la pro
uede configummand o con nombre yusesValidatioes del formu
Box.aspx.cs"
ileControls"
O" OnClick "
MobilePage
diante progr
��� �� A
LinkButton.iedad Formagir una imagopiedad Imag
urar el códigoon OnClick. Copcionalmenon calcula siulario.
OnSearch" /
amación el
A������
)
atgengeUrl.
o delCon elnteel
>
�
www.depurando.com 385
PhoEste cParaintera
La pren divalortextocontrhiperteléfo
<%@ P%><%@ RAssem
<html<body
<
<</bod</htm
DibLas aespecconodibujdispose repcontr
EnteEl entapropnecesun cogene<Dev
El eleelecc
otoCallcontrol es sódispositivosactivo que h
opiedad Altespositivos side Text y el
o plano a merol genera unrvínculo queono se dibuja
Page Languag
Register Tagmbly "System
l xmlns "htty><mobile:Form Phone nu
<mobile:AlteAltePhonText
<mobile:AltePhonText
</mobile:Fordy>ml>
ujo Adapplicaciones dcíficos o a cacidas de losado del contositivo. El dibpresenta conroles.
endiendotorno de ejepiado para esita un códigonjunto de firarlo para caviceSpecific>
emento <Devciones repres
ólo de salidaque permiteace una llam
ernateForman capacidadeotro que tennos que se hn hipervíncuapunta a dica.
ge "C#" Auto
gPrefix "mobm.Web.Mobile
tp://www.w3.
m id "Form1"umbers found PhoneCall I
ernateFormaternateURL "hneNumber "11t "ACME CorpPhoneCall I
ernateFormatneNumber "11t "Home" />rm>
ptativode movilidadategorías dedispositivos,trol sea másbujado adaptn una etique
los filtrocución de ASl dibujado engo diferenteltros de dispada filtro. Expy <Choice>.
viceSpecific>sentan pares
y se usa paren hacer llammada cuando
at puede seres telefónicanga el valor dhaya especifilo que apuntcha URL. Si la
EventWireup
ile" Namespa" %>
org/1999/xht
runat "servfor Joe:<br
D "PhoneCall"{0} at {1
ttp://www.ac1 222 0000"" />D "PhoneCall"{0} at {1
1 333 0000"
d pueden adadispositivos., puede variao menos vistativo se realta <DeviceSp
s de dispoSP.NET abstrn una gran vpara el mismpositivo paraprese un filtr
> es un contes hechos a pa
a representamadas, el conse le selecc
cualquier caas. Puede acede PhoneNucado la propta a dicha URa propiedad
"true" Code
ace "System.
tml" >
ver">r />l1" runat "s}"cme.com"
l2" runat "s}"
aptar la apar. Debido a quar el estilo detoso para asliza usando fpecific> dent
ositivosrae el códigoariedad de dmo control bala aplicaciónro de dispos
enedor que gartir de carac
ar un númerontrol se compiona.
adena y se useptar dos pamber. El texpiedad AlternRL. En este caText no está
eFile "Phone
.Web.UI.Mobi
server"
server"
riencia de losue están base los controlesí acomodarlofiltros de disptro del posic
o .aspx y genedispositivos.asado en varn y especificaitivo usando
guarda un núcterísticas de
�
o de teléfonoporta como u
sa para reprerámetros, unto alternativnateURL. Enaso, el contrdefinida, el
e.aspx.cs" I
ileControls"
s controles aados en capaes al igual quo a las caracpositivos. Unionamiento
era el lenguaSin embargorios dispositiar entonces elos element
úmero de elee dispositivo
��� �� A
o al que llamun elemento
esentar el cono que tengavo se dibuja ceste caso, elrol genera unnúmero de
nherits "Ph
dispositivosacidadesue hacer queterísticas deno de estos frelativo de lo
aje de marcao, cuandovos, debe deel código patos
ecciones. Lass y valores
A������
*mar.o
ontrola elcomo
n
one"
s
e ellfiltrosos
ado
efinirra
�
www.depurando.com 386
correopciósiguie
<devi
</dev
El eleatribuargumdibuj
<%@ PInher
<%@ RAssem<html<body<mobi
<
<</mob</bod</htm
SesiMuchpor la
<se
PagParacontrpágin
espondientesón si el filtroente listado
iceFilters><filter n<filter n
<filter nviceFilters>
ement <filteruto comparement es el vaar encursiva
Page Languagrits "LabelT
Register Tagmbly "Systeml xmlns "htty>ile:Form ID<mobile:Labe
<DeviceS<Cho<Cho
</Device</mobile:Labbile:Form>dy>ml>
ioneshos dispositiva tanto sería
essionState c
ginaciónpaginar se proles como Lna en la prop
s. Los filtros destá verificamuestra var
name "IsIE"name "IsMobiname "isHTML>
r> tiene un ne define la caalor que tienen dispositiv
ge "C#" AutoTest" %>
gPrefix "mobm.Web.Mobiletp://www.w3.
"Form1" Runel ID "Labelpecific>
oice Filteroice FiltereSpecific>bel>
vos móvilesuna buena p
ookieless="tr
pone a true laList, ObjectLIspiedad Items
de dispositivdo, esto es,ios filtros qu
compare "Brile" compareL32" compare
ombre que sapacidad delne que coincivos WML 1.1
EventWireup
ile" Namespa" %> org/1999/xht
at "server">1" Runat "se
"IsMobile" F"IsIE" Font
tienen problpráctica:
rue" />
a propiedadst, TextViewPerPage
vos se definesi el atributoe están defi
rowser" argum"IsMobileD"PreferredR
se usa para vdispositivo qdir. Por ejem1 y como text
"true" Code
ace "System.
tml">
>erver">
Font ItalicName "Arial
lemas con la
del formular, permiten e
en en el archio del dispositnidos en el a
ment "IE" />evice" argumRenderingTyp
vincularlo coque quiere pmplo, si teneto normal en
eFile "Label
.Web.UI.Mobi
"True" />l Black" Fon
s cookies, o
rio Paginate.especificar el
�
ivo web.conftivo y el valoarchivo web.
>ment "true"pe" argument
n el elementprobar. La prmos una etiqn el resto de
lTest.aspx.c
ileControls"
nt Size "Lar
simplement
A continuacnúmero de
��� �� A
fig. Se elije uor coinciden.config.
/>t "html32" /
t <choice>. Eopiedadqueta parasitios:
cs"
rge" />
e no las adm
ción, diferenItems por ca
A������
unaEl
/>
El
miten
tesada
�
www.depurando.com 387
AApliicaccio
��
��
J�
ǿǿǿΦƛƴŀŘŜŎƻΦŎƻƳ
Mnecon
���
��-R
�����
MCsn .N
��
RS
���
CTS:WebNET
3
�
:bT
5
www.depurando.com 388
��
CacEl cacrespusalidacache
Parao valinivelsalidapeticcacheo POS
La caestá epagina losejecupolíti
DireEl sigdirectrespuse gelo qu
<%@ P<%@ O<html<scri
v{
}
</s<body
<
<
</bod</htm
La sigu
���
cheado decheado de sauestas metiea está habilitea a menos q
hacer que seidación y visiOutputCacha, se crea uniones GET oeada caducaST cacheado
ché de salidaen el caché dna caduca a l60 minutos.uta y la páginca de caduci
ectiva de cuiente ejemtiva@Outpuuesta. Para vneró la respe indica que
Page LanguagOutputCachel>ipt runat "s
void Page Lo{ TimeMsg.
}
script>y><h3>
<font fa<p>
<i>Last<asp:Lab
dy>ml>
uiente directiva
� ���
e la págialida es una pndo en la catado por defeque se espec
ea posible caibilidad públhe o la directa entrada deHEAD poste. La caché deos.
a respeta lasde salida y haos 60 minutoSi se recibe
na puede seridad � una pá
caché deplo demuestutCache. Estver el cacheauesta. Entonse está sirvi
ge "C#" %> Duration "6
erver">
oad(Object s
Text Date
ace "Verdana
generated obel ID "TimeM
a activa el caché
�-R
na de sapotente técnché el conteecto, pero ecifique esa re
achear una reica de su cactiva de alto ne caché de saeriores se sirve salida tamb
s políticas dea sido marcaos de haberotra peticióncacheada deágina es válid
salidatra una forme ejemplo sido de salidances refrescaendo la segu
0" VaryByPar
ender, Event
Time.Now.ToS
">Using the
n:</i>Msg" runat "
é de salida en la
alidanica que increnido general resultado despuesta com
espuesta, deché. Podemonivel@Outpualida en la prven desde labién permite
e caducidad yado con unasido cacheadn después dee nuevo. Seda durante c
a simple demplementeen acción, c
ad la página yunda respues
ram "none" %
tArgs e)
String("G");
Output Cach
"server" />
a respuesta:
�
rementa la redo por páginde una respumo cacheable
ebe tener unos hacer estoutCache. Cuarimera peticicaché de sa
e variaciones
y validación dpolítica de cda, se quita ae ese intervallama caducicierto tiempo
cachear respmuestra la hcargad la págy observad qsta desde el
%>
;
he</font></h
���� ��
espuesta denas dinámicaesta determe.
a política válo o bien usanando se habiión GET a lalida hasta qus de pares no
de las páginaaducidad qua la página dalo, el códigoidad absoluto.
puestas de sahora a la quegina y observque la hora ncaché de sal
h3>
���-RS J
las peticioneas. El cacheadinada no se
lida de caducndo la API deilita el cachépágina. Todaue la peticiónombre/valor
as. Si una págue indica quedel caché deo de la páginaa a este tipo
alida mediane se generó lava la hora a lano ha cambialida.
�������
�
es ydo de
cidade bajoé deas lasnGET
ginae lasalidaa seo de
nte laaa queado,
www.depurando.com 389
<%@
Esta dningúndesdeexplíci
Por suejempmostra
<%@ P<%@ O
<scri
v{
}</scr
<html<body
<
Conne
[city
<</bod</htm
CamEn esformacambla dir
<%@
Por cpartebase
Obsegeneque setiqu
<%@ Pa
OutputCache D
irectiva indica sn parámetro GEla caché. Despita y se vuelve a
puesto, en el eplo demuestra laando los resulta
Page LanguagOutputCache
ipt runat "s
void Page Lo{ TimeMsg.
}ript>
l>y><form id "Fo
<h3><fon
<asp:SqlectionString
Seley], [state],
<asp:Gri<p>
<i>L<asp
</form>dy>ml>
mbiar medste ejemplo ma selectiva abien los pareectiva Outpu
OutputCach
ada estado ee de la cadende datos y m
rva que la prra una nuevase vuelva a ineta muestra
age Language=
Duration="60" V
sencillamente qET o POST. Lasués de 60 segua cachear la pág
ejemplo anterioa misma técnicados en una tab
ge "c#" %> Duration "6
erver">
oad(Object S
Text Date
orm1" runat
nt face "VerDataSource
gs:Pubs %>"ectCommand " [zip], [codView ID "G
Last generatp:Label ID "
diante parmodificamosutores en vas nombre/vautCache.
he Duration=
en el conjuntna de consultmuestra sólo
rimera vez qa etiqueta dentroducir unaa la fecha y h
"C#" %>
VaryByParam="
que la página depeticiones quendos, se quita agina.
or se ahorra mua de cacheadobla.
0" VaryByPar
rc, EventArg
Time.Now.ToS
"server">
dana">UsingID "SqlDataS
SELECT [au intract] FROMridView1" ru
ed on:</i>TimeMsg" run
rámetross ligeramentearios estadosalor de la cad
="60" VaryBy
to de datos,ta. Entoncesaquellos aut
ue hacemose fecha en laa búsquedaora a la que
"none"%>
ebe cachearsese reciban miea la página de l
y poco trabajode salida, pero
ram "none" %
gs E)
String("G");
the Output Source1" run
id], [au lnaM [authors]"unat "server
nat "server"
e la aplicaciós. El ejemplodena de cons
yParam="sta
hay un víncula aplicacióntores que pe
clic en el vína parte inferipor ese estase cacheó la
�
durante 60 segentras la páginaa caché; se ma
mediante el cao realizando una
%>
;
Cache</fontnat "server"
ame], [au fn" />r" DataSourc
" /></p>
ón para permmuestra el csulta usando
te" %>
ulo que pasan construye lertenezcan a
nculo de un eor de la págido en el espa petición ori
���� ��
gundos y que laesté en la cachneja la siguient
acheado de salida llamada a una
t></h3>" Connection
name], [phon
ceID "sqldat
mitir al usuarcacheado deo el atributo
el estado dela consulta al estado sele
estado deterina. A partiracio de un miginal.
���-RS J
página no varihé serán responte petición de fo
da. El siguientea base de datos
nString "<%$
ne], [addres
tasource1" /
io que busque peticiones qVaryByParam
eseado comopropiada a leccionado.
rminado sede ahí, cadaminuto, la
�������
�
ará porndidasorma
es y
s],
>
ue dequem de
oa
vez
www.depurando.com 390
<%@ Ou
<scrip
vo {
} </scri
<html><body>
<f
Connec
[state
</</body</html
NotiEn elhabíacachésolam
SustEn ASpequfrecucachecacheconte
En elméto
utputCache Du
pt runat="serv
oid Page Load
TimeMsg.Tex
ipt>
>>form id="Form
<h3><font
<b>Authors<table cel
border<tr>
<td
<td
<td
<td
<td
<td
<td
<td
</tr></table><p></p><asp:SqlDat
ctionStrings:SelectC
e], [zip], [co<Select
<a</Sele
</asp:SqlDa<asp:GridV<p>
<i>Last<asp:La
</p>/form>y>l>
ificación dejemplo antan cambiadoé de entradamente se lim
titución PSP.NET 1.0, laeña región dencia a no ueados con caeado de salidenido dinám
siguiente ejeodo estático
ration="60" V
ver">
(Object Src,
xt = DateTime
1" runat="ser
face="Verdanaby State:</blspacing="0"color: black
d><a href="ou
d><a href="ou
d><a href="ou
d><a href="ou
d><a href="ou
d><a href="ou
d><a href="ou
d><a href="ou
taSource ID="Pubs %>"Command="SELEontract] FROMtParameters>sp:QueryStrinctParameters>ataSource>iew ID="GridV
t generated oabel ID="Time
de Cacheterior los dato en la base da dependa depiará cuando
Post�Cachéas páginas qdinámica, cosar cacheadaché de fragmda, permitienico en cada s
emplo, la páque devuelv
VaryByParam="s
EventArgs E)
.Now.ToString
ver">
">Using the O>cellpadding="k; border colo
tputcache3 cs
tputcache3 cs
tputcache3 cs
tputcache3 cs
tputcache3 cs
tputcache3 cs
tputcache3 cs
tputcache3 cs
SqlDataSource
CT [au id], [M [authors] wh
gParameter Na
View1" runat="
n:</i>Msg" runat="s
Sqltos se cacheade datos. La ie la base de do los datos e
éue eran estámo el nombro o a dividirmentos. ASPndo que las psolicitud.
gina con salive la fecha ac
state" %>
g("G");
Output Cache</
"3" rules="allor: black; wid
s.aspx?state=C
s.aspx?state=I
s.aspx?state=K
s.aspx?state=M
s.aspx?state=M
s.aspx?state=O
s.aspx?state=T
s.aspx?state=U
e1" runat="ser
[au lname], [ahere state=@st
ame="state" Qu
"server" DataS
server" />
aban durantinvalidacióndatos, de talen la base de
áticas en su mre de usuariola página en.NET 2.0 perpáginas de sa
ida cacheadactual median
�
/font></h3>
l" style="backdth: 700px; bo
CA">CA</a></td
IN">IN</a></td
KS">KS</a></td
MD">MD</a></td
MI">MI</a></td
OR">OR</a></td
TN">TN</a></td
UT">UT</a></td
rver" Connecti
au fname], [phtate">
ueryStringFiel
SourceID="sqld
e 60 segundde caché SQmanera quedatos hayan
mayor parteo o la hora amúltiples co
rmite que estalida cachea
a inserta unante la API Res
���� ��
kground colororder collapse
d>
d>
d>
d>
d>
d>
d>
d>
ionString="<%
hone], [addre
ld="state" De
datasource1"
os, sin imporQL te permitee el caché den cambiado.
pero que coctual, eran foontroles de utas páginas sdas puedan
a llamada dinsponse.Write
���-RS J
: #AAAADD;e: collapse;"
$
ss], [city],
faultValue="C
/>
rtar si los dae hacer que le entrada
ntenían unaorzadas conusuariose aprovecheinsertar nue
námica a uneSubstitution
�������
�
>
A" />
tosa
en delevo
n.
www.depurando.com 391
Esta lcaché
<%@ P<%@ O
<scristati{
r}</scr
<html<head
<</hea<body
<<<
page.<T<<R
HttpR<<<<
</bod</htm
El sigasp:S
<%@ P<%@ O
<scris{
}</scr
<html<head
<</hea<body
<
cache
Metho
<</bod</htm
llamada dináé de respues
Page LanguagOutputCache
ipt runat "sic string Ge
return DateT
ript>
l>d id "Head1"<title>Postad>y><form id "fo<div><b>This page</b>
<br /><br />Time: <% Da<br /><br /><b>Real Time: <ResponseSubs</b></div></div></form>dy>ml>
uiente ejemSubstitution p
Page LanguagOutputCache
ipt runat "sstatic strin{
return D}ript>
l>d id "Head1"<title>Postad>y><form id "fo
<h4> This
ed page.</h4<p>
Time <%
</p><p>
<b>R
odName "GetC</b>
</p></form>dy>ml>
ámica se ejecsta que se sir
ge "C#" %> Duration "6
erver">etCurrentDat
Time.Now.ToS
runat "servCache Subst
orm1" runat
e uses post
>ateTime.Now.>
<% Response.WtitutionCal
plo realiza lapara insertar
ge "C#" %> Duration "6
erver">ng GetCurren
DateTime.Now
runat "servCache Subst
orm1" runat
page uses p>
e:DateTime.Now
Real Time: <asp:Substi
CurrentDate">
cuta en cadarve desde el
0" VaryByPar
e(HttpContex
tring();
ver">itution</tit
"server">
cache substi
ToString() %
WriteSubstitlback(GetCur
a misma accir el contenid
0" VaryByPar
tDate(HttpCo
.ToString();
ver">itution</tit
"server">
post cache s
w.ToString()
tution ID "S/>
a solicitud, ycaché de sal
ram "none"
xt context)
tle>
itution to i
%>
tution(newrrentDate));
ón que el ando dinámico.
ram "none" %
ontext conte
;
tle>
substitution
) %>
Substitution
�
el resultadoida.
" %>
insert a dyn
; %>
nterior, pero
%>
ext)
n to insert
n1" runat "s
���� ��
se inserta en
namic value
usa un cont
a dynamic v
server"
���-RS J
n la cadena d
into a cach
rol
value into a
�������
�de
ed
www.depurando.com 392
UsanAqueel cacSystedirect
RespoRespo
Podecaducla pro
RespoRespoRespo
CacAdemsimplnombcontrde lasegunusuarla sigduran"Sele
<%@
El atrde usde cainstan
http:/http:/
ndo el APellas aplicacioché pueden uem.Web.Httptivas de pági
onse.Cache.Sonse.Cache.S
mos convertcidad se vueopiedad Slidi
onse.Cache.Sonse.Cache.Sonse.Cache.S
heado pomás de poderle de cacheabre de cacherol de usuarique hemosndos) que derio, así comouiente directnte 120 seguctedID" o los
@ OutputCac
ributo VaryBsuario ordenaché de salidncias de con
//localhost/m//localhost/m
PI de cachones que necusar la funciopCachePolicina de ejemp
SetExpires(DSetCacheab
tirla en una plva a estableingExpiratio
SetExpires(DSetCacheabSetSlidingEx
or fragmer cachear la sr la salida deeado por frago, y marcarlahablado en lebe estar caco cualquier otiva le dice aundos, y ques parámetro
che Duration
yParam es ear a ASP.NETa en el servidtenido del co
mypage.aspxmypage.aspx
écesiten másonalidad proy. El siguientplos anterior
DateTime.Nolity(HttpCac
política de caecer cada vezn como en e
DateTime.Nolity(HttpCacpiration(true
entos desalida de unae regiones degmentos. Podas para que sla sección ancheado en elotra condicióa ASP.NET qucambie el cas de envío d
n="120" Vary
extremadameT para que ador. Por ejemontrol de usu
x?categoryidx?categoryid
control sobroporcionadate ejemplo mres:
w.AddSeconheability.Pub
aducidad desz que se hacel siguiente e
w.AddSeconheability.Pube);
páginaa página ente contenidodemos delimsean cacheanterior. Estal servidor el cn opcional pue meta en laaché usandoel formulario
yByParam="C
ente potentelmacene enmplo, las siguuario del eje
d=foo&selectd=foo&select
�
re los encabepor la clase
muestra el có
nds(60));blic);
slizante, hace una peticióejemplo.
nds(60));blic);
era, ASP.NETde página, a
mitar áreas ddas usando ldirectiva espcontenido deor la cual dea caché de sao las cadenaso.
CategoryID;S
e y permite acaché múltipuientes URLsemplo anterio
tedid=0tedid=1
���� ��
ezados HTTP
ódigo equiva
iendo que laón a la págin
T te proporcla que se lee nuestra pála directiva@pecifica la due salida del cebiera cambialida al contrs de búsqued
SelectedID"%
a los creadorples instancias distinguenor.
���-RS J
relacionado
lente a las
a hora dea, establecie
iona una forha dado elágina median@OutputCacuración (encontrol dear. Por ejemrol de usuarida "Category
%>
res de controas de una reentre distint
�������
�os con
endo
ma
nte unche
plo,ioyID" y
olesgióntas
www.depurando.com 393
Por loconteAdematribucacheVaryBusuar
<%@
Tenetantocontrlos redesplmenú
<%@<%@
<htm<bo<ta<t<
<<
<<
<<t</t</bo</htm
El sigsopo
<%@<%@
o tanto, la lóenido diferenmás de permuto VaryByCeados basánByControl cario. Por ejem
OutputCach
d en cuentao de VaryByProl de usuariesultados delegable. El siú de una pág
Page LanguRegister Tag
ml>dy>able>tr><td><Acme:Men</td><td><h1>Hola, la</td><td><Acme:Men</td>tr>table>ody>ml>
uiente ejemrte para cach
Control LanOutputCach
ógica dentronte (que se citir el atributControl. Miendose en pareambia el fragmplo:
he Duration=
que, como cParam comoo contiene ul control de uguiente códigina mediant
age="C#" %>gPrefix="Acm
nu Category=
a hora actua
nu Category=
plo demuesthé.
nguage="C#"he Duration=
de un controcachea por seto VaryByPantras que eles nombre�vgmento cach
="120" VaryB
con las páginde VaryByC
un control deusuario depeigo de ejempte un control
>me" TagNam
="MenuIzqui
al es: <%=Dat
="MenuDere
tra la implem
ClassName=="120" VaryB
ol de usuarioeparado) deram, el cachatributo Varvalor enviadoeado en bas
ByParam="Ca
nas con cachéControl incluse lista despleendiendo deplo muestral de usuario
me="Menu" S
ierdo" runat
teTime.Now%
echo" runat=
mentación de
="AcmeMenByParam="no
�
o puede genependiendo dheado por fraryByParam cos mediantese a controle
ategoryID;Se
é de salida, sso si no se usegable llamadl valor selecccómo meterdeclarativo.
Src="Menu.a
=server/>
%> </h1>
=server/>
el control de
u" %>one" %>
���� ��
erar dinámicde los argumagmentos tamambia los rePOST o GET,s dentro del
electedID"%>
se requiere esa ninguno ddo Categoríacionado denr en caché do
scx" %>
usuario "Ac
���-RS J
amenteentos que rembién permesultados, el atributocontrol de
>
el uso explícitde los dos. Sia podríamostro de la listaos sección de
me:Menu" c
�������
!eciba.ite un
toelvariarae
con
www.depurando.com 394
<scrip
pub
voi
A
MM
}
</scr
<asp:
Teneusuarcontrpasadencap
El sigde unlas prla ho60 se
<%@ P<%@ R
<html
<scriv{
}</s
<body<form
<
<<<<<
</bod</htm
Data<%@ C<%@ O
pt runat=ser
blic String Ca
id Page_Load
AdoConnecti
MyMenu.DatMyMenu.Dat
ipt>
:datagrid id=
d en cuentario durante urol de usuarido los 120 sepsulado limp
uiente ejemn control queropiedades dra se actualizegundos.
Page LanguagRegister Tag
l>
ipt runat "svoid Page Lo{ TimeMsg.
}script>
y>m id "Form1"<h3>
<font fa<Acme:DataCo<br><i>Page last<asp:Label I</form>dy>ml>
actrl cs.ascxControl LangOutputCache
ver>
ategory;
d(Object sen
ion conn = n
taSource = ctaBind();
="MyMenu"
que este ejeun periodo do de tipo meegundos o popiamente de
plo demueste recupera ddinámicas deza con cada
ge "C#" %> gPrefix "Acm
erver">oad(Object S
Text Date
runat serv
ace "Verdanaontrol ID "D
t generated D "TimeMsg"
xguage "C#" %Duration "6
nder, EventAr
ew AdoConn
onn.Execute
runat=serve
emplo mete ede 120 segunenú en caso dorque la memntro del cont
tra un cacheatos desde ue la página parefresco, mie
e" TagName "
rc, EventArg
Time.Now.ToS
er>
">Fragment CataControl1"
on:</i>runat "serv
>0" VaryByPar
rgs e) {
nection("My
e("select * fr
r/>
en la caché dndos. Toda lade producirsmoria en el strol de usua
ado de fragmuna base deadre. Se pueentras que e
"DataControl
gs E)
String("G");
Caching</fon" runat "ser
ver" />
ram "none" %
�
DSN");
om menu wh
de salida la ra lógica necese un fallo enservidor se hrio.
mentos simpdatos SQL Sede ver que lael control de
l" Src "data
;
nt></h3>rver" />
%>
���� ��
here categor
espuesta desaria para ren la caché (sea quedado c
le. El ejemplerver, mienta página es dusuario sólo
actrl cs.asc
���-RS J
ry=" + Catego
cada controecrear cadaea porque hacorta) se ha
lo cachea la sras que mandinámica poro se actualiza
cx" %>
�������
"
ory );
ol de
an
salidantienerquea cada
www.depurando.com 395
<scriv{
}</s
<asp:Conne
S[stat<asp:<p>
<<
CacASP.NalmacASP.Ncachereinic
La caprogrvolca
Cach
La reccompejem
myVaif(myDis
}
UsanEl sigdatosCuanprimerefre
<%@ P<%@ I
ipt runat "svoid Page Lo{ TimeMsg.
}script>
SqlDataSourectionStringSelectCommante], [zip], GridView ID
<i>Control l<asp:Label I
heando lNET disponecenar y recuNET es privade es equivalecia, la cache
ché proporcramadores fáar un elemen
he["myKey"]
cuperación dprobarse la eplo siguiente
alue = CacheyValue != nulsplayData(my
ndo los dauiente ejems y guarda endo ejecutéisera petición,scar la págin
Page LanguagImport Names
erver">oad(Object S
Text Date
rce ID "SqlDgs:Pubs %>"nd "SELECT [[contract]
D "GridView1
ast generatD "TimeMsg"
los datosde un motoperar cualquda para cadaente a la durase vuelve a c
iona una inteácilmente ponto en la cach
= myValue;
de datos delexistencia dee:
["mykey"];l ) {yValue);
atos de laplo muestran caché el res el ejemplo,, indica que lna, se apunta
ge "C#" %> pace "System
rc, EventArg
Time.Now.ToS
ataSource1"
au id], [auFROM [author" runat "ser
ed on:</i>runat "serv
de la págr de caché couier tipo de oa aplicación yación de la acrear.
erface con uoner objetoshe es como a
cache es mul objeto en c
a cachéotro uso sensultado, quéobservad elos datos hana que se ha u
m.Data" %>
gs E)
String("G");
runat "serv
lname], [aurs]" />rver" DataSo
ver" /></p>
ginaompleto queobjeto a travy almacena laplicación; es
n Diccionarien la cachéañadir un ele
uy simple. Hacache antes d
ncillo de la caé se seguirá umensaje enn sido recupeusado la copi
�
;
ver" Connect
u fname], [p
ourceID "sql
e puede ser uvés de las petos objetos esto significa q
o simple quey recuperarlemento a un
ay que tenerde recuperar
aché. Ejecutusando durala parte infeerados de laa de la caché
���� ��
tionString "
phone], [add
ldatasource1
usado por laticiones HTTn memoria.que cuando
e permite a llos. En el casdiccionario:
r en cuenta qrlo, como se
a una consunte la vida derior de la pábase de daté.
���-RS J
<%$
dress], [cit
" />
s páginas paTP. La caché dLa duraciónuna aplicaci
osso más simpl
que debe demuestra en
lta a la basee la aplicacióágina. Con laos. Después
�������
)
y],
radede laón se
e,
el
deón.
de
www.depurando.com 396
<%@ I
<html
<scriv{
SqlCo
myCon
}</s
<body<
<</bod</htm
Inva
InvaEste m2005
1
Import Names
l>
ipt runat "svoid Page Lo{
DataView
// try t// if it
Source
if (Sour {
SqlConnection(Co
SqlDnnection);
Data myCo
Sour Cach
Cach }
else { Cach }
MyGrid.D MyGrid.D
}script>
y><form id "Fo
<h3><fon
<asp:Gri</asp:Gr<p>
<i>
</p></form>dy>ml>
alidación
alidaciónmecanismo upara detect
1. Se configOutputCaASP.NETun contro
Para la pá
pace "System
erver">oad(Object S
w Source;
to retrieve t's not ther
(DataView)
rce null)
Connection monfigurationMDataAdapter m
aSet ds newommand.Fill(
rce new Dahe["MyDataSe
heMsg.Text
heMsg.Text
DataSource DataBind();
orm1" method
nt face "VerdView ID "M
ridView>
<asp:Label
n de la Ca
Caché bausa el mecanar cambios e
ura una notiache, utilizanque se va a uol DataSourc
ágina:
m.Data.SqlCl
rc, EventArg
item from cae, add it
Cache["MyDat
yConnectionManager.ConnmyCommand
w DataSet();ds, "Authors
taView(ds.Tat"] Source
"Dataset cr
"Dataset re
Source;
"GET" runat
dana">CachinyGrid" runat
ID "CacheMsg
aché
sada en Nnismo de noten el resultad
ificación basando la cadenutilizar una dce
lient" %>
gs E)
ache
taSet"];
newnectionStrinnew SqlData
;s");
ables["Authoe;
reated expli
etrieved fro
t "server">
ng Data</font "server">
g" runat "se
Notificaciotificación dedo de las con
ada en depea Commanddependencia
�
ngs["Pubs"].aAdapter("se
ors"]);
icitly";
om cache";
nt></h3>
erver" /></i
ones de SQcambios ennsultas.
endencia de sdNotificationa basada en n
���� ��
ConnectionSelect * from
i>
QL Serverlas consulta
sql en la diren. Este valornotificacione
���-RS J
tring);m Authors",
r 2005s de SQL Ser
ectivale indica aes para la pág
�������
*
rver
gina o
www.depurando.com 397
2
3
Siemautomcambprovosoliciserán
Algun
1
2
3
4
��
Para
<%@ OutVaryByPa
2.Para el co
<asp:SqlDCacheDu
3. Se debe lde la apliponerse e
pre que un cmáticamentebios enviadosocará la invate una páginn ejecutados
nos puntos a
1. Las consuSelect. Sinotificaci
2. Los nombquiere obdebe refe
3. El usuariopara regisesos dere
4. El usuarioderechosTransactSERVICE:
��� �
trabajar en e
tputCache Daram="none"
ontrol Datas
DataSource Eration="Infin
lamar al metcación antesen el evento
comando este crearán uns por SQL Selidación de lna o control Den vez de ob
a tener encue
ultas deben ise usa "SELEones de SQL
bres de las tabtener una cerenciar a la
o de SQL Serstrar consultechos : GRAN
o de SQL Sers para enviarSQL otorga e:SqlQueryNo
�� J��
el IIS con Asp
uration="99" %>
source:
EnableCachinnite" ... />
todo Systems de que se eApplication_
tá relacionada dependenrver. Cuandoas consultasDataSource abtener la inf
entra para q
ndicar explícECT *" los reL 2005.
ablas debenonsulta de latabla como
ver 2005 quetas para notiNT SUBSCRIB
ver 2005 quenotificacionesos derechootificationSer
�����
p.NET tenem
9999" SqlDe
ng="true" Sq
m.Data.SqlClieejecute la pri_Start() del f
do con SQL Scia de cachéo se cambias en la cachéasociado conormación de
ue las notific
citamente losultados de
incluir el noma tabla autho"dbo.author
e está ejecutficaciones. EBE QUERY NO
e está ejecutnes desde SQos: GRANT SErvice TO user
�
mos que regis
�
ependency="
qlCacheDepe
ent.SqlDepenmera consulfichero globa
erver 2005, Aé que escuchun dato en Sdel servidorn la dependeel caché.
caciones func
os nombres dla consulta n
mbre del proor de la basers".
tando la conEl siguiente cOTIFICATION
tanto la consQL Server 200END ONrname.
strar el Fram
���� ��
CommandN
endency="Co
ndency.Startlta SQL. Estaal.asax.
ASP.NET y Ae las notificaSQL Server, er web. La próencia, la pági
cionen corre
de las columnno se registra
opietario. Pode datos pu
sulta tiene qcomando TraS TO userna
sulta tambie05. El siguien
ework.
���-RS J
otification"
ommandNot
t() en algún lllamada pue
DO.NETaciones deesta notificacóxima vez quna o el contr
ectamente so
nas en la clauaran para las
or ejemplo, subs, la consu
que tener peansact SQL otme.
n tiene que tnte comando
�������
fication"
ugarede
cióne serol
on:
usulas
ilta se
rmisotorga
tenero
www.depurando.com 398
Aspn
PubPode
CreaAntes
<com
[ArchImple
et_regiis i
blicar sitimos publica
ar Instalas de crear un
mpilation deb
hivo][Agregarementación]
ior un sitio des
adorn instalador s
bug=”false”/>
r][Nuevo Pro[Asistente p
sde el Visual
sería conven
>
oyecto][Otroara proyecto
l Studio en [G
niente establ
os Tipos de Pos de instalac
�
Generar] [Pu
ecer en el w
royectos][Inción]
���� ��
ublicar sitio]
eb.config
stalación e
���-RS J�������
�
www.depurando.com 399
AApliicaccio
��
'%
'T
ǿǿǿΦƛƴŀŘŜŎƻΦŎƻƳ
Mnecon
���
%��;
T'@
MCsn .N
� ��
;��
CTS:WebNET
3
�
:bT
5
www.depurando.com 400
����� � '%���;��� 'T'@@
���� �� '%��;;�� 'T'@
�
@
www.depurando.com 401
XMLHservid
HttpRequestdor.
Encargado dde habilitar la comunicacción asíncron
����
na entre el cl
�� '%��;
liente y el
;�� 'T'@
�
@
www.depurando.com 402
Las atenemmás r
plicaciones wmos los refrerápido, ya qu
web tradicioescos que haue no vieja to
nales tienenacen las aplicodo el conte
postback cucaciones webnido, solame
uando se hacb molestas. Cente lo nece
����
ce una acciónCon Ajax lasario.
�� '%��;
n. En Ajax noágina se carg
;�� 'T'@
�
oga
@
www.depurando.com 403
Existeen varios framework y libbrerías para programar ccon AJAX.
���� �� '%��;;�� 'T'@
�
@
www.depurando.com 404
���� �� '%��;;�� 'T'@
�
@
www.depurando.com 405
���� �� '%��;;�� 'T'@
!
@
www.depurando.com 406
Con
El cony ScripáginASP.NScriptadmi
El conutilizallama
<asp:
El conaume
ntrol Scri
ntrol principiptManagerPna de ASP.NENET AJAX sintManagerPronistrador de
ntrol ScriptMa también caadas a métod
ScriptManag</asp:Sc
ntrol no prodenta el núme
ptManag
al de la infraProxy. EnconET AJAX. Ningn que se hagaoxy se utilizae script origin
Manager contaracterísticasdos de págin
ger ID "ScripcriptManager
duce interfazero de bites d
ger
aestructura dntraremos soguna funciona referenciaa solo en escnal de las pág
trola y envías como la actas.
ptManager1">
z de usuario,de descarga
del servidor Aolo una instannalidad de Aa un controlenarios de pginas de con
a los recursostualización p
runat "serv
, funciona exde la página
ASP.NET AJAncia del contJAX puede seScriptMana
páginas matrtenido.
s del script. Eparcial de la p
ver">
xclusivamenta.
����
X es el contrtrol ScriptMaer habilitadager. El contrices para hac
El control Scrpágina, los se
te en el servi
�� '%��;
rol ScriptMananager en caa en las páginolcer referenc
riptManagerervicios Web
idor y no
;�� 'T'@
"
nagerdanas
ia al
rb y las
@
www.depurando.com 407
Con
La acUpdafunciASP.Nexcep
En veUpdaactuavez q
Es unContrformatamb
Prog<%@ PInher
<!DOC"http
<html<head
<</hea<body
ntrol Upd
tualización patePanel repronalidades dNET 2.0. Comptuando la si
ez de permitiatePanel intealizar el marcue la respue
n contenedorrol, actuandoatos. Posee ubién expone u
gramación NPage Languagrits "GripdV
CTYPE html Pp://www.w3.o
l xmlns "httd runat "ser<title></titad>y>
datePane
parcial es la tresenta la rude AJAX a sitmo desarrollaintaxis y sem
ir que el navercepta cualqcado a la misesta está lista
r definido eno como un muna serie deun modelo d
Normalge "C#" AutoViewNormal"
PUBLIC " //Worg/TR/xhtml
tp://www.w3.rver">tle>
l
técnica de pruta más cortaios escritos dadores, no temántica del c
egador realicquier postbasma URL de la.
n el ensamblamero contenepropiedade
de objeto del
EventWireup%>
3C//DTD XHTM1/DTD/xhtml1
org/1999/xht
rogramacióna para AJAX.de acuerdo aendremos quontrol Updat
ce una actuack requeridola página. A c
ado System.Wedor de conts para contrl lado del clie
"true" Code
ML 1.0 Trans1 transition
tml">
n que se centNos permiteal clásico moue aprendertePanel.
alización de lo y envía unacontinuación
Web.Extensitroles hijos. Nolar las actuente.
eFile "Gripd
sitional//ENnal.dtd">
����
tra en el conte incorporardelo de prognuevas habi
a página coma petición fuen, actualiza e
ions. DerivaNo aplica nializaciones d
dViewNormal.
N"
�� '%��;
trol UpdatePlagramaciónlidades,
mpleta, el coera de bandael árbol DOM
directamenestilos nide la página y
aspx.cs"
;�� 'T'@
)
Panel.
ontrola paraM una
te de
y
@
www.depurando.com 408
<<
SortE
/>
SortE
[addr@addr
[au i
@au f[zip]
<<
</bod</htm
Prog<%@ PInher
<!DOC"http
<form id "fo<div>
<asp:GriAlloData<Col
Expression "
Expression "
</Co
</asp:Gr
<asp:SqlConnDeleInse
ress], [cityress, @city,
Seleid], [state]
Updafname, [phon @zip WHE
<Del
</De<Upd
</Up<Ins
</In</asp:Sq
</div></form>dy>ml>
gramación cPage Languagrits "GripdV
CTYPE html Pp://www.w3.o
orm1" runat
dView ID "GowSorting "TaSourceID "Sumns><asp:Comman
ShowSel<asp:BoundF
SortExp<asp:BoundF
SortExp<asp:BoundFphone" /><asp:BoundF
SortExp<asp:BoundF
<asp:BoundFSortExp
<asp:BoundFstate" /><asp:BoundF
olumns>
ridView>
DataSourcenectionStrineteCommand "ertCommand "y], [au id], @au id, @s
ectCommand ", [zip] FROM
ateCommand "ne] @phoneERE [au id]eteParamete<asp:Parame
eleteParametdateParamete<asp:Parame<asp:Parame<asp:Parame<asp:Parame<asp:Parame<asp:Parame<asp:Parame<asp:Parame
pdateParametertParamete<asp:Parame<asp:Parame<asp:Parame<asp:Parame<asp:Parame<asp:Parame<asp:Parame<asp:Parame
nsertParametqlDataSource
con Updatege "C#" AutoViewNormal"
PUBLIC " //Worg/TR/xhtml
"server">
ridView1" rurue" AutoGenqlDataSource
dField ShowDectButton "Tield DataFieression "auield DataFieression "auield DataFie
ield DataFieression "addield DataFie
ield DataFieression "auield DataFie
ield DataFie
ID "SqlDataSg "<%$ ConneDELETE FROM INSERT INTO [state], [z
tate, @zip)"SELECT [au lM [authors]"UPDATE [auth, [address] @au id">
rs>ter Name "auers>rs>ter Name "auter Name "auter Name "phter Name "adter Name "citer Name "stter Name "ziter Name "auers>rs>ter Name "auter Name "auter Name "phter Name "adter Name "citer Name "auter Name "stter Name "ziers>>
ePanelEventWireup%>
3C//DTD XHTM1/DTD/xhtml1
unat "servernerateColumne1">
DeleteButtonTrue" />eld "au lnamlname" />
eld "au fnamfname" />
eld "phone"
eld "addressdress" />eld "city" H
eld "au id"id" />
eld "state"
eld "zip" He
Source1" runectionString[authors] W[authors]
zip]) VALUES"lname], [au"hors] SET [a
@address,
u id" Type "
u lname" Typu fname" Typhone" Type "ddress" Typeity" Type "State" Type "ip" Type "Stu id" Type "
u lname" Typu fname" Typhone" Type "ddress" Typeity" Type "Su id" Type "tate" Type "ip" Type "St
"true" Code
ML 1.0 Trans1 transition
r" AllowPagins "False" D
n "True" Sho
me" HeaderTe
me" HeaderTe
HeaderText
s" HeaderTex
HeaderText "
HeaderText
HeaderText
eaderText "z
nat "server"gs:pubsConneWHERE [au id([au lname],S (@au lname
fname], [ph
au lname] , [city] @
"String" />
pe "String"pe "String""String" />e "String" /String" />"String" />tring" />"String" />
pe "String"pe "String""String" />e "String" /String" />"String" />"String" />tring" />
eFile "Gripd
sitional//ENnal.dtd">
����
ing "True"DataKeyNames
owEditButton
ext "au lnam
ext "au fnam
"phone"
xt "address"
"city" SortE
"au id" Rea
"state"
zip" SortExp
"ectionStringd] @au id" [au fname]
e, @au fname
hone], [addr
@au lname,@city, [stat
/>/>
/>
/>/>
/>
dViewUpdateP
N"
�� '%��;
"au id"
n "True"
me"
me"
Expression "
adOnly "True
pression "zi
g %>"
, [phone], e, @phone,
ress], [city
[au fname]te] @state
Panel.aspx.c
;�� 'T'@
*
city"
"
p" />
],
,
s"
@
www.depurando.com 409
<html<head
<</hea<body
<<
SortE
/>
SortE
[addr@addr
[au i
@au f[zip]
<<
</bod</htm
l xmlns "httd runat "ser<title></titad>y><form id "fo<div>
<asp:Scr</asp:Sc<asp:Upd<Content<asp:Gri
AlloData<Col
Expression "
Expression "
</Co</asp:Gr</Conten</asp:Up<asp:Sql
ConnDeleInse
ress], [cityress, @city,
Seleid], [state]
Updafname, [phon @zip WHE
<Del
</De<Upd
</Up<Ins
</In</asp:Sq
</div></form>dy>ml>
tp://www.w3.rver">tle>
orm1" runat
riptManagercriptManagerdatePanel IDtTemplate>dView ID "G
owSorting "TaSourceID "Sumns><asp:Comman
ShowSel<asp:BoundF
SortExp<asp:BoundF
SortExp<asp:BoundFphone" /><asp:BoundF
SortExp<asp:BoundF
<asp:BoundFSortExp
<asp:BoundFstate" /><asp:BoundF
olumns>ridView>ntTemplate>pdatePanel>DataSource
nectionStrineteCommand "ertCommand "y], [au id], @au id, @s
ectCommand ", [zip] FROM
ateCommand "ne] @phoneERE [au id]eteParamete<asp:Parame
eleteParametdateParamete<asp:Parame<asp:Parame<asp:Parame<asp:Parame<asp:Parame<asp:Parame<asp:Parame<asp:Parame
pdateParametertParamete<asp:Parame<asp:Parame<asp:Parame<asp:Parame<asp:Parame<asp:Parame<asp:Parame<asp:Parame
nsertParametqlDataSource
org/1999/xht
"server">
ID "ScriptMa>"UpdatePane
ridView1" rurue" AutoGenqlDataSource
dField ShowDectButton "Tield DataFieression "auield DataFieression "auield DataFie
ield DataFieression "addield DataFie
ield DataFieression "auield DataFie
ield DataFie
ID "SqlDataSg "<%$ ConneDELETE FROM INSERT INTO [state], [z
tate, @zip)"SELECT [au lM [authors]"UPDATE [auth, [address] @au id">
rs>ter Name "auers>rs>ter Name "auter Name "auter Name "phter Name "adter Name "citer Name "stter Name "ziter Name "auers>rs>ter Name "auter Name "auter Name "phter Name "adter Name "citer Name "auter Name "stter Name "ziers>>
tml">
anager1" run
el1" runat "
unat "servernerateColumne1">
DeleteButtonTrue" />eld "au lnamlname" />
eld "au fnamfname" />
eld "phone"
eld "addressdress" />eld "city" H
eld "au id"id" />
eld "state"
eld "zip" He
Source1" runectionString[authors] W[authors]
zip]) VALUES"lname], [au"hors] SET [a
@address,
u id" Type "
u lname" Typu fname" Typhone" Type "ddress" Typeity" Type "State" Type "ip" Type "Stu id" Type "
u lname" Typu fname" Typhone" Type "ddress" Typeity" Type "Su id" Type "tate" Type "ip" Type "St
nat "server"
"server">
r" AllowPagins "False" D
n "True" Sho
me" HeaderTe
me" HeaderTe
HeaderText
s" HeaderTex
HeaderText "
HeaderText
HeaderText
eaderText "z
nat "server"gs:pubsConneWHERE [au id([au lname],S (@au lname
fname], [ph
au lname] , [city] @
"String" />
pe "String"pe "String""String" />e "String" /String" />"String" />tring" />"String" />
pe "String"pe "String""String" />e "String" /String" />"String" />"String" />tring" />
����
">
ing "True"DataKeyNames
owEditButton
ext "au lnam
ext "au fnam
"phone"
xt "address"
"city" SortE
"au id" Rea
"state"
zip" SortExp
"ectionStringd] @au id" [au fname]
e, @au fname
hone], [addr
@au lname,@city, [stat
/>/>
/>
/>/>
/>
�� '%��;
"au id"
n "True"
me"
me"
Expression "
adOnly "True
pression "zi
g %>"
, [phone], e, @phone,
ress], [city
[au fname]te] @state
;�� 'T'@
city"
"
p" />
],
,
@
www.depurando.com 410
PropiChild
Conte
Conte
IsInPa
Rend
Upda
Trigg
Cuande un
iedadrenAsTrigge
entTemplate
entTemplate
artialRender
derMode
ateMode
ers
do necesitamn postback A
ers
e
eContainer
ring
mos saber siAJAX, utilizam
una porciónmos la propie
DescIndiccontrUpdapropcontrestabla procomoUnaapareactuaRecucreadobjecontrIndiccomotieneIndiccomouna eparadefinUpdadefecObtiedel clas qfactibla envalorDefincadaque e
n de la páginaedad IsInAsyn
ripcióna si los postbroles hijos pratePanel. Truiedad es falsroles hijos soblecer esta popiedad Updo Alwayspropiedad teecerá en el Ualicepera el objetdo dinámicamto para añadroles hijo a Ua si el panelo parte de une utilidad para si el conteo una etiqueetiqueta <spla propiedadnidos en la enatePanerRencto es Blockene y estableontrol deterue se actualibles, Alvays yumeración Ur por defectone la coleccióuno represeel panel se aa está siendoncPostBack
����
backs procedrovocarán laue por defectse, los postbaon ignoradospropiedad codateMode es
emplate defiUpdatePanel
to contenedmente. Podedir de formaUpdatePanelestá siendon postback ara creadoresnido del panta de bloquean>. Los valod, Block e InnumeraciñonnderMode. E
ece el modominando lasiza el panel.y CondicionaUpdatePanelo es Alwaysón que desenenta un evenctualice autoo actualizadadel control S
�� '%��;
dentes de loactualizacióto. Cuado laacks de loss. No podemmo false cuastá estableci
ne lo quecuanto éste
or de la planemos usar esprogramada.actualizadoasíncrono. Noweb
nel se actualie <div> o comores factiblesine, sonnl valor por
de actualizas condicionesLos valoresal, provienenUpdateMod
ncadena objento que provomáticamena como resulScriptManag
;�� 'T'@
�són de
osandoda
e se
ntillaste
o
zarámos
cións en
n dede. El
etos,ocateltadoer
@
www.depurando.com 411
UsoPodeserviddesenAñad
<Trigge
</Trigg
Neceva a sque eservid
Ejem<%@ PInher
<!DOC"http
<html<head
<<p{
}
de Triggemos asociardor. Si un evncadenadoreimos un eve
ers>
<asp:AsyncPO
gers>
sitamos espesuperviar y eel componendor. Tanto C
mploPage Languagrits "Defaul
CTYPE html Pp://www.w3.o
l xmlns "httd runat "ser<title></tit<script runaprotected vo{ Label1.T
}
ersun control Uento registraes pueden deento desenca
OstBackTrigger C
ecificar dos iel nombre dente AsyncPosontrolID com
ge "C#" Autot3" %>
PUBLIC " //Worg/TR/xhtml
tp://www.w3.rver">tle>at "server">oid Button1
Text DateT
UpdatePanelado es desenefinirse de madenador de
ControlID=”DropD
informacioneel evento questBackTriggemo EventNam
EventWireup
3C//DTD XHTM1/DTD/xhtml1
org/1999/xht
Click(object
ime.Now.ToSt
l con una enncadenado pmanera declaforma decla
DownLIst1” Event
es para cadae se va a capr puede modme son prop
"true" Code
ML 1.0 Trans1 transition
tml">
t sender, Ev
tring();
umeración dpor un postbaarativa o medarativa utiliza
tNAme=”Selected
a desencadenpturar. Resultdificar tan soiedades strin
eFile "Defau
sitional//ENnal.dtd">
ventArgs e)
����
de eventos deack el paneldiante progrando la secci
dIndexChanged”/
nador: la ID dta imprescinolo eventos dng.
ult3.aspx.cs
N"
�� '%��;
el lado delse actualiza.ramación.ón <Triggers
/>
de control qudible subraydel lado del
"
;�� 'T'@
�
. Los
s>
ue sear
@
www.depurando.com 412
</scr
</hea<body
<f<
Enabl
OnCli
<<
</bod</htm
Sobre
Si estáde una� Si estUpdat
<%@ PInher
<!DOC"http
<html<head
<<p{
}</scr
</hea<body
<f<
Enabl
<<
</bod</htm
ript>
ad>y>form id "for<div>
<asp:ScrlePartialRen
</asp:Sc<asp:Upd
<Con
ick "Button1
</Co</asp:Up
</div></form>
dy>ml>
e la propieda
á en Always, nua actualizacióntá en ConditionePanel lo requi
Page Languagrits "Defaul
CTYPE html Pp://www.w3.o
l xmlns "httd runat "ser<title></tit<script runaprotected vo{ Label1.T
}ript>
ad>y>form id "for<div>
<asp:ScrlePartialRen
</asp:Sc<asp:Butt
<asp:Upd<Con
</Co<Tri
</Tr</asp:Up
</div></form>
dy>ml>
rm1" runat "
riptManagerndering "trucriptManagerdatePanel IDntentTemplat<asp:ButtonClick" />
<asp:LabelontentTemplapdatePanel>
ad UpdateM
estro UpdatePade otro Updatenal, nuestro Updieran.
ge "C#" Autot3" %>
PUBLIC " //Worg/TR/xhtml
tp://www.w3.rver">tle>at "server">oid Button1
Text DateT
rm1" runat "
riptManagerndering "trucriptManagerton ID "Butt
datePanel IDntentTemplat<asp:Label
ontentTemplaggers><asp:AsyncP
riggers>pdatePanel>
server">
ID "ScriptMae">>"UpdatePane
e>ID "Button1
ID "Label1"te>
ode:
anel se actualizePanel.datePanel sólo
EventWireup
3C//DTD XHTM1/DTD/xhtml1
org/1999/xht
Click(object
ime.Now.ToSt
server">
ID "ScriptMae">>on1" runat "
"UpdatePanee>ID "Label1"te>
ostBackTrigg
anager1" run
el1" runat "
1" runat "se
runat "serv
zará siempre qu
se actualizará c
"true" Code
ML 1.0 Trans1 transition
tml">
t sender, Ev
tring();
anager1" run
"server" Tex
el1" runat "
runat "serv
ger ControlI
nat "server"
"server" Upd
erver" Text
ver" Text ""
ue haga un Page
cuando los elem
eFile "Copia
sitional//ENnal.dtd">
ventArgs e)
nat "server"
xt "Button"
"server" Upd
ver" Text ""
ID "Button1"
����
"
dateMode "Co
"Button"
"></asp:Labe
eLoad, por ejem
mentos de dent
a de Default
N"
"
OnClick "Bu
dateMode "Co
"></asp:Labe
" EventName
�� '%��;
onditional">
el>
mplo a consecu
tro de nuestro
t3.aspx.cs"
utton1 Click
onditional">
el>
"Click" />
;�� 'T'@
�
encia
" />
@
www.depurando.com 413
ConEstá dcontrquizáposibactua
PropiAssoc
Dyna
Progr
Un coEstabespecpáginpágin
Cuanconcradecuexiste
Si quedesar
El fraespercon pimplemarc
ConEL coWinden lacomoperió
ntrol Upddesignado paroles Updateás queramosble, desplazaalizarse. Pode
iedadciateUpdate
amicLayout
ressTemplat
ontrol Updatblecemos el ecifica ningúnna. La interfana se actualiz
do está estareto y reutiliuadamente.entes se des
eremos reserrolle ningun
mework ASPra que el panprogramacióemente la intado del cont
ntrol Timontrol Timer edows.set.Timpropiedad Ino un desencaódicamente.
datePrograra aportar cePanel estánencontrar erlo programáemos utilizar
ePanelID
te
teProgress penlace a travn panel Actuaaz de usuarioza. Sin emba
blecido comza su espacioCuando el vplazan para
ervar espaciona operación
P.NET AJAX vnel se actualn. En el seguterfaz ITemptrol de progr
meres el homólo
meout. EL connterval. El poadenador de
resscualquier tipsiendo actual lugar adecuándolo en elr hojas de es
uede ser enlvés de la proalizable, el coo de la barrargo, inicialm
mo ninguno, eo en la páginalor de un athacer sitio a
o para el contn, tan solo es
visualiza el coice. Podemoundo caso, asplate. Para lareso como se
ogo del servintrol Timer posback desenun panel act
o de feedbaalizados. Si tuado en la pásitio adecua
stilo y posicio
DescObtieUpdacontrIndicdinámpordIndicpostespe
azado a un cpiedad stringontrol de prode progreso
mente está oc
el atributo CSna para que otributo displlos nuevos.
trol de progrtablecemos
ontenido deos especificarsignamos a laa segunda site muestra en
dor de un cliprovoca un pncadena untualizable, p
ck al navegatenemos panágina para eado con responal el contr
ripciónene y estableatePanel conrola si la plantimicamente eefectoa la plantillaback asíncrocificado en lacontrol Updag Associatedogreso aparese inserta e
culta por el a
SS display nootros elemenay es modifi
reso y dejarlola propiedad
la propiedadr la plantilla ta propiedaduación, poden el código:
iente creadoostback cadaevento Tick.odemos actu
����
dor mientraneles múltipll control depecto al paneol donde qu
ece la ID deln la que está
lla de progreen la página.
visualizadano que tardaa propiedadatePanel condUpdatePaneece para cuan la página datributo CSS
o muestra unntos puedancado, los ele
o en blancod DynamicLa
d ProgressTetanto de formcualquier obemos especi
o utilizando ea segundo qUtilizando eualizar el con
�� '%��;
s uno o máses en una páprogreso o, sel que va aeramos.
controlasociado es
eso se actualEstá a true
durante una más del tieDisplayAfter
ncreto.elID.Si no selquier paneldel host cuandisplay
n elemento Hdesplazarse
ementos
cuando no syout como f
emplate miema declaratibjeto queficar fácilme
el métodoue se especiel temporizadntenido del p
;�� 'T'@
�
ágina,si es
te
iza
empor
en lando la
HTMLe
efalse.
ntrasva o
ente el
ficadorpanel
@
www.depurando.com 414
InstSe dehttp:/
CreammáquLa rutContr
�DescFram
�CopiToolkToolk
�Abri
�Haceuna nContr
�Haceelemque e
Tras rcontr
El ASprogrcontrASP.Nde ejeque e
Vamoentidun co
Se traprogrson 1
Estos
talar AJAescarga de//www.code
mos, dentrouina,una carpta completarol Toolkit".
comprimir elework3.5.zip
iar los archivkit\SampleWkit\Binaries".
r Visual Stud
er clic derechnueva pestañrol Toolkit".
er clic derechentos" paraestá en la rut
realizar todaroles del Ajax
P.NET AJAX Cramadores yroles Web y eNET AJAX sinemplos de ues totalment
os a distinguad por sí misontrol Web e
ata de una seramador, ha100% AJAX y
s controles va
AX Contro
eplex.com/Aj
de la carpetpeta para coresultante p
archivo quep sobre la ru
vos contenidoWebSite\Bin",.
dio 2008 y cre
ho en el Cuadña; como no
ho sobre la pañadirle losta "C:\Progra
as estas operx Control Too
Control Tooly Microsoft. Eextendedoren más que unso, así comoe gratuito.
ir entre contsmos, mientexistente.
erie de pequutilizado o dusarlos no e
an desde un
ol Toolkit
jaxControlTo
a "Programontener los apodría ser, po
e contiene esta menciona
os en la ruta, dentro de e
ear un nuevo
dro de herrambre podem
pestaña reciécontroles deam Files\Ajax
raciones, ya tolkit en nues
kit nace comEstá desarroes con los qun arrastre deo del propio c
troles Web yras que los s
ueñas funciondeseado paraexige conocim
simple botó
t
oolkit/Releas
Files" o "Arcrchivos del por ejemplo, l
ste conjuntoada en el pun
"C:\Programesta otra ruta
o proyecto W
amientas, y smos utilizar e
én creada y eel Toolkit, ubx Control Too
tendríamos tstras aplicac
mo un proyecllado en basue podremosratón. Del mcódigo fuent
y extendedorsegundos ún
nalidades qua sus Webs.miento algun
ón con una a
se/ProjectRe
hivos de Propaquete de cla siguiente:
de controlento anterior.
m Files\Ajaxa: "C:\Progra
Web.
eleccionar lael mismo del
elegir la opcibicados en laolkit\Binarie
todo lo neceiones Web.
cto conjuntoe a ASP.NETs utilizar las amismo modote de los con
res, donde loicamente añ
ue cualquier wLa diferenciano sobre AJA
lerta asociad
����
eleases.aspx?
ograma" de ncontroles."C:\Program
s: AjaxContr
Controlam Files\Ajax
a opción "Adpaquete de
ón "Chooselibrería Ajax
es".
sario para ut
entre la comAJAX y contiavanzadas ca, con su desctroles. Y lo m
os primeros taden un com
webmaster,a ahora es quAX, javascript
da, hasta un
�� '%��;
?ReleaseId=1
nuestra
m Files\Ajax
olToolkit�
x Control
dd Tab" paracontroles: "A
Items" 0 "ElexControlToo
tilizar los
munidad deiene una seraracterísticascarga disponmejor de tod
tienen unamportamient
en su historue los ejempt o XML.
complejo pa
;�� 'T'@
�
11121
crearAjax
egirlkit.dll
ie des denemoso es
te a
ia deplos
anel
@
www.depurando.com 415
que pentreWeb
10.1
DescEl conserá vdefinde m
Prop9 pro• Seletiene• Heacabecaplicadefin• Fadcaso false• Traconsi• Fratrans
podemos arre el cliente ysea mucho m
1.� Accord
cripciónntrol Web Acvisible en ca
nir la cabeceodo que el A
piedadesopiedades deectedIndex:
e como índiceaderCssClassceras/contenará por defe
nir individualdeTransitionsde ser false.
ansitionDuratgue un efectmesPerSecoiciones. Sue
rastrar por lael servidor smás atractiva
dion
ccordion te pada momentora (Header)
AccordionPan
efinen al AccDefine el Ace 0. Es opcios / ContentCnidos (Heade
ecto a todos lmente comos: en caso dela transición
tion: cantidato muy agradnd: númerole ser suficie
a pantalla; ensin ningún tipa y simpática
permite ubico. Dichos pany el contenidne activo se
ordion: ccordionPaneonal y por dessClass: Idener/content).los Accordio
o atributo dee ser true sen se realizará
ad de milisegdeble con trade frames pente un núm
n ambos casopo de recarga al usuario a
car múltiplesneles son losdo (Content)mantendrá v
e que estaráefecto vale 0ntifica el nom Si se define
onPane de que cada Accor aplicacará uá de modo n
gundos que dansición de uor segundo qero superior
os, mandanda de página.a la par que
s paneles, des AccordionP). El estado dvisible a trav
activo por d0.mbre de la ce como atribue esté comprdionPane. un efecto deormal. Es op
definen la duunos 200-300que se usarár a 40.
����
do y recogienSu uso harápotente y ef
e modo que Pane, de los del Accordiovés de los po
defecto, don
lase CSS utiluto del Accopuesto. Tam
e fading en laptativo y por
uración de un0 milisegund en la anima
�� '%��;
ndo informacque nuestra
fectiva.
únicamenteque debemo
on es guardadostbacks.
nde el primer
lizada para lordion, la clabién se pued
a transición,r defecto val
na transicióndos. ación de las
;�� 'T'@
!cióna
unoosdo,
ro
as ase se de
en le
n. Se
@
www.depurando.com 416
• Auto Nonreseño LimAccorscrollcambo Fillminim• Hea• Con• Datque l• Datdatos• Dat
Ejem<%@Inher<%@TagP
<!DOC"http
<htm<head<title<style.acco{bordebackgfont-font-font-wpaddmargcurso}
.acco{font-backgbordebordefont-padd
toSize: definne: No tieneñar que estomit: como márdion es másl para ajustabios. : el Accordiomizando el cader: es unantent: es unataSource: Ellamar a DatataSourceID: s.taMember: e
mploPage Languarits="AccordiRegister Asserefix="ajaxT
CTYPE html://www.w3.
l xmlns="httd runat="serve>Accordion<e>ordionCabece
er: 1px solidground-colorfamily: Arialsize: 14px; weight: bolding: 4px; in-top: 4px;
or: pointer;
ordionConten
family: Sansground-colorer: 1px solider-top: nonesize: 12px; ing: 7px;
e la restriccninguna respuede impli
áximo, el Accs alto de lo qarse al límite
on siempre montenido enpropiedad d
a propiedadDataSourceaBind(). Alternativa
el miembro a
age="C#" Auton ACT Accembly="Ajaxoolkit" %>
PUBLIC "-//W.org/TR/xht
tp://www.wver"> </title>
era
black;r: #ffd800; l, Sans-Serif;
d;
nido
-Serif;r: #fff8ab; black;
e;
ción en la alttricción. Laicar que otrocordion medque marque se. En caso de
medirá lo quebase a las n
del Accordiondel Accordioa aplicar (to
amente, pode
a enlazar cua
oEventWireucordion" %> xControlTool
W3C//DTD Xml1/DTD/xh
3.org/1999/
;
tura del Accoaltura del Ac
os elementosdirá lo que msu Height, ae ser menor a
e marqué sunecesidades.nPane y defionPane y defotalmente op
er asignar el
ando se usa e
up="true" Co
kit" Namespa
XHTML 1.0 Trhtml1-transit
xhtml" >
ordion. Puedccordion nos de la mism
marque la prol AccordionPa ese límite
propiedad H
ine el valor dfine el valorptativo). Par
identificado
el DataSourc
deFile="ACT
ace="AjaxCo
ransitional//tional.dtd">
����
de tomar trestiene límitea Web sean opiedad HeigPane activo sel Accordion
Height, expa
de su cabecede su conte
ra una correc
or de nuestra
ceID.
-Accordion.a
ontrolToolkit
/EN"
�� '%��;
s valores: . Es importamovidos.
ght. Si el se le añadirán no sufre
andiendo o
era. nido. cta aplicació
a fuente de
aspx.cs"
"
;�� 'T'@
"ante
á un
ón hay
@
www.depurando.com 417
}</sty
</hea<body<form<div>
<asp:
<ajaxFadeTFramWidthTransHeadConte<Pane<ajax<Hea<Con</aja<ajax<Hea<Con</aja<ajax<Hea<Con</aja</Pan</aja
</div</for</bod</htm
yle>
ad>y>
m id="form1">
:ScriptManag
xToolkit:AccoTransitions=esPerSecondh="250px" sitionDuratioerCssClass="entCssClass=es>xToolkit:Accoder>Panel 1tent>ContenaxToolkit:AccxToolkit:Accoder>Panel 2tent>ContenaxToolkit:AccxToolkit:Accoder>Panel 3tent>ContenaxToolkit:Accnes>axToolkit:Acc
v>rm> dy>ml>
runat="serv
ger id="Script
ordion ID="A"True"d="50"
on="200" "accordionCa="accordionC
ordionPane I</Header>
nido 1</ContcordionPaneordionPane r</Header>
nido 2</ContcordionPaneordionPane r</Header>
nido 3</ContcordionPane
cordion>
ver">
tManager" ru
Accordion1" r
abecera"ontenido">
ID="Accordio
tent>e>runat="serve
tent>e>runat="serve
tent>e>
unat="server"
runat="server
onPane1" run
er">
er">
" />
r"
nat="server">
����
>
�� '%��;;�� 'T'@
)
@
www.depurando.com 418
Al tracompnuestcorre
Sin emincluidesde
Ademconte
En elestem
atarse de nuepleto. El mottra caja de hespondiente.
mbargo, lo qir una referee nuestra caj
más, y como enido.
resto de ejemos trabajan
estro primertivo es que therramientas
que no se haencia al Scripja de herram
es obvio, de
emplos, no mndo.
r ejemplo, heengamos ens, automátic
rá automáticptManager, lmientas.
eberán defini
mostraremos
emos mostracuenta que
camente que
camente, y dlo que no req
irse las clase
s más que el
ado todo el cal arrastrardará registra
debemos hacquiere más q
es CSS tanto
código espe
����
código de lael control Acado el Assem
cerlo nosotroque otro senc
de la cabece
cífico del co
�� '%��;
página al ccordion des
mbly
os siempre, ecillo arrastre
era como de
ontrol en el q
;�� 'T'@
�*
sde
ese
l
que
@
www.depurando.com 419
10.2
DescEl Alwsimplpágindereccuand
Prop• Tarposic• Horuna ppixelsdefec• Verpropi• Verel Ve• Scroque eser m
2.� Always
cripciónwaysVisibleCles. Su funciona. Un ejempcha de nuestdo se haga sc
piedadesrgetControlIDción que deterizontalSide:propiedad ops desde el obcto vale 0 pxrticalSide: ubiedad optativrticalOffset:erticalSide. EollEffectDurel control se
mayor que ce
sVisibleCo
Control es unonalidad conplo sería el qtra página, ycroll sobre la
D: ID del conerminemos. ubicación h
ptativa que pbjeto hasta ex.bicación vertva que por ddistancia ve
Es optativo yation: defineposiciona do
ero.
ontrol
no de los connsiste en dejque cierto my que se mana página.
ntrol que queHabitualmen
horizontal (dpor defecto vel lado que d
tical (arribadefecto valeertical en pix
por defectoe la cantidadonde definam
ntroles Web djar clavado eensaje se m
ntenga en la
eremos que ente suele traerecha o izqvale left. Hodefinamos en
o abajo) dontop.
xels desde elo vale 0 px. d de segundomos. Por def
del ASP.NETel contenidouestre siempmisma posic
el AlwaysVisiatarse de unquierda) dondorizontalOffsn el Horizont
nde se clava
l objeto hast
os entre quefecto vale 0.
����
AJAX Controen un punto
pre en la parción de la pa
ibleControl c“Panel”. de se clavaráet: distanciatalSide. Es o
ará el control
ta el lado qu
la página ha1 segundos y
�� '%��;
ol Toolkit máo específico rte inferior antalla del us
clave en la
á el control.a horizontal optativo y po
l. Es una
ue definamos
ace scroll hay siempre de
;�� 'T'@
�
ásde la
suario
Es en
or
s en
asta ebe
@
www.depurando.com 420
Ejem<asp:de m</asp<ajaxTargeVertiVertiHorizHorizScrol</aja
10.3
DescCon eminima cerdebe
El estpermquereperm
Prop• Tar• Colpone• Exp• Colcollap• Scrosobreningú• ExpComominim• Texconte• Colcontr• Expcontr• Imaque despec
mplo:Panel ID="Paensajep:Panel>xToolkit:AlwetControlID=calSide="BotcalOffset="1
zontalSide="RzontalOffset=lEffectDurataxToolkit:Alw
3.� Collaps
cripciónel Collapsiblemizado a nuerrarse y abrirremos hacer
tado del conmanecerá iguaemos que el
mitimos que s
piedadesrgetControlIDlapsedSize: rlo a 0, de m
pandedSize: lapsed: espepsed (cerradoll Contentsepaso al espeún efecto, lopandControlIo vemos podemice. HabituxtLabelID: elenido (ver lalapsedText:rolador estépandedText:rolador estéageControlIDdescriba el ecificado un t
anel1" runat=
aysVisibleCo"Panel1"
ttom" 0"Right"="10" tion="0.0001"waysVisibleC
siblePane
ePanel conseestro antojo.rse (por ejemr clic para ce
ntenido (abieal cuando recontenido te
se dimension
D: el ID del cel tamaño e
modo que queel tamaño eecifica el estdo) o expand: si especificecificado eno pondremosD/CollapseCemos elegir
ualmente aml ID de la Labas dos próxim
texto que secerrado. texto que seabierto.
D: En lugar deestado en quetexto, éste se
="server" He
ontrolExtend
">ControlExtend
el
eguiremos qu. Distinguiremplo un Paneerrar y/o abr
erto o cerradecarguemos uenga una alt
ne como requ
control Webn pixels del eda totalmen pixels del tado del conted (abierto)
camos true, CollapsedSiza false.
ControlID: elun controlad
mbos atributobel donde semas propiedae mostrará e
e mostrará e
e un texto, pe se encuente correspond
ight="50px" W
er ID="Alway
der>
ue cualquiermos entre elel) y el contrrir el conten
do) es guardauna página. Atura y/o anchuiera.
correspondiecontenido cunte cerrado.contenido cutenido cuand.se añadirá uze y Expande
ID del contrdor que maxos apuntan ae especificaráades).en la Label e
en la Label e
podemos esptra el contenderá con el t
Width="125p
ysVisibleCont
r control ASPl contenido,rolador, queido.
ado a lo largoAdemás, podhura determ
ente al conteuando está c.uando esté ado se iniciali
una barra deedSize. Si no
rol Web correimice el conl mismo contá el estado e
especificada
especificada
pecificar unanido. Si ademtexto alterna
����
px">
trolExtender
P.NET puedaque será el será el cont
o de los postdemos espec
minadas, o po
enido.cerrado. Lo h
abierto. iza la página
scroll cuando queremos q
espondiendontenido y otrtrolador. en que se en
en TextLabe
en TextLabe
a imagen parmás tambiénativo de la im
�� '%��;
r1" runat="se
ser maximizcontrol que
trol sobre el
tbacks, por lcificar si or el contrari
habitual es
a. Puede ser
do el tamañoque se produ
o al controlado que lo
cuentra el
elId cuando e
elId cuando e
ra que sea és hemos
magen (el
;�� 'T'@
��
erver"
zado o vaya que
lo que
io
ouzca
dor.
el
el
sta la
@
www.depurando.com 421
atribu• Colminim• Expmaxim• Expa der
Ejem<asp:<asp:Este eque sel est</asp
<ajaxTargeCollaExpanCollaExpanCollaTextLCollaExpanExpan</aja
10.4
DescCon eLinkBmuesejecu
Prop• Tar• Condesea
EjemMostrventa<asp:<ajaxTargeConfi</aja
uto “alt”). lapsedImage
mizado. pandedImagemizado. pandDirectiorecha. En el
mplo:Label ID="La:Panel ID="Paes el contense correspontado.p:Panel>
xToolkit:ColletControlID=psedSize="0"ndedSize="30psed="True"ndControlID=pseControlIDLabelID="LabpsedText="AndedText="CndDirection=axToolkit:Co
4.� Confirm
cripciónel ConfirmBuButton o Hypstre una ventute o no el e
piedadesrgetControlIDnfirmText: tea ejecutar…?
mploraremos un bana de confir:Button ID="BxToolkit:ConetControlID=irmText="¿ReaxToolkit:Co
e: Path que a
e: Path que a
n: podemosprimer caso
abel1" runat=anel1" runat=ido que seráde con el tex
lapsiblePane"Panel1""00"
="Label1" D="Label1"bel1" Abrir conteniCerrar conten="Vertical"/>llapsiblePan
mButton
utton consegperlink, de mtana de conf
evento asocia
D: ID del conexto que se ?”
botón que sermación elegButton1" runfirmButtonE"Button1" ealmente denfirmButton
apunta a la i
apunta a la i
definir que easignaremos
="server" Tex="server" Widá abierto o cexto de arriba
lExtender ID
do"nido"
elExtender>
uimos una semodo que cuafirmación. Enado al contro
ntrol al que amostrará al
e ocupará degiremos si reat="server" Txtender ID="
sea recargarExtender>
magen que s
magen que s
el contenidos “Vertical”
xt="Label" Csdth="120px">errado media. Éste a su v
D="Collapsibl
encilla funciando se hagan ésta deberol en cuestió
aplicaremos presionar so
e recargar laealmente desText="Recarg"ConfirmButt
r la página?"
se mostrará
se mostrará
o se abra de y en el segu
ssClass="CP">>ante el contvez describir
ePanelExten
onalidad. Loa clic sobre éremos elegirón.
el efecto elobre el contro
página. Cuaseamos recagar página" /tonExtender
/>
����
cuando el co
cuando el co
arriba a abando “Horizo
></asp:Labe
trolador, rá
nder1" runat=
o asignaremoéste, el nave“sí” o “no”
ConfirmButtol. Por ejem
ando se nos mrgarla o no./>2" runat="se
�� '%��;
ontenido est
ontenido est
ajo o de izquntal”.
el>
="server"
os a un Buttoegador nos para que se
ton.mplo “¿Realm
muestre la
rver"
;�� 'T'@
��é
té
ierda
on,
mente
@
www.depurando.com 422
10.5
DescEl Drajavasuna m
Se appodeconteel co
Prop• Tar• Dra
Ejem<asp:<asp:Font-Arrás</asp<asp:BordeEste e</asp</asp
<ajaxDragH</aja
<scrip// Pefunctdocumdocum}setBo$add</scr
10.6
DescUn secomoejem
5.� DragPa
cripciónagPanel seríascript requermayor flexibi
plica a cualqr arrastrarloenido, dondentenido.
piedadesrgetControlIDagHandleID: e
mplo:Panel ID="Pa:Panel ID="Pa-Bold="true"stramep:Panel>:Panel ID="PaerWidth="1">es el contenp:Panel>p:Panel>
xToolkit:DragHandleID="PaaxToolkit:Dra
pt type="texequeño scription setBodyHment.body.sment.body.s
odyHeightToCHandler(winript>
6.� DropD
cripciónencillo controo resultar seplo, imagine
anel
a el ejemploriría decenasilidad.
uier controlo a cualquiere el controla
D: el ID del cel ID del con
anel3" runat=anel1" runat=BorderColor
anel2" runat=>ido que vam
gPanelExtenanel1" TargeagPanelExte
xt/javascriptt para una cHeightToConstyle.heightscrollHeight)
ContentHeigdow, "resize
own
ol que le damuy útil. Co
emos que ten
o perfecto des de líneas de
Web (el másparte de lador es sobre
control correntrol corresp
="server" He="server" Widr="black" Bor
="server" He
mos a poder a
der ID="DragetControlID="nder>
">correcta comntentHeight(= Math.max(+"px";
ght();e", setBodyHe
un aspecto onsiste en hanemos dos p
e cómo conse programac
s habitual espantalla. Va
e lo que debe
espondiente ondiente al
ight="50px" Wdth="125px"derWidth="1
ight="250px"
arrastrar por
gPanelExtend"Panel3">
mpatibilidad c) { (document.d
eightToCont
muy avanzadacer aparentaneles y que
eguir una fución, con ape
s el Panel) yamos a distineremos hace
al contenidocontrolador.
Width="125pBackColor="">
" Width="125
r toda la pan
der1" runat=
con todos los
documentEle
entHeight);
do y profesiotar un DropDe al hacer cli
����
ncionalidadenas dos líne
le añade la nguir entre eer clic y arras
o..
px"> "Yellow"
5px" BorderC
talla.
"server"
s navegadore
ement.scrollH
onal a nuestrown donde nick sobre uno
�� '%��;
avanzada, qeas de código
funcionalidael controladostrar para m
olor="black"
es.
Height,
ra página, asno lo hay. Poo queremos
;�� 'T'@
��
que en o y
ad de or y el over
síorque
@
www.depurando.com 423
apare(en la
Prop• TarPane• Dro
Ejem<asp:Size=<asp:familAquíPor e
<br /<br /
<asp:CellPForeC<Sele<Tod<Sele<Wee<Othe<Nex<DayH<Title</asp
<br /
Si pus</asp<ajaxDropD
10.7
DescEl Dro- Aña- Cre
Por csenci
ezca el seguna imagen lo v
piedadesrgetControlIDl, pero pued
opDownContr
mplos:Label ID="Te="11px" Style:Panel ID="Drly:Tahoma; fpuede haber
ejemplo, pon
>>
:Calendar ID=Padding="4" DColor="BlackectedDayStylayDayStyle B
ectorStyle BaekendDayStyerMonthDayStPrevStyle VHeaderStyleeStyle BackCp:Calendar>
>
siéramos el cp:Panel>xToolkit:DropDownContro
7.� DropSh
cripciónopShadow ex
ade una somba un efecto
consiguiente,lla.
ndo panel deveremos mej
D: ID del cone ser cualqurolID: El Id d
extLabel" run="display: blropPanel" rufont-size: 11r cualquier cngamos un Ca
="Calendar1"DayNameForm" Height="18le BackColorBackColor="#ackColor="#Cyle BackColorStyle ForeCo
VerticalAlign=BackColor="
Color="#9999
calendarios s
pDownExtenlID="DropPan
hadow
xtiende al cobra, permitiéde redondea
, conseguimo
el mismo mojor.
ntrol sobre eluier cosa. el Panel que
nat="server"lock; width:nat="server"px; padding
control: imágalendario:
" runat="servmat="Shorte
80px" Width=="#666666" F
#CCCCCC" FoCCCCCC" /> r="#FFFFCC"olor="#808080="Bottom" />"#CCCCCC" F
999" BorderCo
sobre un Upd
der runat="snel" />
ontrol Paneléndonos defiado del Pane
os dos efecto
odo que apar
l que aplicar
e será mostra
Text="Ponte300px; padd
" Style="displ:5px;"> genes, MultiV
ver" BackColost" Font-Nam"200px"> Font-Bold="ToreColor="Bla
/>0" /> >Font-Bold="Tolor="Black"
datePanel...
server" ID="D
con dos carainir tanto su
el.
os muy profe
rece el conte
remos los efe
ado como un
e sobre mí" Fding:2px; padlay:none;visi
Views... lo q
or="White" Bmes="Verdan
True" ForeCoack" />
rue" Font-SizFont-Bold="T
podríamos
DDE" TargetC
acterísticas profundidad
esionales de
����
enido de una
ectos. Norma
na lista desp
Font-Names=dding-right:ibility:hidde
que queráis!!
BorderColor=a" Font-Size=
lor="White"
ze="7pt" /> True" />
hacer marav
ontrolID="Te
muy interesad como su os
forma treme
�� '%��;
a lista desple
almente será
legable.
="Tahoma" Fo50px;" /> n; font-
!<br />
="#999999" ="8pt"
/>
villas ;)
extLabel"
antes:scuridad.
endamente
;�� 'T'@
��egable
á un
ont-
@
www.depurando.com 424
Prop• Tar• Wid5.• Opacorrevalor• Trao si v• Roua fals
Ejem<asp:<div sEn esEl efe</div</asp
<ajaxOpacWidthTargeRoun</aja
10.8El Filpermcomb- Num- Low- Upp- Cus
piedadesrgetControlIDdth: profund
acity: valor desponde a trar por defectoackPosition: lva a poder seunded: Si quese.
mplo:Panel ID="Pastyle="paddiste panel podecto de sombv>p:Panel>
xToolkit:Dropity="1" h="5" etControlID=ded="true">axToolkit:Dro
8.� FiltereteredTextBo
mitimos que ebinaciones: mbers: todoswercaseLettepercaseLettetom: los car
D: ID del Panidad en pixe
decimal en tansparenciao es 0.5. lo pondremoer movido. Eeremos un e
anel1" runat=ng:5px"> demos ponerbreado + bor
pShadowExte
"Panel1"
opShadowEx
dTextBoxox extiende aescriba el usu
s los númerosers: letras miers: letras maacteres que
nel sobre el qels de la som
tre 0 y 1 quetotal y 1.0 a
os a true si nn caso contr
efecto de red
="server" Wid
r lo que querrdeado es m
ender ID="Dr
tender>
xal TextBox duario. Elegir
sinúsculas.ayúsculas.definamos.
que aplicarembra. Es un p
e define la opa completam
uestro panerario pondremdondeado lo
dth="125px"
ramos. uy agradable
ropShadowEx
e modo queremos entre
mos los efecarámetro op
pacidad de lamente opaco.
l lo hemos dmos false (opondremos a
BackColor="
e a la vista.
xtender1" ru
podemos deestas config
����
ctos.pcional que p
a sombra, do También es
efinido con no ponemosa true, sino,
"Yellow" Font
nat="server"
efinir qué tipuraciones y s
�� '%��;
por defecto v
onde el 0 s opcional y s
posición abss nada). vale con po
t-Names="Ar
po de caractesus múltiple
;�� 'T'@
��
vale
su
soluta
onerlo
rial">
eres s
@
www.depurando.com 425
Prop• Tar• Filtsepar• Valstring
EjemEn nuy los
<asp:<ajaxTargeFilterValid</aja
10.9
DescEl Hocuerpweb ppodecausa
Prop• Tar• Pop• Hov• PopLeft,• Offhoriz• Pophasta
EjemEn nuque casign
<asp:<asp:HeighBackCSi pre
piedadesrgetControlIDterType: Tiporándolos en cidChars: sólog con los car
mplouestro ejempsignos mate
:TextBox ID=xToolkit:FilteetControlID=rType="NumbChars="+-*/"
axToolkit:Fil
9.� HoverM
cripciónoverMenu es po y el popuppopup aparemos aplicar ante de que
piedadesrgetControlIDpupControlIDverCssClass:pupPostion: ly sus otros v
fsetX/OffsetYontal o en ve
pDelay: la caa que aparez
mplouestro ejempcuando el usarle cualquie
:Button ID="B:Panel ID="Paht="50px" WiColor="Yellowesionas sobre
D: ID del Texo de filtro decomas. o se le hará racteres que
plo vamos a máticos ‘+’,
="TextBox1" reredTextBox"TextBox1"bers,Custom" >teredTextBo
Menu
un extendedp, de modo qezca en el luguna clase CSaparezca el
D: ID del conD: ID del contclase CSS qulugar dondevalores son RY: una vez deertical con r
antidad de mzca el popup.
plo, el cuerpuario vaya aer propiedad
Button1" runanel1" runat=dth="125px"w" BorderWie el botón, s
xtBox sobre ee entre los q
caso si hemoconsiderare
permitir que ‘-‘, ‘*’ y ‘/’
runat="servexExtender ID
"
oxExtender>
dor aplicableque cuando gar en que hSS al controlpopup.
ntrol identifictrol identificue se aplicaraparecerá e
Right, Bottomefinido el Porespecto a su
milisegundos. Por defecto
po se corresp hacer clic sd al Panel):
at="server" T="server"
dth="1px" Scse recargará
el que vamosque hemos de
os elegido a emos válidos.
e en nuestro’.
er"></asp:Tex="FilteredTe
e a cualquierel ratón pase
hayamos espeweb cuerpo
cado como ccado como prá al cuerpo el popup conm y Center.opupPositionu posición reque pasaráno son 100.
ponde con unobre el botó
Text="Haz cl
crollBars="Aula página.
s a actuar. efinido prev
“Custom” co.
TextBox se
xtBox>extBoxExtend
r control Webe sobre el coecificado. Ad
o, haciendo v
cuerpo.opup.cuando paserespecto al
n, podemos aelativa. entre que n
n botón y el pón, se muest
lic" />
uto">
����
iamente. Lo
omo FilterTy
escriban úni
der1" runat="
b. Vamos a dontrol web cdemás, cuanver al usuario
emos el ratóncuerpo. Por
añadir o quit
nos posemos
popup con ure un mensa
�� '%��;
s combinare
ype. Será un
camente nú
"server"
distinguir encuerpo, el condo esto suceo que es el
n sobre éster defecto val
ar pixels en
sobre el cue
n Panel, deaje (Podemos
;�� 'T'@
�!
mos
meros
tre el ontrol eda,
.e
erpo
modos
@
www.depurando.com 426
</asp
<ajaxPopuTargePopuOffse</aja
10.1
DescEl Moéste,de laneces
Imagipáginapellde elestabjavas
Distinapellel for
Prop• Tar• Pop• Bacefect• Dronuest• OkC• OnO• OkC• Om
p:Panel>
xToolkit:HovpControlID="etControlID=pPosition="R
etX="10">axToolkit:Ho
10.� Moda
cripciónodalPopup es conseguimopágina. Pod
sidad de sali
inemos que ena se oscurecidos... todoementos de
ba antes- y rescript que ha
nguiremos enidos”, y el prmulario de e
piedadesrgetControlIDpupControlIDckgroundCssCto de oscuridopShadow: letro control pControlID: elOkScript: noCancelID - Th
mCancelScript
verMenuExten"Panel1""Button1"
Right"
overMenuExte
adPopUp
s otro ejempos el efecto ddemos emulair de la págin
el usuario prce y apareceello sin salirésta. Así puellenar sus dayamos defin
ntre el activapopup, que eentrada de d
D: ID del conD: ID del contClass: clase Cdad a los elee daremos elpopup.l ID del elemmbre del scrhe ID of thet - Script to
nder ID="Hov
ender>
plo de potentde mostrar car el efecto dna en que es
resiona el boe en el centrr de la págines, el usuari
datos y presionido.
ador, que enen nuestro ejdatos del usu
ntrol activadotrol popup. TCSS que se amentos sobrl valor de tru
mento que prript que se aelement tharun when th
verMenuExte
te funcionalicontenido dedel famoso “stamos ni de
otón “Dime to un cuadroa en que estio puede eleonar OK, act
n nuestro ejejemplo se couario.
or. TípicameTípicamente
aplicará al fore los que noue si querem
oduce el efeactivará cuanat cancels thhe modal pop
ender1" runa
idad en muyeshabilitando“window.opeabrir una nu
tu nombre ydonde se pid
tamos y sin pgir entre cantivando una
emplo es el borresponde co
ente será une será un Panondo de panto vamos a pomos que se añ
ecto de OK dndo presionee modal pop
pup is dismis
����
t="server"
pocas líneaso la interaccien(...)” de jaueva ventana
apellidos”, dde el nombrepoder hacer ncelar -parallamada a un
botón “Dimeon el panel q
Button o unnel.talla, por ejeder interactñada un efec
e nuestro poemos sobre Opupssed with the
�� '%��;
s de código.ión con el reavascript sina del navega
de repente le y los nada con elvolver dond
na función
e tu nombreque nos mos
LinkButton.
emplo para duar.
cto de sombr
opup.OK.
e CancelCont
;�� 'T'@
�"
Conesto
ador.
a
resto e
ytrará
.
dar un
ra a
trolID
@
www.depurando.com 427
EjemEn nu(popuEn nu
<asp:
<asp:Venta<br /<asp:<asp:</asp
<ajaxCanceOkCoOnCaOnOkPopuTarge</aja
<scripfunct{alert}
funct{alert}</scr
mplouestro ejempup). Desde éuestro ejemp
:Button ID="B
:Panel ID="Paana emergen>:Button ID="B:Button ID="Bp:Panel>
xToolkit:ModelControlID=
ontrolID="ButancelScript="kScript="OK()pControlID="etControlID=axToolkit:Mo
pt type="textion OK()
('Has apretad
tion Cancel()
('Has apretad
ript>
plo, el activaésta actuaremplo hemos pr
Button1" run
anel1" runat=nte debida a
Button2" runButton3" run
dalPopupExte="Button3" tton2""Cancel()" )""Panel1""Button1">
odalPopupExt
xt/javascript
do OK');
)
do Cancel');
ador será unmos de formaresionado OK
at="server" T
="server" Widla llamada d
at="server" Tat="server" T
ender ID="Mo
tender>
">
Button quea diferente sK
Text="Abrir v
dth="125px"del botón
Text="OK" />Text="Cance
odalPopupEx
mostrará unsi presionam
ventana eme
BackColor="
>l" />
xtender1" run
����
na ventana emos sobre OK
ergente" />
"yellow">
nat="server"
�� '%��;
mergenteo sobre Can
;�� 'T'@
�)ncel.
@
www.depurando.com 428
10.1
DescEl Mula miformadeseldirec
Prop• Tar• Key
EjemTrabaque sél, o
<asp:<ajaxID="MTargeKey="
<asp:<ajaxID="MTarge
11.� Mutua
cripciónutuallyExclussma Key, noa muy similaleccionar unctamente y h
piedadesrgetControlIDy: clave que
mploajaremos consólo puede eserá deselec
:CheckBox IDxToolkit:MutMutuallyExcluetControlID="MSCoderExa
:CheckBox IDxToolkit:MutMutuallyExcluetControlID=
allyExclu
siveCheckBoxos aseguramoar a como fun
CheckBox ehay que acud
D: ID del cheasociará a v
n 3 CheckBoxstar seleccioccionado cua
D="CheckBoxuallyExclusivusiveCheckbo"CheckBox1"
amples" />
D="CheckBoxuallyExclusivusiveCheckbo"CheckBox2"
siveCheck
x extiende aos que sólo unciona el Ras inmediato,
diar a funcion
eckbox que vvarios checkb
x a la vez, aonado un Cheando clickem
x1" runat="seveCheckboxEoxExtender1"
x2" runat="seveCheckboxEoxExtender2"
kBox
l control Cheuno de ellos pdioButton, c, mientras qunes javascrip
vamos a manboxes.
aplicándoles eckBox, el c
mos en otro.
rver" Text="OExtender run"
rver" Text="OExtender run2"
eckBox. Añapuede estarcon la particuue hacerlo apt
ejar.
la misma Keual podemos
Opción A" />nat="server"
Opción B" />nat="server"
����
diendo varioseleccionadoularidad de q
a un RadioBu
ey en el extes deseleccion
>
>
�� '%��;
os checkboxeo a la vez, dquetton no es p
ndedor, de mnar clickando
;�� 'T'@
�*
es con de
osible
modo o en
@
www.depurando.com 429
Key="
<asp:<ajaxID="MTargeKey="
10.1
DescEl Nuincrea:- El s- Sub- Llamdecre
Podrehay p
Prop• Tar• Widdefecignor• Refen fo• Tarincre• Serincreutiliz• Serincre[Webpubli{…}• Tagpode
EjemEn nuinclui
<asp:
"MSCoderExa
:CheckBox IDxToolkit:MutMutuallyExcluetControlID="MSCoderExa
12.� Nume
cripciónumericUpDowmentan/dec
imple +1/-1ir o bajar demar a un servementamos.
emos asignarpor defecto.
piedadesrgetControlIDdth: anchuracto (mínimorará. fValues: listaorma de strinrgetButtonDomentar y de
rviceDownPamente o dec
zaremos estarviceDownMementar/dec
bMethod] c int NextVa
g: se correspmos utilizar
mplouestro senciliremos a nue
:TextBox ID=
amples" />
D="CheckBoxuallyExclusivusiveCheckbo"CheckBox3"
amples" />
ericUpDow
wn extiendecrementan e
aritmético.entro de un lvicio Web o
r botones pa
D: ID del Texa combinada25). Si elegi
ado de valoreng separado pownID/Targeecrementar. th/ServiceUcremente. Ena propiedad.ethod/Servicrementar el
alue(int curre
ponde con elpara disting
lo ejemplo,estro querido
="TextBox1" r
x3" runat="seveCheckboxEoxExtender3"
wn
al control Wl valor de és
listado de vaun método d
ara que haga
xtBox sobre edel TextBoxmos que otr
es sobre los por punto y
etButtonUpID
pPath: pathn caso de es
eUpMethod:TextBox. De
ent, string ta
segundo parguir qué elem
vamos a viajo Plutón.
runat="serve
rver" Text="OExtender run3"
Web TextBoxste. El increm
alores que lede la página
n de increme
el que vamosx y sus botonros botones h
que querremcoma ‘;’.
D: ID de los b
del serviciotar trabajan
método queeberá tener
ag)
rámetro delmento está ll
jar por los p
er" Text="Tie
Opción C" />nat="server"
habilitandomento/decre
e demos. diferente se
entador/dec
s a actuar. nes de arribahagan esa fu
mos ir subien
botones que
Web al quedo con méto
e será llamadla forma:
método al qlamando al m
lanetas del s
rra" Width="
����
>
unos botoneemento pued
egún si incre
crementador
/abajo que vnción, está p
ndo y bajand
hará la func
llamaremosodos de pági
do para
que llamaríammétodo.
sistema sola
"120" style="t
�� '%��;
es que de correspon
ementamos o
r o dejar los
vienen dadopropiedad se
o. Los darem
ción de
cuando se na no
mos, y lo
r, donde ya
text-
;�� 'T'@
�
nder
o
que
s por e
mos
no
@
www.depurando.com 430
align
<cc1:TargeRefVaServic</cc1
10.1
DescEl Paordenqueraprimepode
El res
Prop• Tar• Clie• Ind• Max• Sep• Selenegri• Uns
EjemMostraplica
<asp:<asp:<asp:<asp:<asp:<asp:<asp:</asp<cc1:ClienIndexSeparTarge</cc1
:center"></a
:NumericUpDetControlID=alues="MercuceDownMeth1:NumericUp
13.� Pagin
cripcióngingBulletednación en cliamos, al queeros caracter cambiar de
sultado es tr
piedadesrgetControlIDentSort: podexSize: NúmxItemPerPagparator: El teectIndexCssCta y/o subraselectIndexC
mploramos un simaremos como
:BulletedList:ListItem Tex:ListItem Tex:ListItem Tex:ListItem Tex:ListItem Tex:ListItem Texp:BulletedLis:PagingBullettSort="true"
xSize="1" rator="-" etControlID=1:PagingBulle
asp:TextBox>
DownExtende"TextBox1" Wurio;Venus;Thod="" ServicpDownExtend
ngBulleted
dList extiendiente. Es dece le aplicaremres) o por núe índice sin r
remendamen
D: ID del Bulemos elegir
mero de caracge: Máximo nexto que sepClass: Clase ayado.CssClass Clase
mple listado co índice de c
t ID="Bulletedxt="Braulio">xt="Arturo"><xt="Sofía"></xt="Andrés">xt="Begoña">xt="Antonio"st>tedListExten
"BulletedListetedListExte
>
er ID="NumeWidth="120"Tierra;Marte;ceUpMethod=der>
dList
de a la Bulletcir, nosotrosmos el Paginúmero de iterecargar.
nte profesion
letedList sobentre ordencteres en elnúmero de itpara los índicCSS que se a
e CSS que se
con 6 elemecabecera el
dList1" runat></asp:ListIt</asp:ListIte/asp:ListItem></asp:ListIte></asp:ListIt></asp:ListIt
nder ID="Pagi
t1"> ender>
ericUpDownE
;Júpiter;Satu="" TargetBut
tedList confi tendremos
ngBulletedLisems por índic
nal, fácil de
bre el que vaar alfabéticaíndice de caems por cad
ces de cabecaplicará al ín
e aplicará a l
entos desordeprimer carác
t="server"> em>em>m>em>tem>tem>
ingBulletedL
xtender1" ru
urno;Urano;NttonDownID=
riéndole proel típico listst y éste lo pce. Todo en
usar y muy m
amos a trabaamente (trueabecera. da página. Prcera. Típicamndice elegido
los índices qu
enados que vcter.
ListExtender1
����
unat="server
Neptuno"="" TargetBut
opiedades deado HTML, t
paginará segúcliente, por
manejable.
ajar.e) o no (false
redomina sobmente será uo. Normalme
ue no están
vamos a orde
1" runat="ser
�� '%��;
ttonUpID="">
e paginacióntan largo común su índicelo que vamo
e).
bre IndexSizeun guión ‘-‘. ente se le ap
elegidos.
enar y
rver
;�� 'T'@
��
>
y de mo(los
os a
e.
licará
@
www.depurando.com 431
10.1
DescEl Paniveltípico- Núm- Exig- Exig- Exig
Podesu pa- Med- Med
Ademcontr
Prop• Tar• Dispvalor• Stre• Pre• Prede la• Tex• Min• Min• Reqmayú• Texcontrmínimdébil• Calellospasswlongitel 20%• Bar• Bar• Helayuda• Hel
14.� Passw
cripciónsswordStrende fortaleza
os de fortalemero total degencia de siggencia de cogencia de nú
mos elegir yassword: diante textodiante una ba
más, podemoraseña.
piedadesrgetControlIDplayPositionres: AboveLeengthIndicat
eferredPasswefixText: pre
contraseña.xtCssClass: cnimumNumernimumSymboquiresUpperAúsculas y minxtStrengthDeraseña. Irá omo de 2 text;débil;mejorculationWeigdebe dar 10
word; por ejetud de la con% a la cantidrBorderCssClrIndicatorCsslpStatusLabea.lpHandleCssC
wordStren
gth es otro ea que tiene leza que define caracteresgnos. mbinar mayú
úmeros.
y configurar l
100% configarra que se i
os añadir la o
D: ID del Tex: posición reft, AboveRig
torType: tipowordLength: efijo a mostra. Típicamentclase CSS quericCharacterolCharacters:AndLowerCasnúsculas.escriptions: lrdenado de
tos y un máxrable;buena;ghtings: lista
00. Cada valoemplo “40;2ntraseña, eldad de caracass: Clase CSsClass: ClaseelID: ID de la
Class: clase C
ngth
extendedor dla contraseñaniremos nosos.
úsculas y mi
los dos modo
urable.irá rellenand
opción de “ay
xtBox sobre eelativa del inght, BelowLeo de indicadolongitud mínar cuando este será “Forte se aplicarárs: cantidad m: cantidad mseCharacters
listado de tedébil a fuertimo de 10. P;perfecta”. ado de 4 valoor asigna un5;15;20” sig25% a la can
cteres no alfaSS del borde CSS del inte
a Label que u
CSS del elem
del TextBox.a que está eotros:
núsculas.
os que tenem
do.
yuda”, dond
el que vamosndicador coneft, BelowRigor: Text o Banima que debstemos mosttaleza= “. al texto quemínima de c
mínima de sigs: especifica
exto que se ute y separadPor ejemplo:
ores numéricporcentaje dnifica que entidad de núanuméricos.
e de la barraerior de la bausaremos op
mento que m
. Con él podrescribiendo, e
mos de mostr
de explicar a
s a trabajar.respecto al
ght, LeftSidearIndicator.bería tener lrando el tex
e describe laaracteres nu
gnos (ej.: $ ^amos si exigim
usará para deo por punto: “muy
cos separadode importanl 40% del pesmeros, el 15
indicadora.arra indicadopcionalmente
ostrará el te
����
remos mostren base a un
rar al usuario
l usuario cóm
TextBox. Pue, RightSide.
la contraseñaxto que descr
a fortaleza duméricos. ^ *) mos la comb
escribir la foy coma ‘;’. T
os por ‘;’, docia a una caso de fortale5% a mayúscu
ora. e- para most
exto de ayu
�� '%��;
rar al usuarionos parámetr
o la fortalez
mo debe ser
uede tomar 6
a.riba la forta
e la contrase
binación de
ortaleza de laTendrá un
onde la sumaracterística eza viene deulas/minúsc
trar el texto
da.
;�� 'T'@
��
o el ros
a de
su
6
leza
eña.
a
a de del la
ulas y
de
@
www.depurando.com 432
• HelPued
EjemVeam
<asp:
<cc1:DisplaMinimMinimPrefePrefixRequStrenTargeTextS</cc1
10.1
DescEl PofunciEsa vWeb
Por e
lpHandlePosie tomar 6 va
mplomos qué forta
:TextBox ID=
:PasswordStrayPosition="
mumNumericmumSymbolCerredPassworxText="FortairesUpperAn
ngthIndicatoretControlID=StrengthDesc1:PasswordSt
15.� Popup
cripciónpupControl sonalidad con
ventana eme(típicamente
ejemplo, ima
ition: posicióalores: Above
aleza nos asi
="TextBox1" r
rength ID="Parightside"
cCharacters=Characters="2rdLength="13aleza: " ndLowerCaserType="Text""TextBox1"criptions="mtrength>
pControl
se puede aplnsiste en morgente a lae un panel) y
agínese un Te
ón relativa deLeft, Above
gna este con
runat="serve
asswordStre
="2" 2"3"
eCharacters="
uy débil; dé
licar a cualqostrar una peque llamarey dentro de
extBox en el
del elementoeRight, Below
ntrol:
er"></asp:Tex
ngth1" runat
"true"
bil; mejorab
uier controlequeña ventaemos popup-él podemos
l que cuando
o de ayuda cowLeft, Below
xtBox>
t="server"
ble; buena; p
Web al queana emergenpuede ser taubicar cualq
o se pone el
����
on respectowRight, LeftS
perfecta">
e llamaremosnte con infomambién cual
quier cosa.
ratón sobre
�� '%��;
al TextBox.Side, RightSi
s cuerpo- y smación adicioquier contro
él, emerja u
;�� 'T'@
��de.
suonal.
ol
un
@
www.depurando.com 433
calenplasm
Prop• Tar• Pop• Posposib• Comresultmodiopcio• Compopu• Offposic
EjemAplic
PopUFecha
<asp:<asp:<Con<cent<asp:CellPForeC<Sele<Tod<Sele<Wee<Othe<Nex<DayH<Title</asp</cen
</Co</asp</asp
<ajaxTargePopuPositi</aja
ndario sobreme en el Tex
piedadesrgetControlIDpupControlIDsition: posicibles serán: LemmitProperttado del popficar su “val
onal. mmitScript: fp.
fsetX/OffsetYción relativa
mploaremos el ej
p.aspxa: <asp:Text
:Panel ID="Pa:UpdatePanetentTemplatter>:Calendar ID=Padding="1" DColor="BlackectedDayStylayDayStyle B
ectorStyle BaekendDayStyerMonthDayStPrevStyle VHeaderStyleeStyle BackCp:Calendar>nter>
ntentTemplap:UpdatePanp:Panel>
xToolkit:PopetControlID=pControlID="ion="BottomaxToolkit:Po
el que podaxtBox.
D: ID del conD: ID del contón relativa eeft, Right, Tty: especificapup. Por ejemlue”, aunque
función java
Y: distancia del popup co
jemplo propu
tBox ID="Tex
anel1" runat=el ID="Updatete>
="Calendar1"DayNameForm" Width="160le BackColorBackColor="#ackColor="#Cyle BackColorStyle ForeCo
VerticalAlign=BackColor="
Color="#9999
ate> nel>
upControlEx"TextBox1""Panel1""> pupControlE
mos elegir u
ntrol cuerpo.trol popup. en la que apa
Top, Bottom,a la propiedamplo, en el ce también po
ascript que se
horizontal/von respecto
uesto en 3.1
tBox1" runat
="server" CssePanel1" run
" runat="servmat="Shorte0px" OnSelec="#666666" F
#CCCCCC" FoCCCCCC" /> r="#FFFFCC"olor="#808080="Bottom" />"#CCCCCC" F
999" BorderCo
xtender ID="P
Extender>
una fecha y e
arecerá el po Center.ad del controcaso de un Todríamos mo
e ejecutará
vertical en pdel cuerpo.
5.1
t="server" Wi
sClass="popunat="server">
ver" BackColost" Font-Nam
ctionChangedFont-Bold="ToreColor="Bla
/>0" /> >Font-Bold="Tolor="Black"
PopupContro
en el momen
opup con res
ol cuerpo quTextBox, lo nodificar su “W
cuando haya
ixels que aña
idth="80"></
upControl">
or="White" Bmes="Verdand="Calendar1True" ForeCoack" />
rue" Font-SizFont-Bold="T
olExtender1"
����
nto la elijamo
specto al cue
ue se modificnormal es quWidth”, su “T
amos dado e
adiremos o q
asp:TextBox
BorderColor=a" Font-Size=1 SelectionClor="White"
ze="7pt" /> True" />
runat="serve
�� '%��;
os, ésta se
erpo. Sus va
cará con el e queramosTextMode”..
l resultado d
quitaremos a
x>
="#999999" ="8pt"
Changed"> />
er"
;�� 'T'@
��
lores
.. Es
del
a la
@
www.depurando.com 434
Popuprote{Popu}
10.1
DescEl Reconficon t
Adem“onrepostb(ASP.
Prop• Tar• Han• Res• Min• Max• OnC• OnC• Han
Ejem<style.hand{widthheighbackgoverfcurso}</sty
<asp:Elem</asp
<ajaxMinimMinimMaximMaxim
pControl.aspected void Ca
pControlExte
16.� Resiz
cripciónsizableContrriéndole la p
texto y redim
más, añade mesize” con lobacks y sus d.NET). Tamb
piedadesrgetControlIDndleCssClasssizableCssClanimumWidth/ximumWidthClientResizeClientResizinndleOffsetX/
mploe>dleText
h:16px;ht:16px;ground-imagflow:hidden;or:se-resize;
yle>
:Panel ID="Paento que sep:Panel>
xToolkit:ResimumWidth="5mumHeight="mumWidth="mumHeight=
px.cs alendar1 Se
ender1.Com
ableContr
rol extiendepropiedad demensionarlo a
multitud de fos que podemdimensiones sbién podemos
D: ID del con: clase CSS dass: clase CS/MinimumHe
h/MaximumH: evento queng: evento qu/HandleOffse
ge:url(images
anel1" runat=va a redime
izableContro50""20" "250" ="125"
lectionChang
mit(Calenda
rol
cualquier coe redimensioa nuestro gu
funcionalidadmos crear lógse pueden acs limitar su a
ntrol Web qude elementoS que se apleight: anchuHeight: anchue se lanzará ue se lanzaráetY: offsets a
s/HandleGrip
="server" Heensionar
olExtender ID
ged(object s
r1.SelectedD
ontrol Web (onamiento. Psto sin más q
des, como lagica complejcceder desdeanchura y al
e vamos a poque debemoicará cuandora/altura míura/altura mcuando el elá cuando ela aplicar sob
p.png);
ight="50px" W
D="Resizable
sender, Even
Date.ToShort
por ejemploPodemos, poque cogerlo
anzamiento dja. Su estadoe cliente (jatura máxima
oder redimeos coger paro estemos reínimas.
máximas. lemento hayelemento es
bre el eleme
Width="125p
ControlExten
����
ntArgs e)
tDateString(
o un Panel or ejemplo, ccon el ratón
de eventos “o se mantienavascript) y das.
ensionar.a redimensio
edimensionan
ya sido redimsté siendo rento redimen
px">
nder1" runat
�� '%��;
));
una imagen)coger un Pann.
“onresizing”ne durante lodesde servido
onar. ndo.
mensionado edimensionadsionador.
t="server"
;�� 'T'@
��
)nel
yosor
do.
@
www.depurando.com 435
HandTarge</aja
10.1
EjemAplicPode
Prop• Tarun Pa• Rad• Colfondo
Ejem<asp:Este e</asp
<ajaxTargeRadiu</aja
10.1
DescEl SliddeslizPor eel val
Podemovim
leCssClass="etControlID=axToolkit:Re
17.� Roun
mploa un redondemos elegir e
piedadesrgetControlIDanel.dius: radio deor: color deo del Panel a
mplo:Panel ID="Paes el panel sp:Panel>
xToolkit:RouetControlID=us="8"> axToolkit:Ro
18.� Slider
cripciónder es un exzador (ver ej
ejemplo se plor numérico
mos elegir umiento del S
handleText""Panel1">sizableContr
dedCorne
eado de los el radio de re
D: ID del con
e redondeo dfondo del ár
al que perten
anel1" runat=sobre el que
ndedCorners"Panel1"
undedCorne
r
xtendedor dejemplo). Susuede sincrono que represe
un valor míniSlider puede
rolExtender>
ers
bordes a cuaedondeo.
ntrol Web sob
de las esquinrea redondeanece.
="server" Widse aplicará e
sExtender ID
rsExtender>
el TextBox, ds funcionalidnizar con unenta.
mo y un valoser contínuo
>
alquier contr
bre el que se
nas. Por defeada en las es
dth="125px"el bordeado
D="RoundedC
de modo queades son múTextBox o u
or máximo, ao o discreto
rol Web (hab
e aplicará el
ecto vale 5.squinas. Por
BackColor=".
ornersExten
e al aplicarloúltiples.una Label, de
así como per(le marcarem
����
bitualmente
redondeo. H
defecto se c
"#557755">
der1" runat=
o sobre él, se
e modo que s
rmitir númermos los paso
�� '%��;
un Panel).
Habitualmen
coge el colo
="server"
e convierte e
se va mostra
ros decimaleos que debe d
;�� 'T'@
�!
nte es
r de
en un
ando
es. El dar).
@
www.depurando.com 436
Ademservid
Prop• Min• Max• Dec• Ste• Val• Ena• Han• Rai• Han• Han• Lenexten• Boudesliz• Raibotón
EjemMostr
<asp:<asp:<ajaxTargeBoun
10.1
DescEl Teque arelleny si n
Su finTextB
más, soportador en modo
piedadesnimum: Valorximum: Valocimals: Cantips: Cuando que: Valor ac
ableHandleAndleAnimatiolCssClass: AsndleCssClassndleImageURngth: Longitundiendo undControlIDzador. seChangeOnn izquierdo d
mploramos lo fáci
:TextBox ID=:TextBox ID=xToolkit:SlideetControlID=dControlID="
19.� TextB
cripciónxtBoxWatem
aparezca unnado por el unos vamos de
nalidad habitBox.
postbacks eo AJAX.
r inferior. Poor superior. Pidad de deciqueramos un
ctual del desnimation: AconDuration: signa una cla: Asigna una
RL: opcionalmud del desliz
D: ID del Tex
lyOnMouseUdel ratón.
il que es cre
="TextBox1" r="TextBox2" rerExtender I"TextBox1""TextBox2" /
BoxWater
mark extiendtexto (de unusuari, de mel textbox sin
tual es la de
incluso lo p
or defecto esPor defecto 1imales. Por dn deslizamienlizador.ctiva la animduración en
ase CSS a la v clase CSS almente podemador. Por de
tBox o Label
p: Si se activ
ear un Slider.
runat="serverunat="serveID="SliderExt
/>
rmark
e, de nuevona clase CSS
modo que cuan haber escr
e mostrar al u
podemos com
s 0. 100.defecto no hnto discreto
mación. milisegundo
vía sobre la l deslizador.mos asignar efecto se cog
l en el que e
va, lanza el
.
er"></asp:Texer"></asp:Textender1" run
, al control específica) e
ando hagamoito nada, el
usuario ciert
mbinar con un
ay., marcaremo
os de la animque se muev
una imagengerá la longit
estamos most
evento “cha
xtBox>xtBox>at="server"
TextBox. Suen el TextBoos clic sobretexto vuelve
ta informació
����
n UpdatePan
os la cantida
mación. ve el deslizad
al deslizadotud del Text
trando el va
ange” cuando
funcionalidaox cuando eséste, ese t
e a aparecer
ón antes de
�� '%��;
nel para viaja
ad de pasos.
dor.
r.tBox que esta
lor del
o se suelta e
ad consiste este no haya sexto desaparer.
rellenar el
;�� 'T'@
�"ar al
amos
el
ensido ezca,
@
www.depurando.com 437
Prop• Tar• Wa• Wa
EjemVamoquedhechousuar
<asp:<br /<asp:
<ajaxTargeWate
<ajaxTargeWate
10.2
DescEl Toimágeimage
Prop• Tar• Che• Unc• Disadesha• Disadesha
piedadesrgetControlIDtermarkTexttermarkCssC
mploos a pedir elarán los cuao click sobrerio” para dej
:TextBox ID=>:TextBox ID=
xToolkit:TexetControlID=ermarkText="
xToolkit:TexetControlID=ermarkText="
20.� Toggl
cripciónggleButton eenes el estaden específica
piedadesrgetControlIDeckedImageUcheckedImagabledCheckeabilitado y eabledUnchecabilitado y e
D: ID del Text: Texto queClass: la clase
nombre de udros de text
e el primer Tjarnos escrib
="TextBox1" r
="TextBox2" r
tBoxWaterm"TextBox1""Nombre de
tBoxWaterm"TextBox2""Contraseña"
leButton
extiende al cdo de un Chea, y su está
D: ID del CheUrl: URL de lgeUrl: URL dedImageUrl:en estedo deckedImageUren estedo de
xtBox que vase mostrará
e CSS que se
usuario y conto nada más TextBox y debir lo que qu
runat="serve
runat="serve
markExtender
usuario" />
markExtender
" />
control ChececkBox. Es d“unchecked”
eckBox que ela imagen a me la imagenURL de la im“Checked”.
rl: URL de la“UnChecked
amos a extená cuando no e aplicará al
ntraseña. Encargarse la pinmediato seramos.
er"></asp:Tex
er"></asp:Tex
r ID="TextBox
r ID="TextBox
ckBox. Su únidecir, si el Ch” mostrar ot
extenderemomostrar cuana mostrar cu
magen a mos
a imagen a md”.
nder.haya nada eTextBox cua
n la primera página; en lase ha borrado
xtBox>
xtBox>
xWatermark
xWatermark
ica funcionaheckBox estátra.
os.ndo el Checkuando el Chestrar cuando
mostrar cuand
����
scrito en el Tando no haya
imagen vema segunda imo el texto “N
kExtender1" r
kExtender2" r
lidad consistá “checked”
kBox esté “CeckBox esté el CheckBox
do el CheckB
�� '%��;
TextBox.a nada escrit
os cómo magen hemosNombre de
runat="serve
runat="serve
te en sustitumostrar una
Checked”.“UnCheckedx está
Box está
;�� 'T'@
�)
to.
s
er"
er"
ir por a
d”.
@
www.depurando.com 438
• Che• UncUnCh• Ima
Ejem<asp:<br><ajaxrunatTargeImageImageUnchChecUnch
10.2
DescEl VaRangelos tíNo tehttp:añadi
Prop• Tar• Wid• Hig• Waque v• Clo
EjemUn ej
<asp:<asp:Error<a hrContr<br /><asp:
<ajax
eckedImageAcheckedImagheckedImageageHeight/Im
mplo:CheckBox ID
xToolkit:Toggt="server" etControlID=eWidth="19"eHeight="19"eckedImagekedImageUrleckedImageA
21.� Valida
cripciónlidatorCalloueValidator, Cpicos validad
enemos que a//www.subgirles el atrib
piedadesrgetControlIDdth: AnchuraghlightCssClarningIconImaviene por defseImageUrl:
mplojemplo vale m
:TextBox ID=:RequiredFierMessage='Mref="http://wrolToValidat>:Button ID="
xToolkit:Valid
AlternateTexgeAlternateTeUrl.mageWidth: A
D="CheckBox
gleButtonExt
"CheckBox1"
"Url="ToggleBl="ToggleButAlternateTex
atorCallo
ut es un exteCustomValiddores. aplicar los vagurim.net/ar
buto Display=
D: ID del Valia del Calloutass: OpcionalageUrl: Url dfecto. Imagen que
más que mil
="TextBox1"eldValidatorMensaje de ewww.es�asp.e="TextBox1
Button1" ru
datorCallout
xt: texto alteText: texto a
Altura/Anch
x1" Checked=
tender ID="T
"
Button Unchtton Checkext="No selec
ut
endedor de cator...), con
alidadores crticulos/asp-=”None” y as
idador que s
lmente se pudel icono que
e produce el
palabras, y e
runat="serveID="Requirerror donde pnet">Url cua1"></asp:Req
nat="server"
Extender run
ernativo de lalternativo d
ura de la im
="true" Text=
ToggleButton
hecked.gif"d.gif" Check
ccionado" />
cualquier tipn el que cons
omo lo hemo-net-generalsignarles el V
se está exten
uede asignare muestra la
cierre del Ca
en casos com
er"></asp:TedFieldValidapodemos añaalquiera</a>quiredFieldV
" Text="Butto
nat="Server"
la imagen dee la imagen
agen que se
="Mi CheckBo
nExtender1"
kedImageAlte
po de validadseguimos una
os hecho hasl-articulo48.aValidatorCall
ndiendo.
una clase C alerta. Si no
allout
mo el Callout
extBox>tor1" runat=adir todo tip.'Validator>
on" />
" ID="Validat
����
efinida en Chdefinida en
va a mostra
ox" runat="se
ernateText="
dor (Requireda vista much
sta ahora (veaspx), pero clout.
SS sobre el Co se especifi
t mucho más
="server" Diso de HTML,
torCalloutExt
�� '%��;
heckedImage
ar.
erver"/>
"Seleccionad
dFieldValidaho más amab
ercon el detall
Callout.ica se muest
s:
splay="Nonepor ejemplo
tender1"
;�� 'T'@
�*eUrl.
do"
ator, ble de
le de
ra el
"o una
@
www.depurando.com 439
TargeetControlID=="RequiredFieldValidatorr1" Width="3350px" />
���� �� '%��;;�� 'T'@
�
@
www.depurando.com 440
AApliicaccio
%�
�
ǿǿǿΦƛƴŀŘŜŎƻΦŎƻƳ
Mnecon
����
���
MCsn .N
���
CTS:WebNET
3
�
:bT
5
www.depurando.com 441
%�
Las paloja
EL obotrasdispoImagde bodiferedatos
Los sesistem
Lo únproto
Cóm��
�
DesEl pro
�
��
�
http:/
����
áginas web sa la página w
bjetivo de loss aplicacionesoner de estosinemos, porolsa. En lugarentes bolsass en formato
ervicios webma operativo
nico que neceocolos estánd
mo funcioEl servido
El formatel mismoXML
Los sistempreocupacualquier
sarrolla uoceso de des
Los archivtexto. SeStudio.
Un servic
Podemosmétodos
Podemosnavegado
//localhost/w
�� �
sólo permiteweb.
s servicios wes sin interfazs servicios wejemplo, qur de integrar, la aplicacióo XML.
b están débilmo o del lengu
esitamos pardar de la ind
onan los sor del servici
to de datos cestándar ab
mas de los doan del SO, elr extremo de
un servicsarrollar un s
vos de códigpueden crea
cio Web está
s pensar en use muestran
s probar fácilor:
websites/sto
���
en la interacc
eb es crear az de usuario.web puede incue estamos cr la base de dón puede com
mente acopluaje de progr
ra crear un sustria, HTTP
servicioso Web y la a
con el que sebierto. Este e
os extremosmodelo de oe la conexión
io Webservicio web
go que formaar y editar co
definido po
un servicio wn a los client
lmente un ar
ockTickerInLi
ción entre un
aplicacionesSi somos loscrementar ereando un sidatos final, cmunicarse co
ados y son cramación usa
servicio webP, SOAP y XM
s Webaplicación cli
e comunicanestándar casi
de la conexobjetos o el ln.
es casi idént
an las páginaon cualquier
r su archivo.
web como enes a través d
rchivo .asmx
ine.asmx
n navegador
basadas en ws desarrolladnormementitio web paraon todas lason sus servici
completamenado en el ser
es que el serML.
ente están c
los dos extrei siempre ser
ión están délenguaje de p
tico a desarr
s web y los seditor de te
asmx
una clase ende Internet
introducien
cliente y el s
web que intedores de unae nuestra pra una emprebases de daios web, inte
nte independrvidor o en e
rvidor y el cl
onectados a
emos de la crá SOAP, bas
bilmente acoprogramació
rollar una pág
servicios sonxto y tambié
n la que algu
ndo su URL e
%���
servidor Web
eraccionen ca página webroductividadesa de corredtos de lasercambiando
dientes delel cliente.
iente admita
Internet
conexión cumsado en texto
oplados. Noón usado en
gina web:
archivos deén con el Vis
unos de los
n cualquier
��� ���
�
b que
conb,.dores
o
an los
mpleno,
se
ual
�
www.depurando.com 442
El pAntesUn prla llamel proel códsería
El prollamade reuna stodo
Paraclientsus fiexiste
CreaEl conotro sSOAP
La claconsu
La apdel clhacerproxy
CreaAbrimcrearservic
El arc
proxys de que unaroxy es un sumada a travéotocolo y el fdigo para sermucho trab
oxy está regiadas al métoealizar nuestrsolicitud SOAy lo muestra
que esto funte que se estrmas. El proentes, sin ca
ar el Connsumidor deservicio webP.
ase proxy seumidora.
plicación conliente. Una vr el cliente py, como si fu
ar un sermos un nuevrán variosarccios web. El a
chivo consta
a aplicación custituto del cés de los límiformato aderializar y envajo. EL proxy
strado por lado, como siras llamadasAP. Cuando ea a la aplicac
ncione, un prtá desarrollapietario delmbiar su firm
nsumidore un serviciob. Lo único ne
compila en u
sumidora revez que se crara usar el sera una llam
rvicio weo sitio web dchivos y direcarchivo que
de una sola
cliente puedcódigo real aites del equicuados y, noviar datos ady lo hace por
a aplicación cestuviera lla, envolverlasel servidor deión cliente c
rogramadorndo. Este reservicio webma, y el prox
rweb puede secesario es q
un ensambla
cibe el nombeado y registervicio web
mada sobre u
eb sencillde tipo servicctorios, aunqse crea por d
línea
a utilizar unal que querempo. Las soliciormalmenteecuados al sr nosotros.
cliente, A comando a uns en el formaevuleve el paomo si proce
debe crear egistro es unab puede añadxy existente n
ser una aplicque el consu
ado, que deb
bre de clienttrado el proxes realizar un objeto loc
locio web. Al igque los detaldefecto es u
servicio webmos llamar.itudes al servSOAP y / o Hservicio web
ntinuación, lobjeto localato adecuadoaquete al clieediera de un
el proxy y rega lista de losdir nuevos mno fallará.
cación de escmidor pueda
be estar regis
e, y el proxyxy con el cliena llamada aal.
gual que enles específicn archivo co
b, debemos cEs el responsvicio Web deHTTP. Podríanosotros mi
la aplicación. Elproxy haco y enviarlasente, el proxyn método de
gistrarlo conmétodos we
métodos web
critorio, unaa enviar y rec
strado con la
se encuentrente, lo únicoal método so
un sitio webos serán difen la extensió
%���
crear un proxsable de redeben cumplirmos escribirsmos, pero e
cliente realice todo el tras al servidor cy lo decodifiun objeto lo
la aplicacióneb expuestoso actualizar
página webcibir paquete
a aplicación
ra en el equio que tiene qobre ese obje
normal, seerentes paraón .asmx
��� ���
�xy.irigirr conr todoeso
izaabajocomocaocal.
ns yr los
ues
poqueeto
los
�
www.depurando.com 443
<%@ W
Por s
usingusingusingusingusing
[WebS[WebS// Paquite// [Spubli{
p
compo
}
[p
}
}
El códderivy We
En laEste maplica
usingusingusingusingusing
[WebS[WebS
WebService L
u parte, el a
g System; g System.Colg System.Ling System.Webg System.Web
Service(NameServiceBindiara permitire la marca dSystem.Web.Sic class Ser
public Servi
//Eliminonentes dise
//Initia}
[WebMethod]public strin
return "}
digo oculto ca de la clasebServiceBind
clase Servicemétodo incluaciones cons
g System; g System.Colg System.Ling System.Webg System.Web
Service(NameServiceBindi
Language "C#
rchivo de có
lections.Genq;b;b.Services;
espace "htng(Conforms
r que se llamde comentaricript.Servi
rvice : Syst
ce () {
nar la marca eñadosalizeCompone
ng HelloWorlHello World
contiene unaSystem.Weding.
e hay un méuye el atribusumidoras.
lections.Genq;b;b.Services;
espace "htng(Conforms
" CodeBehind
digo oculto s
neric;
tp://tempuriTo WsiProfme a este seo de la líneces.ScriptSeem.Web.Servi
de comentar
nt();
d() { ";
a clase, que rb.Services.W
todo estándto WebMeth
neric;
tp://tempuriTo WsiProf
d "~/App Cod
se crea en un
i.org/")]files.BasicPervicio web ea siguienteervice]ices.WebServ
rio de la lí
recibe su nomWebService. E
ar llamado Hhod, que ide
i.org/")]files.BasicP
de/Service.c
n subddirect
Profile1 1)]desde un sc
e.
vice
ínea siguien
mbre del arcEsta clase tie
HelloWord, qentifica este m
Profile1 1)]
cs" Class "S
orio llamado
cript, usand
nte si utili
chivo de servene dos atrib
que devuelvemétodo com
%���
ervice" %>
o App_Code
do ASP.NET A
za los
vicio web, qubutos, WebSe
e una cadenamo disponible
��� ���
�
JAX,
ueervice
a.e ara
�
www.depurando.com 444
// Paquite// [Spubli{
/mayo
s{
}p{
compo
}
[p/{
}[p{
}}
Dire<%@ W
Sustit
ara permitire la marca dSystem.Web.Sic class Ser
//Matriz de de 2005
string[,] st{ {"MSFT", {"DELL", {"HPQ"," {"YHOO", {"GE","G {"IBM"," {"GM","G {"F","Fo
};public Servi{
//Eliminonentes dise
//Initia}
[WebMethod]public doubl//Dado un si{
for (intif (
return 0}[WebMethod]public Strin{
for (int {
if (
} return "
}
ectiva WWebService L
tuye a Page e
r que se llamde comentaricript.Servi
rvice : Syst
simbolos y p
tocks
"Microsoft""Dell CompuHewlett Pac"Yahoo","34
General ElecInternation
General Motoord Motor Com
ce()
nar la marca eñadosalizeCompone
e GetPrice(mbolo de va
t i 0; i < String.Compreturn Conv
;
ng GetName(s
t i 0; i <
String.Compreturn stoc
Simbolo no
ebServicLanguage "C#
en aspx
me a este seo de la líneces.ScriptSeem.Web.Servi
precios de a
,"25.30"},ters","34.83kard","20.47.50"},tric","36.20al Business rs","26.68"mpany","9.11
de comentar
nt();
string Stocklor, devuelv
stocks.GetLare(StockSymert.ToDouble
tring StockS
stocks.GetL
are(StockSymks[i, 1];
encontrado";
ce" CodeBehind
ervicio web ea siguienteervice]ices.WebServ
acción. los
3"},7"},
0"},Machine","7
},12"}
rio de la lí
kSymbol)ve su precio
Length(0); imbol, stockse(stocks[i,
Symbol)
Length(0); i
mbol, stocks
;
d "~/App Cod
desde un sce.
vice
precios de
76.38"},
ínea siguien
o
i++)s[i, 0], tru2]);
i++)
s[i, 0], tru
de/Service.c
cript, usand
las accione
nte si utili
ue) 0)
ue) 0)
cs" Class "S
%���
do ASP.NET A
es son del 1
za los
ervice" %>
��� ���
�
JAX,
de
�
www.depurando.com 445
DerEn elopcio
���
EstaSe tie
[WebMp{
}[p{
}
AtriDefinpredeasocipara
AtriCada
��
ProPor dantescompdesac
[Web
Pro[Web
rivar de lejemplo antonal, pero of
Applicatio
User
Context (
ado de laene acceso a
Method]public void{ Applicat
}[WebMethod]public strin{
return A}
ibuto Wene un conjunetermianda,ados con unidentificar v
ibuto Wemétodo que
Ser decla
Tener el a
opiedad Bdefecto, ASP.s de enviarlaportamientoctivar esta m
bMethod(Buf
opiedad CbMethod(Cac
a clase Wterior la claserece ventaja
on y Session
(Información
a aplicacil objeto App
SetStockExc
tion["exchan
ng GetStockE
Application[
ebServiceto de operacque incluyea vinculacióninculaciones
ebMethode queramos
rado como p
atributo Web
BufferRes.NET almacedesde el seróptimo. Sin
memoria inte
fferResponse
CacheDurcheDuration
WebServie Service heras:
n del invocad
ónmediaplication med
hange(string
ge"] Excha
xchange()
"exchange"]
eBindingciones espectodos los mn no predetes no predeter
dmostrar al co
público.
bMethod an
sponsena en la memrvidor al clieembargo, sirmedia, asig
e=false)]
ration=30)]
cereda de Web
dor)
ante Httpdiante el obje
g Exchange)
ange;
.ToString();
gcífico.Una claétodos weberminada. Elrminadas.
onsumidor d
tes de la dec
moria intermnte. EN casila respuesta
gnando a la p
bService. Der
pContexteto HttpCont
;
ase WebServde la clase qatributo We
debe:
claración del
media toda latodos los casa es muy largpropiedad Bu
rivar de Web
ttext.
vice tiene unaque no estánebServiceBin
método
a respuesta asos, éste es ega, quizás quufferRespons
%���
bService es
a vinculaciónespecíficamding se utiliz
a una solicituelueramosse false.
��� ���
�
nmenteza
ud,
�
www.depurando.com 446
ProCadeel nav
[Web
Pro [We
p{
}
ProPOdefirma
Los secausa
[WebMMessa
p{
}[
simbop{
}
Dochttp://
<?xml
- <discoverxmlns:
<contractRdocRexmlns=
<soap addbindin
<soap addbindin
opiedad Dna descriptivvegador.
bMethod(De
opiedad EebMethod(Despublic int H{
if (Sess { Sess }
else { Sess }
return (
}
opiedad Memos tener ma. Cada firma
ervicios webada por tene
Method(DescrageName "Gpublic doubl{
return 0}[WebMethod(Dolo especifipublic doubl{
return 0}
cumentos/localhost:4974
version="1
ry xmlns:xsi="h
:xsd="http://w
Ref ref="http:
ef="http://loc="http://sche
dress="http://
ng="q1:Overlo
dress="http://
ng="q2:Strock
Descriptiva. Aparecer
scription=”D
EnableSescription
HitCounter()
ion["HitCou
ion["HitCou
ion["HitCou
(int)Sessio
MessageNmás de un ma única puede
b no permiteer más de un
ription "DGetValuePorte GetValue(
;
Descriptioncado", Messe GetValue(
;
s de Desc43/Servicioweb
1.0" encodi
http://www.w
www.w3.org/
//localhost:49
alhost:49743/emas.xmlsoap.
/localhost:497
oadedGetValue
/localhost:497
kTickerSoap" x
onrá en la págin
Devuelve el p
ssion"NUmero de h
nter"] nu
nter"] 1;
nter"] ((i
n["HitCounte
Nameétodo con ee ser invocad
n sobrecargamétodo con
evuelve el vfolio")]string Stock
"DevuelveageName "Gstring Stock
cubrimieb/Service.asmx?
ng="utf-8"
w3.org/2001/X
2001/XMLSch
9743/Servicio
/Servicioweb/.org/disco/scl
743/Serviciow
e" xmlns="http
743/Serviciow
mlns="http://
na de ayuda
precio de sto
hits por ses
ull)
int)Session
er"]);
l mismo nomda de formai
a. La propiedn el mismo n
valor de los
kSymbol)
el valor deGetValueStockSymbol, int
ento?disco
?>
XMLSchema-in
hema" xmlns="
oweb/Service.
/Service.asmxl/" />
web/Service.as
://schemas.x
web/Service.as
schemas.xmls
del servicio W
ck para el sím
sion", Enabl
["HitCounter
mbre en la claindependien
dad Messageombre.
s usuarios e
e los usuarick")]t NumShares)
nstance"
http://schem
asmx?wsdl"
x"
smx" xmlns:q1=
mlsoap.org/d
smx" xmlns:q2=
soap.org/disco
Web cuando
mbolo de en
leSession
r"]) + 1;
ase C#. Se dinte. (Sobreca
eName elimin
en un simbol
ios comparti
as.xmlsoap.or
="http://temp
isco/soap/" />
="http://temp
o/soap/" />
%���
o lo probemo
trada”)]
true)]
ferencian poarga)
na la ambigü
o especific
dos en un
rg/disco/">
puri.org/"
>
puri.org/"
��� ���
!os en
or su
üedad
ado",
�
www.depurando.com 447
<soap addbindin
<soap addbindin
</disco
ImpComo
%�
Cream
Debeañadestá s
http:/
Tras cweb c
[Sitio
dress="http://
ng="q3:Overlo
dress="http://
ng="q4:Strock
overy>
plementao la de una p
����
mos un nuev
emos propore una referesirviendo de
//localhost/s
crear el direcconsumidor.
o Web][Agreg
/localhost:497
oadedGetValue
/localhost:497
kTickerSoap12
aciónpágina web c
�� D
vo sitio web
cionar una reencia web a nsde un direc
servicioweb/
ctorio virtua.
gar referenci
743/Serviciow
e1" xmlns="htt
743/Serviciow
" xmlns="http:
cualquiera.
�� ��
eferencia panuestro clienctorio virtual
/service.asm
l, podemos a
ia Web]
web/Service.as
p://schemas.
web/Service.as
://schemas.xm
� ��
ara el servicionte. Puede ag.
mx
agregar el se
smx" xmlns:q3=
xmlsoap.org/
smx" xmlns:q4=
mlsoap.org/di
����
o web (en cogregar a un s
ervicio comor
="http://temp
disco/soap/"
="http://temp
sco/soap/" />
�
oncreto al proservicio web
referencia w
%���
puri.org/"
/>
puri.org/"
>
oxie). VS200si este servi
web para un s
��� ���
"
8cio se
sitio
�
www.depurando.com 448
Se añ
Tamb
<appS
</app
Agreg
local
ñadirá una ca
bién ha apare
Settings><add key
pSettings>
ga una refere
lhost.Strock Label2.T
arpeta App_W
ecido en el w
"localhost.
encia
kTickerSoap pText "Web
WebReferen
web.config
service" va
proxy newService reto
nces, que se m
alue "http:/
localhost.Sorna " + pro
mostrará en
/localhost/s
StrockTickeroxy.HelloWor
el explorado
servicioweb/
rSoap();rd();
%���
or de solucio
/service.asm
��� ���
)
ones.
mx"/>
�
www.depurando.com 449