Está en la página 1de 4

?

  

Podemos crear una página ASP sin usar VS2005, utilizando un editor de texto.
Si no tenemos un servidor Web IIS NO podemos ver la página ejecutándose fuera de
VS2005. Podemos obligar a VS2005 a que use el modo IIS para acceder a las páginas
Web, seleccionando http como ubicación. Así, VS2005 crea el directorio virtual
necesario automáticamente.

Botón derecho en MIPC ± Administrar ± Servicios y Aplicaciones ± Servicios IIS ±


Sitios Web ± Sitio Web predeterminado ± Nuevo ± Directorio virtual ± seleccionamos
la carpeta.
Ya podemos abrir el navegador con localhost/sitios/nuestra carpeta/fichero.aspx

Creamos una carpeta en C llamada disco.


Creamos un archivo aspx con el nombre Index que guardamos en la carpeta disco.
<script runat="server">
void Label_Init(object sender, EventArgs e) {
Label.Font.Bold = true;
Label.Text = DateTime.Now.ToString();
}
</script>
</head>

En el body
<asp:Label ID="Label" runat="server" OnInit="Label_Init"
Text="Label"></asp:Label>

Podemos abrir la página desde http://localhost/disco/Index.aspx.


Podríamos haber utilizado el archivo de código oculto como hemos hecho hasta ahora.

?   
Sirve para mostrar texto con la propiedad Text.

?   
Permite mostrar texto de entrada del usuario y texto de solo lectura.
Se puede configurar para que tenga una sola línea o varias, también para que acepte
contraseñas.

Crea una nueva página aspx en donde tengamos un control TextBox


Utilizando la propiedad Columns modifica el ancho del cuadro de texto en
caracteres.
Solo podremos poner escribir un máximo de 6 caracteres (propiedad MaxLength).
No podremos cambiar su contenido (propiedad ReadOnly)
En otro TextBox vamos a crear multilínea y el texto no se ajustará (propiedad
Wrap).
En otra caja de texto podremos contraseña de máximo 5 caracteres.(TextMode)

VS2005 no diferencia entre mayúsculas y minúsculas. ¿Cómo podríamos solucionar este


problema?

Crea otro TextBox que cuando escribamos algo, le das al Intro y en otro TextBox
sale el mismo texto escrito en modo sólo lectura y con un color de fondo diferente.

La propiedad AutoPostBack determina si se envían datos automáticos al servidor


cuando cambiemos el contenido del control. Si es false, NO se envían.

Además de los eventos heredados de la clase WebControl, como Init, Load y


Prerender, el control TextBox desencadena el evento TextChanged cuando cambia su
contenido y pierde el foco. Este evento no devuelve datos, salvo que AutoPostBack
sea true.
Ver ejemplo ControlTextBox.

?  


Este control permite crear campos ocultos.
También podemos usar un control HTML con input type=´hidden´ y convertirlo en
control de servidor añadiendo id y runat.

Por defecto, Asp.net usa un campo oculto para implementar el estado de la vista.
Si vemos el código fuente de una página lo podemos comprobar.

El control HiddenField tiene como ventajas:

c  
  
Acceso sencillo a propiedades Value e ID y al evento ValueChanged que se
desencadena al enviar datos y cuando la propiedad Value es diferente de los datos
enviados antes.

Es un control que no envía datos y se almacena en memoria caché hasta que otro
control envíe el formulario y es entonces cuando se enviará al servidor.

Ver ejemplo Controlhidden

?   
Son controles que envían el formulario al servidor permitiendo que comience el
procesamiento del lado del servidor.
Hay tres tipos de controles Button, todos miembros del espacio de nombre
System.Web.UI.WebControls

ôp Button: es el botón estándar


ôp LinkButton: mezcla entre Button e HyperLink. Se muestra como un
hipervínculo.
ôp ImageButton: igual que el Button pero tiene una imagen de mapa de bits. No
tiene un atributo Text, pero sí AlternateText (texto a mostrar en navegador
que no admita gráficos).

Los tres tipos de botón tienen dos eventos:


