Sei sulla pagina 1di 8

Controles de servidor (III)

1. CONTROL RADIOBUTTON os botones de opcin son otros controles muy parecidos a las casillas de verificacin y que tambin aparecen con frecuencia en los formularios web. Utilizaremos el tipo de control RadioButton para ello. Sin embargo, a diferencia de lo que ocurre con las casillas de verificacin, slo deberamos tener un botn de opcin activo en cada momento o, al menos, uno en cada uno de los grupos que creemos. Esto es as porque este tipo de control se utiliza para proporcionar opciones excluyentes entre s.

Por defecto, estos controles no presentan ningn texto asociado con el botn de opcin, sino que hay que establecerlo directamente en su propiedad Text. Adems, utilizaremos el prefijo opt para el nombre de estos controles. Por otra parte, un botn de opcin puede presentar dos posibles estados: activado o desactivado. Para indicarlo, se establece el valor True o False en su propiedad Checked. Al inicio, es posible que no haya ningn botn de opcin activado si no hemos puesto la propiedad Checked a True para alguno de ellos. Sin embargo, esto no es lo normal. Una vez active uno de estos botones, siempre habr uno, y slo uno, activado. Si queremos tener ms de un botn de opcin activado a la vez, deberemos incorporarlos a un grupo. De esta forma, se permitir que exista un nico botn activado por grupo. Esto se establece introduciendo un nombre en la propiedad GroupName de los botones de opcin. Puede seleccionar previamente los controles de cada grupo y as aplicar el nombre de grupo a todos ellos en un nico paso.

Copyright (c) Computer Aided Education S.A.

Controles de servidor (III)

Por otra parte, es importante conocer que al pulsar en un control RadioButton en el navegador, no se enva la pgina al servidor excepto en el caso de que tenga su propiedad AutoPostBack a True, como ocurre con los controles CheckBox. 2. CONTROL RADIOBUTTONLIST isponemos de una versin de lista de los botones de opcin. As, en lugar de trabajar con varios botones individuales, podremos hacerlo como si fueran un nico control. Esto tiene algunas ventajas, como puede ser que en un control de lista de este tipo o RadioButtonList slo podremos tener un botn activado en cada momento sin necesidad de crear grupos de botones de opcin. Adems, si no conocemos el nmero de botones de opcin necesarios o queremos enlazarlos con la informacin almacenada en una base de datos, suele ser mejor utilizar un control RadioButtonList.

Utilizaremos el prefijo opl para el nombre de este tipo de control. Como en todos los controles de lista, disponemos de un editor para crear los elementos de la lista, es decir, de su propiedad Items. As, al pulsar en el botn Agregar de dicho editor, podremos ir aadiendo los elementos, para lo que introduciremos el valor de tres propiedades: Selected (si est activado o no), Text y Value.

Controles de servidor (III)

Por defecto, el editor establecer la propiedad Value al mismo valor que la propiedad Text. Al igual que en la versin de lista de las casillas de verificacin, dispondremos del evento SelectedIndexChanged del control RadioButonList donde podremos identificar qu botn se ha pulsado. Podramos programar en este evento algn cdigo adecuado a la seleccin de una u otra opcin o simplemente obtener qu botn ha sido seleccionado. Esto se hace exactamente igual que en una lista de casillas de verificacin: Con la propiedad SelectedIndex obtendremos el ndice del botn seleccionado (como Items es una coleccin, la numeracin empieza desde 0). Con la propiedad SelectedItem obtendremos el botn de opcin seleccionado. Con la propiedad SelectedValue haremos referencia al valor del objeto seleccionado.
Copyright (c) Computer Aided Education S.A.

Controles de servidor (III)

Private Sub oplColores_SelectedIndexChanged(...) Handles oplColores.SelectedIndexChanged Select Case oplColores.SelectedValue Case "Rojo" oplColores.BackColor = Color.Red Case "Verde" oplColores.BackColor = Color.Green Case "Azul" oplColores.BackColor = Color.Blue End Select End Sub

Con estas lneas vamos a cambiar el color del fondo del propio RadioButtonList a uno de los colores bsicos RGB: rojo, verde o azul. Utilizaremos controles RadioButton individuales o controles RadioButtonList segn nos convenga en cada caso.

3. CONTROL LISTBOX

