Foros del Web » Programación para mayores de 30 ;) » .NET »

ayuda con Dropdownlist

Estas en el tema de ayuda con Dropdownlist en el foro de .NET en Foros del Web. Hola a todos, esta vez les cuento que tengo una lista (dropdownlist) que lleno con datos de oracle, hasta ahi todo va bien, pero necesito ...
  #1 (permalink)  
Antiguo 02/12/2009, 14:52
Avatar de acumulador  
Fecha de Ingreso: junio-2008
Ubicación: Medellin - Antiquia
Mensajes: 459
Antigüedad: 15 años, 10 meses
Puntos: 7
ayuda con Dropdownlist

Hola a todos, esta vez les cuento que tengo una lista (dropdownlist) que lleno con datos de oracle, hasta ahi todo va bien, pero necesito que quede en primer lugar de la lista el valor que hay en una consulta, buscando me sugirieron utilizar el FindByText, y lo hago de esta forma:
ddlCiudad.Items.FindByText( "65300" ).Selected = true;

Como se ve intento hacer la busqueda con un codigo tipo texto, pero igual no me da, sale un error, y no se que hacer, ser aque alguien sabe como obtener el valor que necesito, muchas gracias por su ayuda,
__________________
-----------------------------------------------------------------------------
Yo vivo de preguntar, saber no puede ser lujo...
  #2 (permalink)  
Antiguo 02/12/2009, 16:46
Avatar de eperedo  
Fecha de Ingreso: septiembre-2009
Ubicación: Perú
Mensajes: 654
Antigüedad: 14 años, 7 meses
Puntos: 16
Respuesta: ayuda con Dropdownlist

Que error te muestra??
Quieres que se muestre seleccionado un determinado valor?
Podrías usar algo así:
Código c#:
Ver original
  1. protected void Button1_Click(object sender, EventArgs e)
  2.     {
  3.         DropDownList1.SelectedItem.Selected = false;
  4.         DropDownList1.Items.FindByText("Chang").Selected=true;
  5.     }

__________________
Eduardo Peredo
Wigoin
  #3 (permalink)  
Antiguo 03/12/2009, 07:18
Avatar de acumulador  
Fecha de Ingreso: junio-2008
Ubicación: Medellin - Antiquia
Mensajes: 459
Antigüedad: 15 años, 10 meses
Puntos: 7
Respuesta: ayuda con Dropdownlist

Cita:
Iniciado por eperedo Ver Mensaje
Que error te muestra??
Quieres que se muestre seleccionado un determinado valor?
Podrías usar algo así:
Código c#:
Ver original
  1. protected void Button1_Click(object sender, EventArgs e)
  2.     {
  3.         DropDownList1.SelectedItem.Selected = false;
  4.         DropDownList1.Items.FindByText("Chang").Selected=true;
  5.     }


Hola muchas gracias por tu ayuda, pero al implementar tu solucion me saca este error:
Referencia a objeto no establecida como instancia de un objeto.

y no veo de que pueda ser, gracias de nuevo!!
__________________
-----------------------------------------------------------------------------
Yo vivo de preguntar, saber no puede ser lujo...
  #4 (permalink)  
Antiguo 03/12/2009, 08:27
Avatar de eperedo  
Fecha de Ingreso: septiembre-2009
Ubicación: Perú
Mensajes: 654
Antigüedad: 14 años, 7 meses
Puntos: 16
Respuesta: ayuda con Dropdownlist

Cita:
Hola muchas gracias por tu ayuda, pero al implementar tu solucion me saca este error:
Referencia a objeto no establecida como instancia de un objeto.
Reemplazaste el valor Chang por uno existente en el dropdownlist??

Saludos.
__________________
Eduardo Peredo
Wigoin
  #5 (permalink)  
Antiguo 03/12/2009, 12:49
 
Fecha de Ingreso: enero-2006
Mensajes: 293
Antigüedad: 18 años, 3 meses
Puntos: 4
Respuesta: ayuda con Dropdownlist

Valida primero que el item que quieres seleccionar exita en la lista

Código:
string strValor = "valor";  //valor que quieres buscar
if(DropDownList1.Items.FindByValue(strValor) != null)
{
    DropDownList1.SelectedValue = strValue;
}
else
{
    DropDownList1.SelectedIndex = -1;
}
Es importante que notes FindByValue busca por el valor del item. NO Por el texto
  #6 (permalink)  
Antiguo 03/12/2009, 12:54
 
Fecha de Ingreso: enero-2006
Mensajes: 293
Antigüedad: 18 años, 3 meses
Puntos: 4
Respuesta: ayuda con Dropdownlist

También debes asegurarte que tu código este en un lugar donde el DropDownList ya se haya "bindeado".

Por ejemplo, si lo pones en el Page_Load el DropDownList todavía no se ha cargado, por lo que no vas a encontrar el valor que quieras buscar

Si no puedes moverlo del Page_Load una solución rápida sería

Código:
if(DropDownList1.Items.Count == 0)
{
   DropDownList1.DataBind(); // o mandas llamar la función que llene la lista (si lo estas haciendo manualmente
}
después de esto, ya puedes estar seguro que la lista contiene los elementos y puedes proceder a seleccionar el valor que deseas
  #7 (permalink)  
Antiguo 03/12/2009, 14:07
Avatar de acumulador  
Fecha de Ingreso: junio-2008
Ubicación: Medellin - Antiquia
Mensajes: 459
Antigüedad: 15 años, 10 meses
Puntos: 7
Respuesta: ayuda con Dropdownlist

Muchas gracias, ya mismo revizo todas tus recomendaciones.!!
__________________
-----------------------------------------------------------------------------
Yo vivo de preguntar, saber no puede ser lujo...
  #8 (permalink)  
Antiguo 03/12/2009, 14:24
Avatar de acumulador  
Fecha de Ingreso: junio-2008
Ubicación: Medellin - Antiquia
Mensajes: 459
Antigüedad: 15 años, 10 meses
Puntos: 7
Respuesta: ayuda con Dropdownlist

Todo funciona muy bien, pero cuando selecciono una ciudad como medellin que tiene tilde se ve asi: MEDELLÍN y por eso nunca encuentra el texto y me lo da como null por eso el error.
Sera que alguien sabe como evitar lo de la tilde???

muchas gracias de verdad por su colaboracion.
__________________
-----------------------------------------------------------------------------
Yo vivo de preguntar, saber no puede ser lujo...
  #9 (permalink)  
Antiguo 04/12/2009, 17:11
 
Fecha de Ingreso: enero-2006
Mensajes: 293
Antigüedad: 18 años, 3 meses
Puntos: 4
Respuesta: ayuda con Dropdownlist

Hice una prueba rápida creando un dropdownlist con un item "Medellín"

y al menos en VS2005 con C# pude obtener el item con

Código:
DropDownList1.Items.FindByValue("Medellín");
Talvez tu problema es que te sustituyo la "í" con codigo HTML. creo que html usa algo como &icute o algo asi.. la verdad no recuerdo

Lo que puedes hacer es poner un breakpoint en tu código, y checar en una ventana watch el valor de tu item.

Por ejemplo si sabes que tu item Medallin es el tercer elemento de tu lista, solo pon en el watch:

DropDownList1.Items[2].Value

El 2 es el indice de la posición del item que quieres ver. Con esto vas a ver exactamente que valor tiene tu item y ese sería el valor que tienes que usar en la función FindByValue
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:14.