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

[SOLUCIONADO] Databind Combobox varias columnas

Estas en el tema de Databind Combobox varias columnas en el foro de .NET en Foros del Web. Hola! Tengo un Winform con un combobox con varias columnas cargadas desde un dataset, del tipo: Nombre - Id Para guardar el dato seleccionado, no ...
  #1 (permalink)  
Antiguo 15/11/2016, 03:15
 
Fecha de Ingreso: noviembre-2009
Mensajes: 15
Antigüedad: 14 años, 5 meses
Puntos: 0
Pregunta Databind Combobox varias columnas

Hola!
Tengo un Winform con un combobox con varias columnas cargadas desde un dataset, del tipo: Nombre - Id

Para guardar el dato seleccionado, no tengo problema, me almacena cada valor en su campo correspondiente. El problema lo tengo cuando trato de cargar de nuevo el dato desde la base de datos.

Para un combobox de una única columna uso esto:
obj.DataBindings.Add(NewSystem.Windows.Forms.Bindi ng("SelectedValue", dataS, campo, True))

Pero si el combobox tiene más de una columna, este código no funciona.
Alguien sabe qué debo hacer para que funcione?

Gracias.
  #2 (permalink)  
Antiguo 17/11/2016, 03:26
 
Fecha de Ingreso: noviembre-2009
Mensajes: 15
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Databind Combobox varias columnas

Encontré la solución, y la escribo aquí por si a alguien le pasa lo mismo:

El problema lo estaba teniendo al cargar el combo con dos columnas, (Id, Descripción)

Era preciso incluir "combo.DisplayMember":

combo.DisplayMember = combo.Items.Add(descrip & " " & Id)

ya que yo sólo construía el combo sin DisplayMember.

Y al recuperar el valor de la base de datos:
Si el combo tiene una columna:

obj.DataBindings.Add(New System.Windows.Forms.Binding("SelectedValue", dataS, campo, True))

Si el combo tiene más de una columna:

obj.DataBindings.Add(New System.Windows.Forms.Binding("SelectedItem", dataS, campo, True))


Espero que le haya servido a alguien

Etiquetas: columnas, combobox
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 08:20.