l control ListBox permite seleccionar uno o ms elementos de una lista y hacer algn proceso con ellos.

Es un control genrico de lista, lo que quiere decir que ya lo conocemos en parte porque hemos estudiado los controles CheckBoxList y RadioButtonList, que son versiones especializadas de ListBox.

Controles de servidor (III)

Observe el formulario de la figura siguiente. La idea es sencilla: el usuario activar o desactivar las casillas de verificacin para aadir o eliminar los productos de la lista.

Hay dos formas de aadir elementos a una lista. Ya hemos visto que podemos hacerlo en tiempo de diseo accediendo al editor de su propiedad Items. Pero tambin podemos hacerlo en ejecucin utilizando su mtodo Add. Esto lo haremos al activar las casillas de verificacin de cada producto. Como este cdigo se tendra que repetir para el caso de cada casilla, crearemos una funcin que lo haga y la llamaremos durante el evento de hacer clic en las casillas.
Private Sub Comprar(ByVal elemento As CheckBox, _ ByVal etiqueta As String) Dim comprado As ListItem If elemento.Checked Then lstCarrito.Items.Add(etiqueta) Else For Each comprado In lstCarrito.Items If comprado.Text = etiqueta Then lstCarrito.Items.Remove(comprado) Exit For End If Next End If End Sub Private Sub chkHucha_CheckedChanged(...)... Comprar(chkHucha, "Hucha") End Sub

Copyright (c) Computer Aided Education S.A.

Controles de servidor (III)

Private Sub chkMacetas_CheckedChanged(...)... Comprar(chkMacetas, "Macetas") End Sub Private Sub chkDestornilladores_CheckedChanged()... Comprar(chkDestornilladores, "Destornilladores") End Sub Private Sub chkCisne_CheckedChanged(...)... Comprar(chkCisne, "Cisne") End Sub

Utilizamos el mtodo Add de la propiedad Items para aadir un nuevo elemento. En cada caso, este elemento es una cadena de texto que identifica el producto (Hucha, Macetas, Destornilladores o Cisne). Esto cuando est activada la casilla. Sin embargo, cuando lo que ha ocurrido es que el usuario ha desactivado la casilla de verificacin, se recorre toda la coleccin Items de la lista y, si coincide alguna entrada de la lista con la palabra correspondiente, entonces la eliminamos con el mtodo Remove de la propia lista y salimos inmediatamente del bucle For Each. Vemos, por lo tanto, que el control ListBox dispone de un mtodo Add para aadir elementos a la lista y de otro mtodo Remove para eliminarlos. En este caso, adicionalmente las casillas de verificacin tienen su propiedad AutoPostBack a True para que el evento CheckedChanged ocurra inmediatamente y se enve al servidor. De esta forma, el usuario ve actualizado su carrito de compra al aadir o eliminar productos de l y no tiene que pulsar en un botn para que se actualice.

Controles de servidor (III)

La funcin llamada Comprar recibe como parmetros el control y una cadena de texto. Por ejemplo, si es la casilla chkHucha, recibir chkHucha y la cadena ''Hucha''; si es chkMacetas, recibir chkMacetas y ''Macetas''... As es ms cmodo. Slo tenemos que llamar a dicha funcin en el procedimiento del evento CheckedChanged de cada casilla de verificacin. En cuanto al cdigo del botn Limpiar nos tiene que servir para eliminar todos los elementos de la lista y, adems, hacer que queden desmarcadas las casillas de verificacin:
Private Sub cmdLimpiar_Click(...)... lstCarrito.Items.Clear() chkHucha.Checked = False chkMacetas.Checked = False chkDestornilladores.Checked = False chkCisne.Checked = False End Sub

En este caso, utilizamos el mtodo Clear de la propiedad Items para eliminar todos los elementos de la lista en un slo paso y desactivamos las casillas de verificacin. Lo bueno de todo esto es que cualquier control de tipo lista va a disponer de todas estas caractersticas, por lo que podremos utilizarlas perfectamente. Por ejemplo, un control RadioButtonList no es ms que un control ListBox especializado, cuyos componentes son controles RadioButton. Por ello, podremos aadir con Add, eliminar con Remove o con Clear, etc.

Copyright (c) Computer Aided Education S.A.

Potrebbero piacerti anche