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

Problema databinding combobox

Estas en el tema de Problema databinding combobox en el foro de .NET en Foros del Web. Hola a todos Estoy tratando de enlazar un combobox dessde un dataset. Inicialmente, cargo los datos del combobox desde un dataset. Al moverme por un ...
  #1 (permalink)  
Antiguo 02/05/2017, 01:34
 
Fecha de Ingreso: noviembre-2009
Mensajes: 15
Antigüedad: 15 años
Puntos: 0
Pregunta Problema databinding combobox

Hola a todos
Estoy tratando de enlazar un combobox dessde un dataset.
Inicialmente, cargo los datos del combobox desde un dataset. Al moverme por un BindingNavigator, quiero cargar en el combo su dato correspondiente.
Este es el código que uso:

Call EnlazaDato(mi_dataSet, nombre_campo, nombre_combo)

Sub EnlazaDato(ByRef dataS As DataTable, campo As String, obj As Object)
'la variable cargado indica si el combo es cargado con dos columnas o no
Dim Bind As Binding

obj.DataBindings.Clear()
If obj.GetType.ToString = "System.Windows.Forms.TextBox" Then
Bind = New Binding("Text", dataS, campo, True)
obj.DataBindings.Add(Bind)
ElseIf obj.GetType.ToString = "System.Windows.Forms.Label" Then
Bind = New Binding("Text", dataS, campo, True)
obj.DataBindings.Add(Bind)
ElseIf obj.GetType.ToString = "System.Windows.Forms.CheckBox" Then
Bind = New Binding("Checked", dataS, campo, True)
obj.DataBindings.Add(Bind)
ElseIf obj.GetType.ToString = "System.Windows.Forms.ComboBox" Then
obj.DataBindings.Add(New System.Windows.Forms.Binding("SelectedValue", dataS, campo, True))

End If
Bind = Nothing
End Sub

Con los Text, label y chekboxs, funciona perfectamente, pero con el combobox, no hay forma..
¿Alguna ayuda?
Gracias
  #2 (permalink)  
Antiguo 02/05/2017, 16:34
Avatar de Drako_18  
Fecha de Ingreso: mayo-2005
Ubicación: Madrid
Mensajes: 505
Antigüedad: 19 años, 6 meses
Puntos: 16
Respuesta: Problema databinding combobox

Buenas compañero,

No estoy muy seguro de lo que haces ahí... Porque no lo he probado... Pero así.. A simple vista... No deberías tenerlo en un "DataSource" y no en "SelectedValue"¿?
Porque con lo de arriba, parece que si estás cargando bien los datos en sus propiedades correspondientes... pero con el SelectedValue... Tienes que tener datos cargados ya en el combo, para indicar qué dato seleccionar...
Mañana lo intento probar si no encuentras alguna solución...


Un saludo!!!
__________________
Rubén Espada
Desarrollador full stack .Net (Angular + JS + .Net Core)
  #3 (permalink)  
Antiguo 03/05/2017, 00:50
 
Fecha de Ingreso: noviembre-2009
Mensajes: 15
Antigüedad: 15 años
Puntos: 0
Respuesta: Problema databinding combobox

Buenas! gracias por contestar.
Los combo los cargo en el load desde un dataset, y cuando me muevo por el bindingnavigator, quisiera seleccionar el elemento, por eso uso SelectedValue, pero en realidad, como no funciona, no sé qué tengo que hacer

Un saludo
  #4 (permalink)  
Antiguo 03/05/2017, 02:16
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 10 meses
Puntos: 606
Respuesta: Problema databinding combobox

No me queda del todo claro que quieres hacer. Diría que quieres cargar el contenido del data set en la propiedad SelectedValue del combobox. Es así?
__________________
Aviso: No se resuelven dudas por MP!
  #5 (permalink)  
Antiguo 03/05/2017, 03:53
Avatar de Drako_18  
Fecha de Ingreso: mayo-2005
Ubicación: Madrid
Mensajes: 505
Antigüedad: 19 años, 6 meses
Puntos: 16
Respuesta: Problema databinding combobox

Buenas compañero,

He probado a hacer este ejemplo sencillo... Y funciona...
Imagino, que te puede faltar el enlazar el BindingSource1 al BindingNavigator1...
Espero haberte ayudado en algo con este ejemplo...


Un saludo y suerte!

Código vb:
Ver original
  1. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  2.         Dim dtDatos As New DataTable("Toma") 'Tabla para rellenar las tablas.
  3.        Dim drAux As DataRow
  4.  
  5.         dtDatos.Columns.Add(New DataColumn("Col1"))
  6.         dtDatos.Columns.Add(New DataColumn("Col2"))
  7.  
  8.         drAux = dtDatos.NewRow
  9.         drAux("Col1") = "Columna A1"
  10.         drAux("Col2") = "Columna A2"
  11.         dtDatos.Rows.Add(drAux)
  12.  
  13.         drAux = dtDatos.NewRow
  14.         drAux("Col1") = "Columna B1"
  15.         drAux("Col2") = "Columna B2"
  16.         dtDatos.Rows.Add(drAux)
  17.  
  18.         'Visualmente, asignamos el BindingSource1 al BindingNavigator1
  19.        BindingSource1.DataSource = dtDatos 'Rellenamos los datos del BindingSource...
  20.  
  21.         ComboBox1.DataSource = dtDatos 'Cargamos los datos que sean en el cmb, por flojera, yo he cargado los mismos que en el Binding...
  22.        ComboBox1.DisplayMember = "Col1" 'Asigno la columna a mostrar.
  23.        ComboBox1.ValueMember = "Col2" 'Asigno la columna a obtener el valor.
  24.  
  25.         ComboBox1.DataBindings.Add("SelectedValue", BindingSource1, "Col2") 'Enlazo el BindingSource al cmb.
  26.    End Sub
__________________
Rubén Espada
Desarrollador full stack .Net (Angular + JS + .Net Core)
  #6 (permalink)  
Antiguo 03/05/2017, 04:30
 
Fecha de Ingreso: noviembre-2009
Mensajes: 15
Antigüedad: 15 años
Puntos: 0
Respuesta: Problema databinding combobox

Buenas!
Así sí que funciona... el problema que yo estaba teniendo es que inicialmente cargaba el dataset y el combo con dos columnas, bueno tres, del tipo: NOMBRE · ID
y de esa forma es imposible que localice el dato para Seleccionarlo.
Muchas gracias por vuestras aportaciones, al final cargaré con una única columna.

Muchas gracias

Etiquetas: 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 11:35.