04.Desarrollo Web ASP.Net Parte 3

Escuela de Informática y Telecomunicaciones
“Controles Avanzados ASP.Net”
LDP3501-2011 / DUOC-AV
En esta guía:
Controles de Navegación (repaso) .................................................................................. 1
Control SiteMapPath ................................................................................................... 1
Control Menu .............................................................................................................. 2
Presentación estática y presentación dinámica .........................................................................2
Definir el contenido del menú ....................................................................................................3
Páginas Principales – MasterPage ................................................................................... 4
Página Principal ........................................................................................................... 4
Marcadores de posición de contenido reemplazables ...............................................................5
Página de Contenido ................................................................................................... 5
Ventajas de las Páginas Principales.............................................................................. 6
Comportamiento en tiempo de ejecución.................................................................... 7
Control FileUpload .......................................................................................................... 8
Control Image ............................................................................................................... 10
Escuela de Informática y Telecomunicaciones
Controles de Navegación (repaso)
ASP.Net 2.0 provee de un set de controles de navegación, para facilitar las tareas de navegabilidad del sitio
web en construcción. Estos controles proveen una interfaz más intuitiva para el manejo del
redireccionamiento entre las página, entregando además información respecto del contexto de navegación.
Los controles web que se disponen para estas tareas son:



SiteMapPath: Muestra un conjunto de hipervínculos de texto o imagen que permite a los usuarios
explorar un sitio Web más fácilmente, utilizando una cantidad mínima de espacio de la página..
Menu: Muestra un menú en una página de formularios Web Forms..
TreeView: Muestra datos jerárquicos, como una tabla de contenido, en una estructura de árbol..
A continuación se describe cada una de estos controles. Se proveerá de una actividad de trabajo con cada
uno de ellos.
Control SiteMapPath
El control SiteMapPath muestra una ruta de desplazamiento que indica al usuario la ubicación de la página
actual y muestra los vínculos como una ruta de retorno a la página principal. El control proporciona muchas
opciones para personalizar el aspecto de los vínculos.
El control SiteMapPath obtiene los datos de desplazamiento de un mapa del sitio. Estos datos incluyen
información sobre las páginas del sitio Web, como la dirección URL, el título, la descripción y la ubicación en
la jerarquía de exploración. Si los datos de desplazamiento se almacenan en un solo lugar, será más fácil
agregar y quitar elementos en los menús de desplazamiento del sitio Web.
En el ejemplo de código siguiente se muestran datos del mapa del sitio que está incluido en un archivo
Web.sitemap.
<siteMap>
<siteMapNode title="Inicio" description="Página Principal" url="~/Inicio.aspx" >
<siteMapNode title="Servicios" description="Servicios ofrecidos"
url="~/Servicios.aspx">
<siteMapNode title="Entrenamiento" description="Clases que se dictan"
url="~/Entrenamiento.aspx" />
<siteMapNode title="Consultoría" description="Servicio de Consultoría"
url="~/Consultoria.aspx" />
</siteMapNode>
</siteMapNode>
</siteMap>
Sólo las páginas que aparecen en el mapa del sitio pueden mostrar los datos de desplazamiento en el control
SiteMapPath. Si sitúa un control SiteMapPath en una página que no aparece en el mapa del sitio, el control
no mostrará nada al cliente.
Puede agregar un control SiteMapPath a la página de ejemplo “Entrenamiento.aspx” mediante el código
siguiente.
Página 1
Escuela de Informática y Telecomunicaciones
<asp:SiteMapPath ID="SiteMapPath1" Runat="server"></asp:SiteMapPath>
Cuando un cliente ve la página Entrenamiento.aspx, el control SiteMapPath mostrará algo como lo siguiente,
donde Inicio y Servicios se representan como hipervínculos:
Inicio > Servicios > Entrenamiento
Puede utilizar el control SiteMapPath para crear la exploración del sitio sin código y sin enlaces de datos
explícitos. El control puede leer y representar la información del mapa del sitio automáticamente. El control
SiteMapPath permite a los usuarios desplazarse hacia atrás desde la página actual a las páginas superiores
en la jerarquía del sitio. Sin embargo, el control SiteMapPath no le permite desplazarse hacia delante desde
la página actual a otra página más profunda en la jerarquía del sitio. Por ejemplo, puede utilizar el control
SiteMapPath en aplicaciones de grupos de noticias o mensajería para permitir que los usuarios vean la ruta
de acceso al artículo que están explorando.
SiteMapPath se compone de nodos. Cada elemento de la ruta se denomina nodo y está representado por un
objeto SiteMapNodeItem. El nodo que delimita la ruta y representa la base del árbol jerárquico se denomina
nodo raíz. El nodo que representa la página actualmente mostrada es el nodo actual. Cualquier otro nodo
entre el nodo actual y el nodo raíz es un nodo primario. La tabla siguiente describe estos tres tipos de nodo.
Tipo nodo
raíz
Descripción
Nodo que delimita un conjunto jerárquico de nodos.
primario
Nodo que tiene uno o varios nodos secundarios pero no es el nodo actual.
actual
Nodo que representa la página que se muestra actualmente.
Control Menu
El control Menu de ASP.NET le permite agregar funcionalidad a las páginas Web que se utiliza a menudo
para permitir la exploración. El control Menu admite un menú principal y submenús, y le permite definir
menús dinámicos. El control Menu de ASP.NET permite desarrollar tanto estática como dinámicamente los
menús presentados en las páginas Web ASP.NET. Puede configurar el contenido del control Menu
directamente en el control o puede especificar el contenido enlazando el control a un origen de datos.
Presentación estática y presentación dinámica
El control Menu tiene dos modos de presentación: estática y dinámica. Presentación estática significa que el
control Menu permanece completamente desplegado todo el tiempo. Se ve la estructura completa y el
usuario puede hacer clic en cualquier parte. En un menú presentado dinámicamente, sólo son estáticas las
partes que especifique, mientras sus elementos de menú secundarios se presentan cuando el usuario sitúa
el puntero del mouse (ratón) sobre el nodo primario.
Página 2
Escuela de Informática y Telecomunicaciones
Definir el contenido del menú
El contenido del control Menu puede definirse de dos maneras: agregando objetos MenuItem individuales
(mediante declaración o mediante programación) y enlazando los datos del control a un origen de datos
XML.
Agregar manualmente los datos del menú
Para agregar elementos de menú individuales al control debe especificarlos en la propiedad Items. La
propiedad Items es una colección de objetos MenuItem. En el ejemplo siguiente se muestra el formato
declarativo de un control Menu con tres elementos, cada uno de ellos con dos elementos secundarios:
<asp:Menu ID="Menu1" runat="server" StaticDisplayLevels="3">
<Items>
<asp:MenuItem Text="Archivo" Value="Archivo">
<asp:MenuItem Text="Nuevo" Value="Nuevo"></asp:MenuItem>
<asp:MenuItem Text="Abrir" Value="Abrir"></asp:MenuItem>
</asp:MenuItem>
<asp:MenuItem Text="Editar" Value="Editar">
<asp:MenuItem Text="Copiar" Value="Copiar"></asp:MenuItem>
<asp:MenuItem Text="Pegar" Value="Pegar"></asp:MenuItem>
</asp:MenuItem>
</Items>
</asp:Menu>
Enlace de datos a un origen de datos XML
El enlace a un archivo XML permite controlar el contenido del menú mediante modificaciones al archivo en
lugar de utilizar el diseñador. Esto permite actualizar el aspecto de exploración del sitio sin necesidad de
volver a visitar el control Menu o editar el código. Si tiene un sitio cuyo contenido suele cambiar, puede
utilizar un archivo XML para organizarlo y enlazar el archivo al control Menu para garantizar que los usuarios
del sitio Web puedan tener acceso al contenido.
Apariencia y comportamiento
El comportamiento del control Menu se puede ajustar a través de sus propiedades. Además, puede
controlar el comportamiento de la presentación dinámica, incluida la cantidad de tiempo que un nodo del
menú permanece visible una vez que se muestra. Por ejemplo, para cambiar la orientación del control Menu
de horizontal a vertical, puede establecer la propiedad Orientation del modo siguiente:
Menu.Orientation = Orientation.Vertical;
Al establecer la propiedad en Orientation.Horizontal la orientación vuelve a cambiar a horizontal. Puede
establecer propiedades individuales del control Menu para especificar el tamaño, el color, la fuente y otras
características de su apariencia. Además, puede aplicar máscaras y temas al control Menu.
Página 3
Escuela de Informática y Telecomunicaciones
Páginas Principales – MasterPage
En el punto y actividad anterior, hemos incorporado los controles de navegación basados en un SiteMap,
con el cual podemos tener información de nuestra ubicación en las páginas (SiteMapPath) o proveer de un
menú de opciones, con el mapa de nuestra aplicación web (Menú). Para poder tener esta información
presente en todas las páginas, nos vimos en la necesidad de copiar estos controles y su configuración en
todas las páginas donde era requerido, esto conlleva un alto costo de mantenimiento, si se necesita cambiar
algo en los controles (Nota: el SiteMap es común para todos).
Una forma de abordar este tipo de problemas (elementos comunes entre páginas), es con el elemento
Master Page que nos provee ASP.Net, con el cual tendremos un área (o varias) que serán comunes para
todas las páginas que se creen haciendo referencia a esta Master Page.
Una MasterPage de ASP.NET permite crear un diseño coherente para las páginas del sitio Web. Se puede
definir el aspecto, el diseño y el comportamiento estándar que desea que tengan todas las páginas (o un
grupo de páginas) de la aplicación en una sola página como MasterPage. A continuación, puede crear
páginas de contenido individuales que incluyan el contenido que desea mostrar. Cuando los usuarios
solicitan las páginas de contenido, éstas se combinan con la página principal para dar como resultado una
página con el diseño de la página principal y el contenido de la página de contenido, como se muestra en el
siguiente diagrama:
MasterPage.master
Inicio.aspx
http://.../Inicio.aspx
<%@ Page MasterPageFile="Site.master" %>
<%@ Master %>
<asp:Content
ContentPlaceHolderID=
"Main" RunAt="server" />
<asp:ContentPlaceHolder
ID="Main"
RunAt="server" />
</asp:Content>
El resultado final se componen en realidad de dos partes, la propia MasterPage ó página principal y una o
varias páginas de contenido.
Página Principal
Una página principal es un archivo de ASP.NET con la extensión .master (por ejemplo, MiSitio.master) que
tiene un diseño predefinido que puede incluir texto estático, elementos HTML y controles de servidor. La
página principal se identifica mediante una directiva @ Master especial que reemplaza la directiva @ Page
utilizada en las páginas .aspx ordinarias. El aspecto de la directiva es el siguiente:
Página 4
Escuela de Informática y Telecomunicaciones
<%@ Master Language="C#" %>
La directiva @ Master puede contener prácticamente las mismas directivas que una directiva @ Control. Por
ejemplo, la directiva de la página principal siguiente incluye el nombre de un archivo de código subyacente y
asigna un nombre de clase a la página principal:
<%@ Master Language="C#" CodeFile="MasterPage.master.cs" Inherits="MasterPage" %>
Además de la directiva @ Master, la página principal también incluye todos los elementos HTML de nivel
superior de una página, como html, head y form. Por ejemplo, en una página principal se podría utilizar una
tabla HTML para el diseño, un elemento img para el logotipo de la compañía, texto estático para el aviso de
copyright y controles de servidor para crear la navegación estándar en el sitio. Puede utilizar cualquier
elemento HTML y ASP.NET en la página principal.
Marcadores de posición de contenido reemplazables
Además del texto estático y los controles que aparecerán en todas las páginas, la página principal también
incluye uno o varios controles ContentPlaceHolder. Estos controles PlaceHolder definen las regiones que
incluirán contenido reemplazable. A su vez, el contenido reemplazable se define en las páginas de
contenido.
Página de Contenido
Para definir el contenido de los controles PlaceHolder de la página principal, creamos páginas de contenido
individuales, que son páginas ASP.NET (archivos .aspx y, opcionalmente, archivos de código subyacente) que
están enlazadas a una página principal concreta. El enlace se establece en la directiva @ Page de la página
de contenido al incluir un atributo MasterPageFile que apunta a la página principal que se va a utilizar. Por
ejemplo, una página de contenido podría tener la siguiente directiva @ Page, que la enlaza con la página
Master1.master.
<%@ Page
Inicio"%>
Language="C#"
MasterPageFile="~/MasterPage.master"
Title="Pagina
de
En la página de contenido, cree el contenido agregando los controles Content y asignándolos a los controles
ContentPlaceHolder de la página principal. Por ejemplo, la página principal podría tener marcadores de
posición de contenido denominados Main y Footer. En la página de contenido, puede crear dos controles
Content, uno asignado al control ContentPlaceHolderMain y el otro asignado al control
ContentPlaceHolderFooter, como se muestra en el código siguiente.
Página 5
Escuela de Informática y Telecomunicaciones
<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
</asp:Content>
<asp:Content
ID="Main"
ContentPlaceHolderID="ContentPlaceHolderMain"
Runat="Server">
<p>
Area de Cabecera
</p>
</asp:Content>
<asp:Content
ID="Footer"
ContentPlaceHolderID="ContentPlaceHolderFooter"
Runat="Server">
<p>
Area de Pie de Página
</p>
</asp:Content>
Después de crear los controles Content, agrégueles texto y controles. En una página de contenido, todo lo
que no esté dentro de los controles Content (excepto los bloques de script del código del servidor) producirá
un error. En una página de contenido puede realizar las mismas tareas que en una página de ASP.NET. Por
ejemplo, puede generar el contenido de un control Content utilizando controles de servidor y consultas de
base de datos u otros mecanismos dinámicos.
La directiva @ Page enlaza la página de contenido a una página principal concreta y define un título para la
página que se combinará en la página principal. Tenga en cuenta que la página de contenido no incluye otro
marcado fuera de los controles Content. (La página principal debe contener un elemento head con el
atributo runat="server" para que se pueda combinar la configuración del título en tiempo de ejecución.)
Puede crear varias páginas principales para definir diseños distintos en secciones diferentes del sitio, y un
conjunto diferente de páginas de contenido para cada página principal.
Ventajas de las Páginas Principales
Las páginas principales proporcionan una funcionalidad que tradicionalmente los programadores creaban
copiando el código, el texto y los elementos de control existentes repetidamente, mediante conjuntos de
marcos, archivos de inclusión de elementos comunes, controles de usuario de ASP.NET, etc. Entre las
ventajas de las páginas principales se incluyen las siguientes:

Permiten centralizar las funciones comunes de las páginas, para que las actualizaciones puedan
llevarse a cabo en un solo lugar.

Facilitan la creación de un conjunto de controles y código, y aplican los resultados en un conjunto
de páginas. Por ejemplo, puede utilizar los controles en la página principal para crear un menú que
se aplique a todas las páginas.

Proporcionan un control más preciso sobre el diseño de la página final, al permitir controlar el
modo en que se representan los controles PlaceHolder.
Página 6
Escuela de Informática y Telecomunicaciones

Proporcionan un modelo de objetos que permite personalizar la página principal a partir de páginas
de contenido individuales (Page.Master).
Comportamiento en tiempo de ejecución
En tiempo de ejecución, las páginas principales se controlan en la secuencia siguiente:
1.
Los usuarios solicitan una página escribiendo la dirección URL de la página de contenido.
2.
Cuando se obtiene la página, se lee la directiva @ Page. Si la directiva hace referencia a una página
principal, también se lee la página principal. Si las páginas se solicitan por primera vez, se compilan
las dos páginas.
3.
La página principal con el contenido actualizado se combina en el árbol de control de la página de
contenido.
4.
El contenido de los controles Content individuales se combina en el control ContentPlaceHolder
correspondiente de la página principal.
5.
La página combinada resultante se representa en el explorador.
Desde la perspectiva del usuario, la combinación de las páginas principales y de contenido da como
resultado una única página. La dirección URL de esta página es la de la página de contenido.
Desde la perspectiva del programador, las dos páginas actúan como contenedores diferentes para sus
respectivos controles. La página de contenido actúa como un contenedor de la página principal. Sin
embargo, se puede hacer referencia a los miembros públicos de una página principal a partir del código de la
página de contenido, tal y como se describe en la sección siguiente.
Página 7
Escuela de Informática y Telecomunicaciones
Control FileUpload
Este es un control integral, que nos presenta un área de texto donde se indica la ruta y nombre del archivo
que se cargará, y un botón de exploración para realizar la búsqueda del recurso en el sistema de archivos.
FileUpload muestra un control de cuadro de texto y un botón de búsqueda que permiten a los usuarios
seleccionar un archivo en el cliente y cargarlo en el servidor Web. El usuario especifica el archivo que desea
cargar escribiendo su ruta de acceso completa en el equipo local (por ejemplo, C:\MyFiles\TestFile.txt) en el
cuadro de texto del control. También puede seleccionar el archivo haciendo clic en el botón Examinar y
buscándolo después en el cuadro de diálogo Elegir archivo.
El control FileUpload no guarda automáticamente un archivo en el servidor después de que el usuario lo
seleccione para cargarlo. Se debe proporcionar explícitamente un control o un mecanismo que permita al
usuario enviar el archivo especificado. Por ejemplo, un botón donde el usuario pueda hacer clic para cargar
el archivo. El código que se escribe para guardar el archivo especificado debe llamar al método SaveAs, que
guarda el contenido de un archivo en una ruta especificada del servidor. Normalmente, se llama al método
SaveAs en un método de control de eventos para un evento que inicia una devolución de datos al servidor.
Por ejemplo, si se un botón que permite enviar un archivo, podría incluir un código para guardar el archivo
en el método de control del evento hacer clic.
Antes de llamar al método SaveAs para guardar el archivo en el servidor, se puede comprobar por medio de
la propiedad HasFile si el control FileUpload contiene un archivo. Si la propiedad HasFile devuelve true, se
puede llamar al método SaveAs de manera segura. Si devuelve false, mostrar un mensaje al usuario que
indica que el control no contiene un archivo.
Cuando se llama al método SaveAs, se debe especificar la ruta de acceso completa del directorio en el que
deba guardarse el archivo cargado. Si no se especifica explícitamente una ruta de acceso en el código de su
aplicación, se producirá una excepción cuando un usuario intente cargar un archivo. Este comportamiento
ayuda a mantener seguros los archivos del servidor, al impedir que los usuarios puedan escribir en
ubicaciones arbitrarias de la estructura de directorios de la aplicación y, a la vez, evitar el acceso a los
directorios raíz protegidos.
El método SaveAs escribe el archivo cargado en el directorio especificado. Por consiguiente, la aplicación
ASP.NET debe tener derechos de escritura en el directorio del servidor. La aplicación dispone de dos medios
para obtener acceso de escritura. Se puede otorgar explícitamente acceso de escritura a la cuenta bajo la
cual se ejecuta la aplicación, en el directorio donde desee guardar los archivos cargados. O bien, puede
aumentar el nivel de confianza que se concede a la aplicación ASP.NET. Para obtener acceso de escritura al
directorio de ejecución de la aplicación, ésta debe otorgar al objeto AspNetHostingPermission un nivel de
confianza establecido en el valor System.Web.AspNetHostingPermissionLevel.Medium. Un aumento del
nivel de confianza aumenta el acceso de la aplicación a los recursos del servidor. Se debe tener en cuenta
que esta estrategia no es segura, puesto que un usuario malintencionado que se haga con el control de la
aplicación también podrá trabajar con este nivel de confianza superior. El procedimiento recomendado es
ejecutar una aplicación ASP.NET en el contexto de un usuario con los privilegios mínimos necesarios para
que se ejecute la aplicación.
Página 8
Escuela de Informática y Telecomunicaciones
Se utiliza la propiedad FileName para obtener el nombre de un archivo de un cliente que desee cargar
utilizando el control FileUpload. El nombre de archivo que devuelve esta propiedad no incluye la ruta de
acceso al archivo en el cliente.
La propiedad FileContent obtiene un objeto Stream que señala a un archivo para cargarlo. Utilice esta
propiedad para obtener acceso al contenido del archivo en forma de bytes. Por ejemplo, se puede usar el
objeto Stream devuelto por la propiedad FileContent para leer el contenido del archivo en forma de bytes y
almacenarlo en una matriz de bytes. O bien, puede utilizar la propiedad FileBytes para recuperar todos los
bytes del archivo.
La propiedad PostedFile obtiene el objeto HttpPostedFile subyacente para el archivo que se va a cargar. Se
puede utilizar esta propiedad para tener acceso a otras propiedades del archivo. La propiedad
ContentLength obtiene la longitud del archivo. La propiedad ContentType obtiene el tipo de contenido
MIME del archivo. También puede utilizar la propiedad PostedFile para obtener acceso a la propiedad
FileName, la propiedad InputStream y el método SaveAs.
El siguiente código ejemplifica el uso del control, los atributos y métodos más comunes para la tarea de
subir un archivo al servidor de la aplicación:
protected void btnCargar_Click(object sender, EventArgs e)
{
// Ruta donde se guardará el archivo
String ruta = @"c:\temp\archivos\";
// Verificar que hay archivo seleccionado para proceder
if (FileUpload1.HasFile)
{
// Obtener el nombre del archivo.
String nombre = FileUpload1.FileName;
// Concatenar el nombre del archive a la ruta.
ruta += nombre;
// Llamar al método SaveAs para cargar el archivo en el servidor
FileUpload1.SaveAs(ruta);
// Dar aviso al usuario de la ejecución exitosa
lblEstado.Text = string.Format("El archivo {0} fue cargado. " , nombre);
}
else
{
// Informa que no hay archive para cargar.
lblEstado.Text = "No ha especificado un archive para subir.";
}
}
Como se indicó el método SaveAs, debe indicar la ruta completa donde se guardará el archivo incluyendo el
nombre del mismo, no es obligatorio mantener el mismo nombre del archivo de subida, se puede tomar
control sobre esto para hacer los ajustes que se requieran para estos fines.
Página 9
Escuela de Informática y Telecomunicaciones
Se debe tener en consideración que la seguridad de acceso a los recursos del servidor podría impedir el subir
el archivo fuera del directorio de la aplicación. Por tal motivo es recomendable que los archivos que se
carguen, sean depositados en alguno de los directorios de la aplicación destinado para estos efectos. Aquí se
debe considerar que el directorio padre del servidor de aplicaciones donde se encuentra alojada nuestra
aplicación Web, no siempre será una dirección fija, por tal motivo debemos utilizar algún mecanismo que
nos permita con certeza poder entregar una ruta física real en base a nuestra posición relativa respecto del
servidor. Para estos efectos haremos uso del método MapPath de la clase de utilidades de servidor
HttpServerUtility, el cual podemos acceder por medio de la propiedad Server de nuestra página.
En el siguiente ejemplo de código se devuelve la ruta de acceso física del directorio virtual que contiene el
sitio Web especificado:
String rutaSitio;
rutaSitio = Server.MapPath("/WebSite1");
El siguiente ejemplo muestra su uso, para obtener la dirección física en base a la dirección relativa de un
directorio de la aplicación y utilizarlo en la carga del archivo:
/* Cargamos el archivo al servidor dentro del directorio Archivos */
FileUpload1.SaveAs(string.Format("{0}{1}",MapPath("~/Archivos/"),ruta));
Control Image
El control Image permite mostrar imágenes en páginas Web ASP.NET y administrar estas imágenes en su
propio código. Se puede especificar mediante programación el archivo de gráficos para un control Image en
tiempo de diseño o en tiempo de ejecución. También se puede enlazar la propiedad ImageUrl del control a
un origen de datos para mostrar gráficos procedentes de la información de una base de datos.
A diferencia de la mayoría de los demás controles de servidor Web, el control Image no admite ningún
evento. Por ejemplo, el control Image no responde a los clics del mouse (ratón). En su lugar, puede crear
una imagen interactiva utilizando los controles ImageMap o ImageButton de servidor Web.
Además de mostrar gráficos, el control Image permite especificar distintos tipos de texto para la imagen,
como los siguientes:

