Hola de nuevo
Hace unos dias, adicioné un control ListBox a una de mis páginas. El control debería utilizar la propiedad SelectionMode = Multiple, permitiendome seleccionar varias opciones del control. Para mi sorpresa, cuando intentaba hacer esto, y en mi código detectar las opciones seleccionadas, sencillamente solo me retornaba como seleccionada, la primera opción.
Supongamos que cargo mi control en el primer postback de este modo:
if
(!Page.IsPostBack){
ListBox1.Items.Add(new ListItem("Rock and Roll","1"));
ListBox1.Items.Add(new ListItem("Country","1"));
ListBox1.Items.Add(new ListItem("Salsa", "1"));
}
Diganme que notan algo peculiar, porque a mí me tomó medio dia darme cuenta del causante de este problema. Si señores, el código asociado a cada opción es el mismo, ese es el "problema". No es cuestión de fijarle AutoPostback=true al control, como sugieren algunos foros, no es fijar la propiedad SmartNavigation=true en VS.NET 2003, no es la forma de recorrer el control para saber qué opciones están seleccionadas, no señores, deben es evitar que el código se repita, y de este modo el problema desaparace. Por ejemplo cuando tengan esto en un botón que me permita imprimir los items seleccionados, el programa debe funcionar sin ningun problema, y sin mostrar como seleccionada solo la primera opción de su listado.
foreach (ListItem miItem in ListBox1.Items)
{
if (miItem.Selected)
Response.Write(miItem.Text);
}
Dos moralejas, primera hay foros alimentados por personas realmente perversas que terminan confundiendo a sus usuarios y segunda, a mí modo de ver aqui hay o un bug o algo que a mí parecer no debería tener este comportamiento.
Feliz solución!!
1 comment:
Gracias e as solucionado mi problema y tienes razon lei muchos foros y termine confundido pero gracias a ti lo logre solucionar
Post a Comment