Академический Документы
Профессиональный Документы
Культура Документы
AJAX y ASP.NET
8.1. Introducción
8.1.1. ASP.NET
ASP.NET es un modelo de desarrollo Web unificado que incluye los servicios
necesarios para crear aplicaciones Web empresariales con el mínimo de código.
ASP.NET forma parte de .NET Framework y al codificar las aplicaciones ASP.NET
tiene acceso a las clases en .NET Framework. El código de las aplicaciones puede
escribirse en cualquier lenguaje compatible con el Common Language Runtime
(CLR), entre ellos Microsoft Visual Basic, C#, JScript .NET y J#. Estos lenguajes
permiten desarrollar aplicaciones ASP.NET que se benefician del Common
Language Runtime, seguridad de tipos, herencia, etc.
ASP.NET incluye:
– Marco de trabajo de página y controles
– Compilador de ASP.NET
– Infraestructura de seguridad
– Funciones de administración de estado
– Configuración de la aplicación
– Supervisión de estado y características de rendimiento
– Capacidad de depuración
– Marco de trabajo de servicios Web XML
– Entorno de host extensible y administración del ciclo de vida de las
aplicaciones
– Entorno de diseñador extensible
Las principales características del ASP.NET son:
Modelo de programación controlada por eventos
Intuitivo, modelo de objeto coherente
Administración del estado automática
Aplicaciones independientes del navegador
Compatibilidad de Common Language Runtime de .NET Framework
Rendimiento del servidor escalable de .NET Framework
8.1.2. Modelos
El modelo tradicional
El modelo clásico de las aplicaciones Web trabaja de la siguiente manera: por
medio de la interfase de usuario que tiene la página Web (el navegador), se
realiza una petición al servidor haciendo uso del protocolo estándar HTTP para la
comunicación, en este momento la página completa viaja al servidor debido a que
HTTP es sin estado (stateless). Esto significa que el servidor no guarda el estado
de la información que teníamos en la página previamente, es decir, los datos que
teníamos en la página antes de realizar la petición al servidor se pierden. Por lo
tanto, si no queremos perder datos de nuestra página Web necesitamos enviarlos
al servidor para que puedan ser restaurados cuando se vuelva a generar la
página, ASP.NET lo hace mediante el campo oculto del ViewState.
Una vez que la petición llega a servidor (postback), esta es atendida realizando
diversos procesos como pueden ser obtener información de la base de datos,
procesar dicha información pudiéndose valer de algunas operaciones auxiliares e
incluso comunicarnos con otras aplicaciones para llevar a cabo esta tarea. Por
último el servidor devuelve al cliente una página HTML.
Durante el proceso de actualización de la página, el usuario pierde todo tipo de
interacción posible con dicha página hasta que esta es mostrada nuevamente en
el navegador como una nueva página.
El modelo Ajax
En el modelo AJAX, los procesos creados con Ajax se ejecutan en el cliente, es
decir, en el navegador del usuario, y mantiene comunicación asíncrona con el
servidor en un segundo plano. De esta forma es posible realizar cambios sobre la
misma página sin necesidad de recargarla por completo, con lo que nos evitamos
de considerables pausas y conservamos el estado de nuestra información, lo que
se traduce en el aumento de la interactividad, velocidad y usabilidad de la misma.
Una vez que la página es procesada completamente por primera vez, todas las
llamadas a servidor pueden ser administradas por AJAX, de tal suerte que al estar
enviando y recibiendo del servidor la menor cantidad de información posible, esto
quiere decir, que al realizar peticiones al servidor Web y ejecutar las
actualizaciones parciales de la página mediante JavaScript y el XML que es
recibido, se mejora la interacción al mejorar los tiempos de respuesta y además
minimizamos el uso de recursos tales como el ancho de banda ya que no estamos
enviando la página completa si no solamente una porción de ella.
Dado que estos procesos de actualización se ejecutan de modo asíncrono en un
segundo plano los usuarios pueden seguir trabajando con la página y no darse
cuenta de que se esta llevando a cabo un proceso de actualización.
Otros modelos:
Existen otros modelos para la creación de entornos enriquecidos (RIA), como son
los:
APPLETS de Java
Controles ActiveX
Controles Windows .NET
Plug-in de Navegador (por ejemplo: Flash)
Networking
Membership, Roles &
Personalization Support
Base class library
ASP.NET Server Controls
Core runtime
8.3. Controles
8.3.1. Servidor
Controles de servidor ASP.NET AJAX Extensions más utilizados:
ScriptManager
ScriptManagerProxy
UpdatePanel
UpdateProgress
Timer
Las extensiones ASP.NET AJAX cuentan con más de 60 componentes, entre
clases, interfaces y enumeraciones, para dar soporte al AJAX y permitir su
personalización. Están repartidas en los siguientes espacios de nombres:
System.Web.Configuration
System.Web.Handlers
System.Web.Script.Serialization
System.Web.Script.Services
System.Web.UI
System.Web.UI.Design
ScriptManager
Administra la actualización parcial de la página.
Administra el scripting del cliente para las páginas de ASP.NET AJAX.
Se encarga de registrar el script para Microsoft AJAX Library en la página.
Habilita al scripting del cliente para las extensiones del sistema de tipos y para
soportar características como las actualizaciones parciales, las llamadas a Web
Services y el acceso a los servicios de autenticación y perfiles.
Permite enviar JavaScript personalizado al navegador del cliente.
Es necesario disponer de un control ScriptManager en la página para poder utilizar
el resto de los controles AJAX de servidor.
ScriptManagerProxy
El control ScriptManagerProxy permite que componentes anidados puedan
añadir Scripts y referencias a Servicios Web cuando ya existe un ScriptManager
en el control padre.
UpdatePanel
Especifica qué partes de la página pueden participar en la actualización parcial.
Está preparado para los siguientes escenarios:
Complejos comportamientos de Cliente para mejorar la experiencia de
usuario.
Actualización parcial de página sin profundos conocimientos de
ECMAScript (JavaScript)
Comportamiento independiente del tipo de navegador cliente
Menor cantidad de información transferida entre navegador Cliente y
Servidor.
El UpdatePanel es un panel que contendrá otros controles Web del ASP.NET.
Automáticamente transformara el comportamiento estándar de postback síncrono
de dichos controles en un comportamiento de postback asíncrono. Por lo que se
puede transformar rápidamente una aplicación tradicional de ASP.NET a modo
AJAX incorporando UpdatePanels donde corresponda.
La actualización está basada en eventos, por defecto cualquier control dentro de
un UpdatePanel causa un postback asíncrono y actualiza el contenido del
UpdatePanel.
También se puede configurar que otros controles en la página refresquen el
contenido del UpdatePanel
Se deben definir Triggers para el control UpdatePanel.
Un trigger es definido usando: AsyncPostBackTrigger.
Si no especificas el evento del Trigger se usa el evento por defecto del
control.
El control UpdatePanel tiene dos modos de actualización:
Siempre [UpdateMode = Always]
Condicional [UpdateMode = Conditional]
Los controles UpdatePanels pueden estar anidados. Si el padre es refrescado,
todos los controles dentro de él son refrescados.
No todos los controles Web del ASP.NET aceptan su tratamiento en modo
asíncrono, por lo que no podrán estar contenidos dentro de un UpdatePanel.
UpdateProgress
Provee información del estado actual de la actualización de un control
UpdatePanel.
Provee de una reacción visual en el navegador ante las actualizaciones parciales
que sean lentas, ayudando a que la interfaz del Cliente sea más intuitiva.
Cada UpdateProgress puede atender a un UpdatePanel (en caso de tener varios
en la página) o a todos los de la página.
Se puede personalizar el contenido y presentación de la información mostrada en
el UpdateProgress .
Es un panel que puede contener a otros controles Web del ASP.NET, pero solo
serán visibles y accesibles mientras se espera a que termine la actualización del
UpdatePanel.
Timer
Realiza postback automáticos a determinados intervalos (expresados en
milisegundos).
La combinación de controles Timer y UpdatePanel permite las actualizaciones
parciales de diferentes partes de la página a diferentes intervalos regulares.
Puede ser utilizado dentro de un UpdatePanel para actualizar parcialmente solo
dicho panel.
A nivel de página, si no está vinculado a ningún UpdatePanel, realiza postback de
toda página a intervalos regulares.
8.3.2. Cliente
Global Namespace
Contiene los tipos base que extienden los objetos de ECMAScript (Javascript)
para proporcionar los miembros con los que se está familiarizado en .NET. Cuenta
con la clase Type que extiende el modelo de objetos de ECMAScript (Javascript)
para que las clases soporten herencia, interfaces, espacios de nombres, manejo
de eventos y enumeraciones. Así mismo, incluye una serie de atajos (funciones de
acceso directo) para operaciones de uso común.
Sys
Representa el espacio de nombres raíz de la Microsoft AJAX Library, que incluye
todas las clases fundamentales y clases base de las que heredan el resto de las
clase.
Sys.Net
Contiene los tipos relacionados con la comunicación ASP.NET AJAX entre las
aplicaciones cliente y los servicios Web en el servidor.
Sys.Serialization
Contiene los tipos de datos relacionados con la serialización para las aplicaciones
cliente de ASP.NET AJAX.
Sys.Services
Contiene los tipos que proporcionan acceso desde las secuencias de comandos
de cliente ASP.NET AJAX a los servicios de autenticación, perfiles de
personalización y otros servicios de aplicación del ASP.NET.
Sys.UI
Contiene los tipos relacionados con la interfaz de usuario (UI), tales como los
controles, eventos y propiedades de la Microsoft AJAX Library.
Sys.WebForms
Contiene los tipos relacionados con presentación parcial de páginas del modelo de
formularios del ASP.NET.
8.4. Software Libre relacionado
8.4.1 Introducción
El ASP.NET AJAX Control Toolkit nace como un proyecto conjunto entre la
comunidad de programadores y Microsoft. Está desarrollado en base a
ASP.NET AJAX y contiene una serie de controles Web y extendedores con los
que podremos utilizar las avanzadas características de ASP.NET AJAX sin más
que arrastrar el ratón. Del mismo modo, con su descarga disponemos de
ejemplos de uso, así como del propio código fuente de los controles. Y lo mejor
de todo, es Software Libre, es totalmente gratuito.
Vamos a distinguir entre controles Web y extendedores, donde los primeros
tienen una entidad por sí mismos, mientras que los segundos únicamente
añaden comportamiento a un control Web existente.
Incorporan una serie de pequeñas funcionalidades que cualquier desarrollador
Web, en su historia de programador, ha utilizado o deseado para sus Webs. La
diferencia ahora es que son 100% AJAX y usarlos no exige conocimiento
alguno sobre AJAX, JavaScript o XML.
Estos controles van desde un simple botón con una alerta asociada, hasta un
complejo panel que podemos arrastrar por la pantalla; en ambos casos,
mandando y recogiendo información entre el cliente y el servidor sin ningún tipo
de recarga de página. Su uso hará que la Web sea mucho más atractiva y
cómoda al usuario a la par que potente y efectiva.
Dispones de ejemplos ejecutables para probar y clarificar conceptos en:
http://www.asp.net/AJAX/AjaxControlToolkit/Samples
8.4.2 Controles
Accordion
El Accordion es un control Web que le permite ofrecer múltiples paneles,
mostrando completo solo uno a la vez, reduciendo la visualización del resto a
su cabecera. Es como tener varios CollapsiblePanels de los que sólo uno
puede estar ampliado a la vez. Pulsando en la cabecera de uno de los paneles
se contrae el panel visible y se despliega el panel correspondiente a la
cabecera pulsada (efecto acordeón). El estado del Accordion se guarda, de
modo que el AccordionPane activo se mantendrá visible a través de los
postbacks.
AlwaysVisibleControl
El control AlwaysVisibleControl es un extensor que permite anclar la posición
de otro de modo que parecen flotar sobre el contenido de la página,
manteniéndose en el mismo sitio cuando se mueve (scroll) o cambiar de
tamaño. Se puede utilizar con cualquier control Web ASP.NET y mantiene
siempre la misma distancia concreta de los lados horizontal y vertical.
Animation
El control Animation es un extensor que permite aplicar animaciones sobre el
control asociado, es más que un simple control, es marco de trabajo extensible
(Animation Framework) para añadir fácilmente efectos de animación a las
Introducción a AJAX
AutoComplete
El control AutoComplete (autocompletado) es un extensor que se pueden
asociar a cualquier control TextBox y que mostrara una lista emergente con las
palabras que comienzan con el prefijo escrito en el texto, permitiendo
seleccionar el texto completo. La lista se desplegará automáticamente cuando
se haya escrito el número mínimo de letras indicado, evitando de esta forma
listas muy grandes que son costosas y poco útiles. El contenido de la lista de
texto propuesto es suministrado mediante un servicio Web XML. El
almacenamiento en caché está activado, de modo que si se escribe el mismo
prefijo varias veces se realiza solo una única llamada al servicio Web.
Calendar
El control Calendar (calendario) es un extensor que se pueden asociar a
cualquier control TextBox y que ofrece, del lado del cliente, la posibilidad de
seleccionar la fecha, con formato personalizable, desde un calendario
desplegable. Se puede interactuar con el calendario moviendo hacia adelante o
hacia atrás un mes o un año, haciendo clic en un día para fijar la fecha o el
"hoy" para establecer la fecha actual. Al hacer clic en el título del calendario
que puede cambiar la vista de días en el mes en curso a los meses en el año
en curso. El control permite la localización automática para que el formato de la
fecha se adecue a la referencia cultural del navegador cliente. El control se
puede configurar para que se muestre automáticamente el calendario cuando
se entre en el TextBox o que asocie un botón adyacente que muestre
calendario cuado sea pulsado.
CascadingDropDown
El control CascadingDropDown es un extensor que se pueden asociar a
cualquier control DropDownList de ASP.NET y que permite enlazar varias listas
desplegables permitiendo que el contenido de una lista dependa de la
selección de otra lista y lo hace sin tener que integrar todo el conjunto de datos
en la página o transferirlos al cliente. El cambio del elemento seleccionado
desencadena automáticamente, en cascada, el cambio de los elementos
propuestos en la siguiente lista asociada. Los nuevos elementos propuestos los
obtiene mediante un servicio Web. Toda la lógica sobre el contenido de una
serie de controles DropDownList reside en el servidor del servicio Web que
puede utilizar cualquier método adecuado para almacenar y buscar los datos
pertinentes. El servicio Web puede ser reutilizado desde diferentes páginas.
CollapsiblePanel
El CollapsiblePanel es un extensor muy flexible asociado a controles Panel que
permite añadir fácilmente secciones desplegables a la página Web. Se puede
13
Introducción a AJAX
ConfirmButton
El ConfirmButton es un extensor al control Button (o cualquier tipo derivado de
Button) que intercepta el clic del botón y muestra un mensaje de confirmación
al usuario con los botones "Aceptar" y “Cancelar”. Si se pulsa el botón
"Aceptar" el botón o vínculo funciona normalmente. Si no es así, se anula el clic
el botón, como si no se hubiera pulsado. Opcionalmente, se puede asociar un
script de cliente que se ejecuta si se cancela.
DragPanel
El DragPanel es un extensor asociado a controles Panel que permite a los
usuarios mover (arrastrar) los paneles por página. Una vez inicializados, el
usuario puede pinchar y arrastrar libremente el panel alrededor de la página
Web utilizando el ratón. Opcionalmente, se puede delimitar la zona donde
pinchar para arrastrar asociándola a un control.
DropDown
El DropDown es un extensor que se pueden asociar a casi cualquier control
ASP.NET para proporcionar una lista desplegable al estilo de SharePoint. La
lista mostrada no es más que otro panel o control.
DropShadow
El DropShadow es un extensor asociado a controles Panel que permite definir
dos características adicionales a los paneles: que el panel tenga sombra con su
correspondiente opacidad y si se desea que el panel tenga esquinas
redondeadas. Para las páginas que permiten a los usuarios mover o cambiar el
tamaño sus paneles, el DropShadow tiene un modo que lo resuelve en tiempo
de ejecución.
DynamicPopulate
El DynamicPopulate es un extensor simple que sustituye el contenido de un
control con el resultado de la llamada a un servicio Web o método página. El
método llamado devuelve una cadena de HTML, que sustituye al elemento
asociado.
FilteredTextBox
El control FilteredTextBox es un extensor del control TextBox y que filtra la
entrada de usuario, impidiendo que el teclee caracteres no validos para el
cuadro de texto. Los caracteres aceptados se definen con uno o varios de los
siguientes tipos: Numbers (todos los dígitos), LowercaseLetters (letras
minúsculas), UppercaseLetters (letras mayúsculas) y Custom (se listan los
caracteres considerados válidos y/o inválidos). Hay que tener en cuenta que el
filtrado es una asistencia al usuario y no se debe considerar los datos como
14
Introducción a AJAX
HoverMenu
El DropDown es un extensor que se pueden asociar a cualquier control
ASP.NET para proporcionar un panel emergente para mostrar contenido
adicional. Cuando el usuario mueve el cursor del ratón sobre el control
asociado muestra el panel emergente en la posición indicada (a la izquierda,
derecha, arriba o abajo del control asociado). Opcionalmente, se puede aplicar
un estilo CSS para resaltar el control asociado activo.
ListSearch
El control ListSearchExtender es un extensor que se pueden asociar a
cualquier control de lista (ListBox, DropDownList o herederos) de ASP.NET y
que permite seleccionar un elemento escribiendo la cadena buscada. El
extensor realiza una búsqueda incremental en la lista sobre la base de lo que
se ha tecleado hasta el momento. Un mensaje de aviso aparece cuando se
hace clic en la lista y muestra las teclas pulsadas hasta el momento. El
mensaje puede ser personalizado indicando su texto inicial, posición y estilo
CSS.
MaskedEdit
El control MaskedEdit es un extensor del control TextBox y que restringe el tipo
de texto que se puede introducir en el cuadro de texto. MaskedEdit aplica una
"máscara" a la entrada que sólo permite introducir ciertos tipos de caracteres /
texto. La "máscara" es una cadena que contiene una serie de símbolos que
indican el carácter o delimitador aceptado en cada posición de la entrada. Se
puede configurar para que realice la validación, para lo cual asocia un control
MaskedEditValidator al TextBox y lo configura. Los formatos de datos
soportados por la validación son: Número, Fecha, Hora y DateTime (fecha con
hora). Utiliza los formatos locales indicados por la referencia cultural del
navegador cliente salvo que se diga lo contrario.
ModalPopup
El ModalPopup es un extensor que permite mostrar, de forma "modal" dentro
de la página actual, una página de contenido al usuario que le impide
interactuar con el resto de la página hasta que se cierre. El contenido modal
puede ser cualquier jerarquía de los controles y se muestra encima la página
actual que queda como fondo, fondo al que se puede aplicar un estilo
personalizado para indicar que está desactivado. Cuando aparece, sólo se
puede interactuar con el contenido modal (no pasa nada al hacer clic en el
resto de la página) hasta que se pulse sobre un control Aceptar o Cancelar, en
cuyo caso desaparecerá el contenido modal y se podrá interactuar con el resto
de la página. Opcionalmente, se pueden asociar un par de script
personalizados que se ejecuta cuando se cierra el contenido modal, uno para
Aceptar y otro para Cancelar, que procesen la información obtenida. Por
defecto el contenido modal aparece centrado en la página, pero se puede
especificar su posición.
15
Introducción a AJAX
MutuallyExclusiveCheckBox
El control MutuallyExclusiveCheckBox es un extensor del control CheckBox y
que permite asociar una serie de casillas de verificación a una "clave", de tal
forma que sólo una de las casillas asociadas pueda estar marcada a la vez.
Este extensor es útil cuando están disponibles una serie de posibles opciones,
pero algunas son excluyentes. El comportamiento es similar a los RadioButton,
pero con la diferencia que es posible no seleccionar ninguna o desmarcar la
opción, cosa que no es posible con los RadioButton.
NoBot
El NoBot es un potentísimo control que ayuda a luchar contra las aplicaciones
robot que rellenan automáticamente los formularios. Si bien no es tan fiable
como los Captcha (solicitan al usuario que introduzca un conjunto de
caracteres que se muestran en una imagen distorsionada) tiene la ventaja ser
completamente invisible al usuario evitándole molestias. NoBot emplea
diferentes técnicas anti-bot. Para verificar que el acceso se produce desde un
navegador, se le solicita que envíe en el postback el resultado de un cálculo
que requiera JavaScript y DOM enviado en la página. También es posible
establecer un tiempo mínimo para rellenar el formulario, que aun siendo de
pocos segundos (imposible para un ser humano) reduce drásticamente la
eficacia del robot, preparado para realizar cientos de envíos en dicho periodo.
Por último, se puede configurar un número máximo de solicitudes aceptadas
desde la misma dirección IP en un determinado periodo de tiempo.
NumericUpDown
El control NumericUpDown es un extensor del control TextBox y que agrega
botones de "arriba" y "abajo" para incrementar o decrementar el valor del
TextBox. El incremento y decremento puede ser simples valore aritméticos (+1
/ -1), puede recorrer una lista de valores (como los meses del año) o puede
requerir la llamada a un servicio Web para determinar el siguiente valor. Se
puede personalizar la presentación del control suministrando imágenes que
sustituyan a los correspondientes botones.
PagingBulletedList
El PagingBulletedList es un extensor del control BulletedList que se encarga de
ordenar, crear un índice y paginar en cliente la lista. Es muy flexible y permite
especificar el número de caracteres utilizados en los índices de las cabeceras
de página o el número máximo de elementos que se mostrarán por página de
índice. En caso de que no se le indique que ordene la lista, puede generar
valores repetidos para los índices de las cabeceras de página aunque aún
funciona adecuadamente. Todo se realiza en cliente, por lo que el usuario
puede cambiar de índice sin necesidad de recargar la lista.
PasswordStrength
El control PasswordStrength es un extensor del control TextBox cuando se
utiliza para introducir contraseñas e indica visualmente al usuario la fortaleza
de la contraseña según la va introduciendo. La fortaleza de la contraseña viene
determinada por la longitud y si se combinan más o menos caracteres de los
16
Introducción a AJAX
PopupControl
El PopupControl es un extensor que se puede aplicar a cualquier control Web y
que consiste en mostrar una pequeña ventana emergente con contenido
adicional. Esa ventana emergente puede ser también cualquier control Web
(típicamente un panel) y puede tener cualquier contenido, incluidos los
controles de servidor ASP.NET, elementos HTML, etc. Si la ventana emergente
es interactiva y contiene un UpdatePanel será capaz de realizar complejos
procesos basados en servidor (incluyendo postbacks) sin afectar al resto de la
página. Una vez realizada la labor de la ventana emergente, una simple
llamada de servidor la descarga y dispara cualquier secuencia de comandos en
el cliente para administrar y actualizar la página dinámicamente.
Rating
El control Rating (Calificación) ofrece un mecanismo intuitivo de calificación que
permite a los usuarios seleccionar el número de estrellas que representa su
calificación. Se puede especificar la calificación inicial, la calificación máxima
permitida, la alineación y orientación de las estrellas y los estilos
personalizados de los diferentes estados que puede tener una estrella.
Calificación Soporta, así mismo, un evento ClientCallBack que permite ejecutar
código personalizado después de que el usuario ha evaluado algo.
ReorderList
El control ReorderList muestra una lista con los datos vinculados a una fuente
de datos que el usuario puede reordenar simplemente arrastrando la barra de
control del elemento a su nueva ubicación. El control muestra gráficamente
como se arrastra y se reubica el elemento. La fuente de datos se actualiza
después de que el elemento alcance su nueva ubicación.
ResizableControl
El ResizableControl es un extensor de cualquier control Web y que permite al
usuario cambiar el tamaño del control pulsando en un control de tamaño en la
esquina inferior derecha del control como si fuera una ventana. El contenido del
elemento puede usar estilos CSS para cambiar automáticamente su tamaño
para adaptarse a las nuevas dimensiones. La apariencia del control de tamaño
en la esquina inferior derecha puede personalizarse. Opcionalmente se puede
limitar el cambio de tamaño indicando el máximo y mínimo del ancho y el alto.
Las dimensiones del elemento se conservan a través de postbacks al servidor y
las propiedades de tamaño son accesibles tanto en el cliente como en el
servidor.
17
Introducción a AJAX
RoundedCorners
El RoundedCorners es un extensor que se puede asociar a cualquier control
Web y que rodea al control con un marco de esquinas redondeadas. Se puede
configurar que esquinas se desea redondear así como su radio de curvatura.
Slider
El control Slider es un extensor del control TextBox visualizándose
gráficamente como una barra deslizante que permite que el usuario elija un
valor numérico de un rango finito. La orientación de la barra puede ser
horizontal o vertical y también puede permitir sólo un determinado número de
valores dentro de su área de distribución.
SlideShow
El control SlideShow (presentación de diapositivas) es un extensor del control
Image que permite cargar sucesivamente imágenes de forma dinámica. Puede
generar automáticamente los botones para pasar a la imagen anterior, posterior
y reproducir/parar. Se puede configurar el pase de diapositivas para que se
reproduzca automáticamente rotando el bucle de imágenes y configurar
también el intervalo de transición de diapositivas. Las imágenes pueden ser
suministradas tanto por un método de página como por un servicio Web.
Tabs
El control TabContainer que crea un conjunto de pestañas que se pueden
utilizar para organizar contenido de la página. Un TabContainer es un
contenedor de una serie de controles TabPanel. Cada TabPanel define el texto
de su solapa, o una plantilla, así como una plantilla que define su contenido. El
estado se mantiene para que se siga viendo la misma pestaña aunque se
realice un postback.
TextBoxWatermark
El control TextBoxWatermark es un extensor del control TextBox que muestra
un texto como marca al agua mientras está vacío. Una vez que el usuario ha
tecleado algo en el TextBox el texto de la marca al agua desaparece. Este
mecanismo permite al TextBox ofrecer más información sobre sí mismo al
usuario sin saturar el resto de la página.
ToggleButton
El control ToggleButton es un extensor del control CheckBox y permite el uso
de imágenes personalizadas para mostrar el estado del CheckBox. El
comportamiento de la CheckBox no se ve afectado.
UpdatePanelAnimation
El UpdatePanelAnimationExtender es un extensor del control UpdatePanel que
permite utilizar el potente Framework de animación con las páginas existentes
de una manera fácil y de forma declarativa. Se utiliza para reproducir
animaciones mientras que un UpdatePanel se esta actualizando y después de
que haya acabado de actualizar. El Animation Framework es una arquitectura
de animaciones creadas para ASP.NET AJAX que proporciona una gran
18
Introducción a AJAX
ValidatorCallout
El ValidatorCallout es un extensor que mejora la funcionalidad de los actuales
validadores de ASP.NET, haciendo que el mensaje de validación aparezca
como un globo emergente asociado al control cuyo valor no es
19