ToolTip: Éste es el texto que aparece en una información sobre herramientas en algunos
exploradores.
Página 10
Escuela de Informática y Telecomunicaciones

AlternateText: Éste es el texto que aparece si no se puede encontrar el archivo de gráficos. Si no se
especifica ninguna propiedad ToolTip, algunos exploradores utilizarán el valor AlternateText como
una información sobre herramientas.

GenerateEmptyAlternateText: Si esta propiedad se establece en true, el atributo alt del elemento
de imagen representado se establecerá en una cadena vacía.
Para agregar un control Image de servidor Web a una página de formularios Web Forms:
1.
Desde la ficha Estándar del cuadro de herramientas, arrastre un control Image a la página.
2.
En la categoría Apariencia de la ventana Propiedades, establezca la propiedad ImageUrl del control
en la dirección URL del archivo .gif, .jpg u otro archivo de gráficos Web. Este archivo debe estar
cargado en la aplicación o en otra URL a la que se tenga acceso.
3.
También se pueden establecer las siguientes propiedades del control Image.
Propiedad
Descripción
Height y Width
ImageAlign
Reserva espacio para el gráfico en la página. Cuando se represente
la página, se ajustará el tamaño de la imagen para adaptarse al
tamaño reservado
Alinea la imagen con respecto al texto circundante, utilizando
valores como Top, Bottom, Left, Middle y Right. En el código, la
alineación de la imagen se establece mediante la enumeración
ImageAlign.
Tooltip y AlternateText
Información para la imagen, como se indicó anteriormente
Página 11