• Lunes 29 de Abril de 2024, 05:08

Autor Tema:  Problema con listBox  (Leído 2502 veces)

elflaco178

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
Problema con listBox
« en: Miércoles 9 de Junio de 2010, 05:09 »
0
hola como va!

bueno el tema es el siguiente .... cargo un  listbox mediante su propiedad datasource , este origen de datos es un datatable que contiene una columna con el id de localidades y otra con la descripcion de mis localidades. El tema es el siguiente, cuando selecciono la localidad quiero que me devuelva el id y no el nombre de la localidad que son las que muestro a traves de la propiedad de mi listbox DisplayMembers.
O sea lo siguiente:

wilde    <===== id 1
Avellaneda <===== id 2

cuando selecciono wilde quiero q me retorne su id en este caso 1 y no el selectedIndexChanged que seria 0.

Dejo la config de mi listbox

 Me.lstCurso.DataSource = _dsTablas.Tables("Cursos")  //Paso el origen de los datos que es una tabla en un dataset
 Me.lstCurso.DisplayMember = _dsTablas.Tables("Cursos").Columns(1).ToString //Le digo la columna que va a mostrar sus datos a traves de mi listbox

Gracias gente ,
PD: prober con ValueMembers y devuelve string. Yo pienso tambien que hay q configurar que devuelve de ese origen de datos pero no pego la propiedad o metodo.Lei esto tambien que me ayudo a hacer lo anterior.

Newtek

  • Miembro activo
  • **
  • Mensajes: 81
  • Nacionalidad: cr
    • Ver Perfil
    • http://www.newtekwebhosting.com.com?id=000231
Re: Problema con listBox
« Respuesta #1 en: Miércoles 9 de Junio de 2010, 16:53 »
0
Bueno lo que yo normalmente hago es que cuando cargo los valores al listbox pongo el ID como parte de la propiedad value en el objeto en otras palabras algo similar a esto cuando ves el HTML code...

 
Código: C#
  1.    [b]<asp:ListBox ID="ListBox1" runat="server"
  2.             onselectedindexchanged="ListBox1_SelectedIndexChanged" AutoPostBack="True">
  3.             <asp:ListItem Value="1">Villareal</asp:ListItem>
  4.             <asp:ListItem Value="2">Desampa</asp:ListItem>
  5.             <asp:ListItem></asp:ListItem>
  6.         </asp:ListBox>[/b]
  7.  


Ahora bien... una forma de trabajar al rededor de esto... y es solo una idea... seria... cargar los valores de la base de datos a un listItem primero. (El codigo que pongo esta en C# pero como te digo es solo una idea y a mi me funciona bien.)

Código: C#
  1. [b]ListItem lista = new ListItem()
  2. lista.value = _dsTablas.Tables("Cursos").Columns(1).ToString;
  3. lista.text=_dsTablas.Tables("Cursos");
  4.  
  5. y luego de que has cargado todos los valores a la lista entonces solo haces
  6.  
  7. ListBox1.Items.Add(lista);
  8. [/b]
  9.  

Y luego para estraer los valores como tu quieres solo tienes que

Código: C#
  1. [b]manipular el ListBox1.Text si lo que quieres es el ID
  2. y lista.SelectedItem.ToString(); si lo que quieres es el nombre del curso. [/b]
  3.  

Saludos.


Carlos Cor.
Web Hosting, Design, Development & SEO at Crystaltech

elflaco178

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
Re: Problema con listBox
« Respuesta #2 en: Jueves 10 de Junio de 2010, 23:47 »
0
Gracias Carlos por tu respuesta, le encontre la vuelta a este rollo , dejo el code en Vb.Net

Cargo el listbox con el origen de los datos, esto es a modo de ejemplo:

        REM ORIGEN DE LOS DATOS PARA MI LISTBOX DE CURSOS
        Me.lstCurso.DataSource = _dsTablas.Tables("Cursos")      
        REM  EL CAMPO QUE VA A MOSTRAR                    
        Me.lstCurso.DisplayMember = _dsTablas.Tables("Cursos").Columns(1).ToString          
        REM  EL VALOR Q SE OBTIENE AL SELECCIONAR UNO DEL LISTBOX, TOMA PARTIDO EN EL EVENTO SELECTEDCHANGES
        Me.lstCurso.ValueMember = "idCurso"

Bueno lo anterior fue para inicializarlo, ahora si quiero poner mi seleccion en un textbox:

        Me.textBox.Text = Me.lstCurso.SelectedValue.ToString    


Saludos!!!!