2009-04-27 20 views
8

Tengo una lista de casilla de verificación asp.net vinculada a un origen de datos linq a sql y cuando verifico el recuento de elementos de mi CheckBoxList en el evento de carga de página es 0. Quiero para poder establecer los elementos seleccionados en mi casilla de verificación aquí pero no puedo.Cómo establecer múltiples valores seleccionados en asp.net checkboxlist

El evento seleccionado del origen de datos se dispara después de la carga de la página. Si este es el caso, ¿cómo puedo configurar los elementos seleccionados en mi lista?

Si configuro SelectedValue en un valor, solo se muestra el último valor como seleccionado en lugar de todos los valores seleccionados. ¿Cómo puedo seleccionar varios valores en mi checkboxlist en el evento de carga de página?

Respuesta

1

Suena como una pregunta del ciclo de vida de la página.

Realmente debería echar un vistazo a (las respuestas a) this question.

1

Utilicé el evento DataBound para seleccionar establecer los elementos seleccionados.

8

Sé que esta es una publicación anterior pero recientemente tuve el mismo problema.

Para seleccionar varios elementos de DataBound CheckBoxList, maneje el evento DataBound y recorra la colección Items configurando la propiedad Selected individualmente en cada elemento según sea necesario.

Al establecer la propiedad SelectedValue del control solo se verifica el elemento final.

foreach (ListItem item in MyCheckBoxList.Items) 
{ 
    item.Selected = ShouldItemBeSelectedMethod(item.Value); 
} 
+0

no se olvide de incluir el espacio de nombres System.Web.UI.WebControls –

3

vacío SetValueCheckBoxList (CheckBoxList CBL, sValues ​​de cuerda) públicos { si {
valores ArrayList = StringToArrayList (sValues) (String.IsNullOrEmpty (sValues)!);
foreach (ListItem li in cbl.Items) { if (values.Contains (li.Value)) li.Selected = true; else li.Selected = false;
}
}}

private ArrayList StringToArrayList(string value) 
     { 
      ArrayList _al = new ArrayList(); 
      string[] _s = value.Split(new char[] { ',' }); 

      foreach (string item in _s) 
       _al.Add(item); 

      return _al; 
     } 

Gracias, slnavn2000

3

buen método que utilizo:

artículos
private void SetCheckBoxListValues(CheckBoxList cbl, string[] values) 
     { 
      foreach (ListItem item in cbl.Items) 
      { 
       item.Selected = values.Contains(item.Value); 
      } 
     } 
+0

Esto arrojará un error a menos que tenga: usando System.Linq; – cdonner

+0

Para mí, cbl.Items está vacío en Page_Load. – user7733611

0

conjunto CheckBoxList seleccionados de una lista:

 List<int> yourlist; 
     //fill yourlist 
     foreach (ListItem item in checkboxlist.Items) 
     { 
      if (yourlist.Contains(int.Parse(item.Value.ToString()))) 
       item.Selected = true;     
     } 
Cuestiones relacionadas