Ver Mensaje Individual
  #2 (permalink)  
Antiguo 25/11/2010, 15:04
Avatar de devilinside
devilinside
 
Fecha de Ingreso: marzo-2008
Ubicación: En Perú
Mensajes: 73
Antigüedad: 16 años, 1 mes
Puntos: 6
Respuesta: Actualizar combobox dentro de un datagridview

...espero que se entienda y te sirva:

Primero debes programar en el evento CellValueChanged, para cargar desde ahí la info del combo, cada vez que el id_Articulo cambia

Código Vb.Net:
Ver original
  1. Private Sub dgv_CellValueChanged(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgvContenedor.CellValueChanged
  2.         With dgv
  3.             If .CurrentCell Is Nothing Then
  4.                 Exit Sub
  5.             End If
  6.             If .CurrentCell.OwningColumn.Name = "id_articulo" Andalso .CurrentCell.Value IsNot DbNull.Value Then
  7.                  
  8.                    'llamamos a la función que cargará las unidades y le enviamos la fila actual
  9.                    CargarUnidadesEnCombo(.CurrentRow)
  10.  
  11.             End If
  12.         End With
  13. End Sub

y esta sería la función que carga la info en el Combo.

Código Vb.Net:
Ver original
  1. Private Sub CargarUnidadesEnCombo(ByVal fila As DataGridViewRow)
  2.  
  3.         Dim idArticulo as Integer
  4.         Dim dt As New DataTable
  5.  
  6.         idArticulo=fila.Cells("id_articulo").value
  7.  
  8.         'Llamamos a una funcion que devuelve una Tabla con las unidades, dependiendo del codigo de producto
  9.         dt = ObtenerDetalle(idArticulo)
  10.  
  11.         Dim Celda As DataGridViewComboBoxCell = DirectCast(fila.Cells("Unidad").value, DataGridViewComboBoxCell)
  12.  
  13.         With Celda
  14.             .DataSource = dt
  15.             .DisplayMember = "Unidad"
  16.             .ValueMember = "Código"
  17.             If dtContacto Is Nothing OrElse dtContacto.Rows.Count <= 0 Then
  18.                 .ReadOnly = True
  19.             Else
  20.                 .ReadOnly = False
  21.             End If
  22.         End With
  23. End Sub


Saludos ;)

Última edición por devilinside; 25/11/2010 a las 15:11