Click
Command. Se desencadena cuando se hace clic en el control y hay un nombre de
comando asociado al botón (propiedad CommandName).

Ver ejemplo Button.

Muestra un button que cuando hagamos clic vaya a ejecutar un comando que escriba un
texto en un TextBox.
¿qué pasa si también le ponemos un evento del tipo onclick?
Muestra un botón con una imagen que al hacer clic vaya a una página web.
Muestra un botón del tipo LinkButton que al hacer clic abra un archivo pdf. Cuando
situamos el ratón sobre el botón que aparezca un mensaje que nos informe de su
comportamiento (ToolTip)

La diferencia entre LinkButton y Button es que LinkButton usa script del lado de
cliente. (podemos ver la página html que se genera).

?  

La diferencia con LinkButton es que no envía datos al servidor y se dirige
directamente al URL, mientras que LinkButton envía el formulario.

Los principales atributos son:


ôp ImageURL. La ruta de imagen que se muestra.
ôp NavigateUrl. El URL al que vamos.
ôp Text.
ôp Target. La ventana o marco de destino.

Ver ejemplo Control Hiperlink.

Muestra un HyperLink que abra una página web en la misma ventana en la que nos
encontramos. ¿y si queremos que se abra en otra ventana?
¿Dónde se procesa el control HyperLink, en el servidor o en el cliente? Compruébalo
con el código fuente de la página web creada.

?  
   
CheckBox ± CheckBoxList ± RaddioButton ± RadioButtonList ± ListBox ± DropDownList ±
BulletedList ±

Todos derivan de la clase WebControl.

Control CheckBox.
Ver ejemplo Control CheckBox.
Dispone el evento CheckBoxChanged.

Control RadioButton.-
Similar a CheckBox pero se agrupan con la propiedad GroupName y solo se puede
marcar un valor.

c  
  
Ver ejemplo RadioButton.

