Cómo: Determinar la selección en controles List de servidor Web
Actualización: noviembre 2007
La información proporcionada en este tema se aplica a los controles de lista de servidor Web siguientes: ListBox, DropDownList, CheckBoxList y RadioButtonList.
Una de las tareas más comunes cuando se trabaja con controles de lista de servidor Web es determinar qué elementos seleccionaron los usuarios. El procedimiento varía dependiendo de si el control de lista permite selecciones simples o múltiples.
Utilice el siguiente procedimiento cuando trabaje con el control DropDownList, el control RadioButtonList o un control ListBox de selección simple.
Para determinar la selección en un control de lista de selección simple
Utilice uno de los métodos siguientes:
Para obtener el valor de índice del elemento seleccionado, lea el valor de la propiedad SelectedIndex. El índice está basado en cero. Si no hay nada seleccionado, el valor de la propiedad es -1.
Para obtener el contenido del elemento seleccionado, utilice la propiedad SelectedItem del control. Esta propiedad devuelve un objeto de tipo ListItem. Para obtener el contenido del elemento seleccionado, puede utilizar la propiedad Text o Value del objeto.
Nota de seguridad: Los controles de páginas de formularios Web Forms podrían incluir secuencias de comandos de cliente malintencionadas. De forma predeterminada, la página de formularios Web Forms valida los datos escritos por el usuario para comprobar que no incluyen secuencias de comandos ni elementos HTML. Para obtener más información, vea Cómo: Proteger una aplicación Web frente a ataques mediante secuencias de comandos aplicando codificación HTML a las cadenas
En el ejemplo siguiente se muestra cómo se puede comprobar qué elemento está seleccionado en un control RadioButtonList. El código determina primero si existe una selección, para lo cual lee el valor de la propiedad SelectedIndex, que será -1 hasta que el usuario seleccione un elemento. A continuación, obtiene el objeto SelectedItem y muestra la propiedad Text de este objeto.
Protected Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click ' Is anything selected? The index is -1 if nothing is selected. If RadioButtonList1.SelectedIndex > -1 Then Label1.Text="You chose: " & RadioButtonList1.SelectedItem.Text End If End Sub
Protected void Button1_Click (object sender, System.EventArgs e) { // Is anything selected? The index is -1 if nothing is selected. if (RadioButtonList1.SelectedIndex > -1) { Label1.Text="You chose: " + RadioButtonList1.SelectedItem.Text; } }
Si el control de lista admite selecciones múltiples, deberá recorrer el control y comprobar uno por uno si los elementos están seleccionados.
Para determinar la selección en un control de lista de selección múltiple
Recorra la colección Items del control y compruebe la propiedad Selected de cada uno de los elementos individuales.
En el ejemplo siguiente se muestra cómo se comprueban las selecciones en un control ListBox de selección múltiple denominado ListBox1. El código muestra la lista de elementos seleccionados en una etiqueta.
Protected Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click Dim msg As String Dim li As ListItem msg = "" For Each li In ListBox1.Items If li.Selected = True Then msg = msg & "<br>" & li.Text & " selected." End If Next Label1.Text = msg End Sub
Protected void Button1_Click(object sender, System.EventArgs e) { string msg = "" ; foreach(ListItem li in ListBox1.Items) { if(li.Selected == true) { msg += "<BR>" + li.Text + " is selected."; } } Label1.Text = msg; }
Vea también
Referencia
Información general sobre CheckBox y CheckBoxList (Controles de servidor Web)
Información general sobre DropDownList (Control de servidor Web)
Información general sobre ListBox (Control de servidor Web)
Información general sobre RadioButton y RadioButtonList (Controles de servidor Web)