• Domingo 22 de Diciembre de 2024, 16:54

Autor Tema:  Obtener El Elemento Actual De Un Listbox  (Leído 7197 veces)

nandoelpoeta

  • Nuevo Miembro
  • *
  • Mensajes: 17
    • Ver Perfil
Obtener El Elemento Actual De Un Listbox
« en: Lunes 30 de Abril de 2007, 18:34 »
0
HOLA
        TENGO UN LISTBOX ENLAZADO A UNA BASE DE DATOS DE  CIUDADES , MI PROBLEMA ES QUE CUANDO SELECCIONO UN ELEMENTO DEL LISTBOX , ME MUESTRA LO SIGUIENTE EN UN TEXTBOX System.Data.DataRowView , EN VES DE MOSTRARME EL NOMBRE DE LA CIUDAD, EL CODIGO QUE TENGO ES EL SIGUIENTE:

private void listabarrios_SelectedIndexChanged(object sender, EventArgs e)
        {
Int nSelectedIndex = listado.SelectedIndex;
txtnuevo.Text = Convert.ToString(listado.SelectedItem);
        }
EN EL TXTNUEVO.TEXT ME MUESTRA: System.Data.DataRowView  PORQUE OCURRE ESTO , QUE ESTOY HACIENDO MAL ?

alguien me puede ayudar  gracias

M4C

  • Miembro activo
  • **
  • Mensajes: 27
    • Ver Perfil
Re: Obtener El Elemento Actual De Un Listbox
« Respuesta #1 en: Lunes 30 de Abril de 2007, 19:24 »
0
hay algo que me llama la atención, el evento es del control "listabarrios" pero vos estás sacando el item seleccionado de "listado". Esto está ok?

Porque el SelectedItem de un ListBox no devuelve un DataRowView, sino un Object. Y a vos te esta pasando eso, que te devuelve un DataRowView y el metodo toString por defecto de esta clase devuelve el nombre y namespace al que pertenece.

yaG

  • Miembro activo
  • **
  • Mensajes: 46
    • Ver Perfil
Re: Obtener El Elemento Actual De Un Listbox
« Respuesta #2 en: Lunes 30 de Abril de 2007, 20:19 »
0
si haces esto ?
txtnuevo.Text = listado.SelectedItem.tostring();
[size=109]Antes de preguntar recuerda el concepto GIYF. Google is your friend.[/size][/u]

nandoelpoeta

  • Nuevo Miembro
  • *
  • Mensajes: 17
    • Ver Perfil
Re: Obtener El Elemento Actual De Un Listbox
« Respuesta #3 en: Miércoles 2 de Mayo de 2007, 03:47 »
0
HOLA
            BUENO SI HAGO LO SIGUIENTE :
txtnuevo.text= listado.selecteditem; me tira el siguiente error:

Error 1: No se puede convertir implícitamente el tipo 'object' en 'string'. Ya existe una conversión explícita (compruebe si le falta una conversión)   

Y SI HAGO :
                   txtnuevo.text = Convert.tostring (listado.selecteditem);  no me da error pero me sigue mostrando : System.Data.DataRowView en eltxtnuevo.text.

probe haciendolo en vb y el msmo problema , con respecto al evento esta todo ok , que puede ser  para colmo no encuentro nada en internet.

por favor ayuda ..
gracias

yaG

  • Miembro activo
  • **
  • Mensajes: 46
    • Ver Perfil
Re: Obtener El Elemento Actual De Un Listbox
« Respuesta #4 en: Miércoles 2 de Mayo de 2007, 14:51 »
0
listado.SelectedItem.TOSTRING();

probastes con eso ?
El método tostring te devuelve en formato string el valor seleccionado
[size=109]Antes de preguntar recuerda el concepto GIYF. Google is your friend.[/size][/u]

QuarKy

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Obtener El Elemento Actual De Un Listbox
« Respuesta #5 en: Miércoles 2 de Mayo de 2007, 16:18 »
0
si es un datarow quizá tengas que ponerle un índice, algo como listado.selectedItem[0].. ¿no?

nandoelpoeta

  • Nuevo Miembro
  • *
  • Mensajes: 17
    • Ver Perfil
Re: Obtener El Elemento Actual De Un Listbox
« Respuesta #6 en: Jueves 3 de Mayo de 2007, 15:21 »
0
HOLA
           GRACIAS A TODOS POR LAS RESPUESTAS , LA VERDAD TUVE QUE RECURRIR A PAGINAS EN INGLES YA QUE EN ESPAÑOL HAY POCA DOCUMENTACION BUENO LA SOLUCION ES LA SIGUIENTE:

   private void listado_SelectedIndexChanged(object sender, EventArgs e)
        {
            foreach (DataRowView objDataRowView in listado.SelectedItems)
            {
                txtnuevo.Text= objDataRowView["Nombre"].ToString();
            }
         
        }      

TODO ESTE CODIGO ES PARA CUANDO EL LISTBOX ESTA ENLAZADO A UNA BASE DE DATOS EN MI CASO SQL SERVER, YA QUE SI SOLO TENGO UNA COLECCION DE ITEMS STRING LA SOLUCION ES MAS SIMPLE:
 TXTNUEVO.TEXT= LISTADO.SELECTEDITEM; Y TODO ACABA ALLI.
BUENO GRACIAS A TODOS Y ESPERO LE SIRVA A ALGUIEN QUE VAYA A USARLO.