Crea una página en donde tengamos un texto en una Label. Esta label tendrá onInit
un formato.
Crea unos controles de seleccionar valores que permitan poner el texto subrayado,
tachado, negrita y cursiva. (recuerda que si ya está subrayado, por ejemplo, debe
quitar el subrayado)
Crea otro texto en otra label igual que el caso anterior, pero que permita cambiar
el tamaño de la fuente. (podremos usar RaddioButton agrupados GroupName)
Puedes usar un código oculto del tipo
If(radiotamaño10.Checked) { label.Font.Size=10;
Else if«
Si prefieres también puedes usar swicht «case


  
 
Tenemos cinco controles de servidor para seleccionar uno o varios elementos de una
lista.
ôp BulletedList
ôp CheckBoxList
ôp DropDownList
ôp ListBox
ôp RadioButtonList

Todos derivan de ListControl y tienen:

ôp Objeto ListItem. Es la info que muestra la lista. Tiene una propiedad Value
y otra Text.
ôp Intems. Es una propiedad que contiene la colección de todos los ListItems.
ôp ListItems. Se puede añadir a la colección Items de forma estática, con
programación o con el método Add o desde un origen de datos. (Asistente de
configuración de orígenes de datos o al Editor de la colección ListItem).
ôp SelectedIndex y Selecteditem que apuntan al elemento seleccionado.
ôp AppendDataboundItems permite que se añadan los elementos obtenidos mediante
el vínculo de datos a la colección Items, en lugar de reemplazarla.
ôp Todos producen el evento SelectedIndexChanged.

DDL y ListBox se diferencian del resto en que se muestran como un solo control.
El resto aparece como una colección de vínculos, botones, casillas«

Agregar elementos declarativamente.


Ejemplo añadir declarativamente.

Se pueden escribir los elementos con el asistente Editar Elementos.

Añadir elementos mediante programación desde una matriz


Ejemplo añadir con programación matriz
Ejemplo añadir elementos y valores
Ejemplo añadir con DataBinding.

Vemos las sutiles diferencias.

Diseña un control que permita seleccionar una provincia y que aparezca en una
Label.
Crea un CheckBoxList que permita crear sus Ítems a través de una matriz de datos.
Podemos llamar al controlador de evento onInit del CheckBoxList. En su código
oculto tendremos:
protected void CheckBoxList1_Init(object sender, EventArgs e)
{
string[] elementos = {"ciencia", "novela", "biografia", "historia"};
for (int i = 0; i < elementos.Length; i++)
this.CheckBoxList1.Items.Add(new ListItem(elementos[i]));
}
También se podría usar:
protected void CheckBoxList1_Init(object sender, EventArgs e)
{
string[] elementos = { "ciencia", "novela", "biografia", "historia" };
for (int i = 0; i < elementos.Length; i++)
CheckBoxList1.DataSource = elementos;
CheckBoxList1.DataBind();
}

c  
  
×   
 

Evento SelectedIndexChanged.
Si AutoPostBack es true, la respuesta se produce de inmediato. Si es false, la
respuesta se produce la próxima vez que se envíe el formulario.

Ejemplo Responder a eventos.

La clase StringBuilder se utiliza para crear la cadena en lugar de concatenar cada


valor de la cadena con el valor anterior.

?  × 
 

Es similar al CheckBoxList. Derivan de la clase ListControl.
RadioButtonList solo puede tener un solo elemento seleccionado.

La propiedad SelectedIndex devuelve Intenger y SelectedItem es de tipo ListItem.

Ejemplo RadioButtonList.

?    

Al cargar la página vamos a cargar los valores del ddl.
El ddl también tiene objetos ListItem que permite añadir Text Y Value a la colección
Ítems mediante el método Add.
Podremos mostrar el valor seleccionado en una Label cuando se produzca el evento
SelectedIndexChanged.

Para evitar que el código seejecute cada vez que se vuelve a cargar la página, ponemos
IsPostBack true.
En el método SelectedIndexChanged primero comprobamos si hay algo seleccioando con la
propiedad SelectedIndex y luego se muestra una concatenación de SelectedItem.

protected void Page_Load(object sender, EventArgs e) {


if (!IsPostBack) {
string[,] datos = {
{"libro1", "Quijote"},
{"libro2", "el perfume"}};
for (int i = 0; i < datos.GetLength(0); i++){
DropDownList1.Items.Add(new ListItem(datos[i, 0], datos[i, 1]));}}} protected void
DropDownList1_SelectedIndexChanged(object sender, EventArgs e){
if (DropDownList1.SelectedIndex!= -1) {
Label1.Text=DropDownList1.SelectedItem.Text+ "--Titulo--"+DropDownList1.SelectedValue;}}
ôp ¿qué diferencia hay entre Length y GetLength?
ôp ¿por qué utilizas SelectedIndex en el if y SelectedItem al cargar la Label?
ôp ¿por qué la llave última del string datos lleva ;? ¿es necesario (!IsPostBack)?

?  
 
Muestra un listado en un ListBox que permita seleccionar un dato y que aparezca en una
Label. Los Text y Value los introducimos con string [,]
Convierte ese ListBox para selección múltiple y que en la Label puedan aparecer varias
selecciones. (puedes usar str+)(usando propiedad SelectionMode).

Ver ejemplo Listbox

La propiedad Rows indica la altura del control. Si no indica nada, se muestran cuatro.
La barra de scroll aparece automáticamente.
Es habitual poner AutoPostBack para que los efectos del cambio sean visible
inmediatamente.
En los controladores de eventos, recorremos la colección de objetos ListItem,
comprobando si la propiedad Selected es true.
Si es true, se añaden las propiedades Text y Value a la cadena para mostrar en la
etiqueta.

?  

Es un control similar a las listas html.
Tb deriva de ListControl y tiene la propiedad Items que es una colección de objetos
ListItem.

El estilo del punto se pone con la propiedad BulletStyle.


DisplayMode es la propiedad que determina la apariencia y funcionalidad (text, hyperlink
o linkbutton).

Ver ejemplo BulletedList


Este ejemplo tiene tres ListItems.

Crea un WebForm en donde tengamos una lista desordenada cuyos símbolos sean Disc. Sus
elementos serán enlaces a diferentes páginas Webs.

c