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

Datagridview y DataGridViewComboBoxColumn

Estas en el tema de Datagridview y DataGridViewComboBoxColumn en el foro de .NET en Foros del Web. Saludos cordiales a todos. nuevamente por aki para hacerles una consulta. tengo un Datagridview al cual le he agregado columnaz y entre ellas algunas son ...
  #1 (permalink)  
Antiguo 08/06/2009, 11:49
 
Fecha de Ingreso: agosto-2008
Mensajes: 71
Antigüedad: 15 años, 8 meses
Puntos: 0
De acuerdo Datagridview y DataGridViewComboBoxColumn

Saludos cordiales a todos. nuevamente por aki para hacerles una consulta.

tengo un Datagridview al cual le he agregado columnaz y entre ellas algunas son del tipo DataGridViewComboBoxColumn, en cada fila en la celda que lo defini de esta forma aparece un combo para seleccionar dicho elemento, a continuacion tengo otra lista (combo) que me deberia cargar con datos dependiendo de lo que seleccioné en la primera lista. Actualmente lo hago haciendo la busqueda por el TEXTO que aparece en el combo de la primera lista ( lo ideal seria por el CODIGO), en un COMBOBOX normal existen las propiedades DisplayMember y ValueMember, con las cuales lleno el combo y para obtener dicho valor dependiedo de lo que tengo seleccionado utilizo la propiedad SelectedValue para recuperar el valor que se lleno del VALUEMEMBER....

(HASTA AQUI NADA DEL OTRO MUNDO)

kise intentar hacer lo mismo con el DataGridViewComboBoxColumn , pero me di con la sorpresa de que no cuenta con esta propiedad. solo con la propiedad VALUE. que me devuelve el TEXTO del item que seleccioné en este caso seria el DisplayMember, hay alguna forma de recuperar este dato para poderle asignar a la consulta para que me llene la segunda lista ?

o alguna idea de implementacion de como se podria hacer ?

graciuas. espero haberme dejado entender.

PD: la forma en que lleno una celda deficina como DataGridViewComboBoxColumn es la siguiente:

Código:
Dim b As DataGridViewComboBoxCell
      With Me.dgvLista
      b = .CurrentRow.Cells("area")
      DTT = OBJ.obtener_areas("0001") '  funcion que me devuelve un dtt con las areas que deseo llenar en un DataGridViewComboBoxCell, el VALOR '0001' es lo que deseo capturar del DataGridViewComboBoxCell ANTERIOR.
      b.DisplayMember = "des_area"
      b.ValueMember = "cod_area"
      b.DataSource = DTT
      End With
  #2 (permalink)  
Antiguo 08/06/2009, 13:15
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 10 meses
Puntos: 220
Respuesta: Datagridview y DataGridViewComboBoxColumn

Prueba en el evento EditingControlShowing
Código C#:
Ver original
  1. private void DgIti_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
  2.         {
  3.             if (e.Control is DataGridViewComboBoxEditingControl)
  4.             {
  5.                 DataGridViewComboBoxEditingControl CellComboBox = (DataGridViewComboBoxEditingControl)e.Control;
  6.                 CellComboBox.SelectionChangeCommitted -= new EventHandler(CbComboVerificar);
  7.                 if (ColCombo == "nombredetucolumna")
  8.                 {
  9.                     CellComboBox.SelectionChangeCommitted += new EventHandler(CbComboVerificar);
  10.                 }
  11.             }
  12.         }
  13.  
  14.   void CbComboVerificar(object sender, EventArgs e)
  15.         {
  16.             Obj = (ComboBox)sender;
  17.             // Procedimiento Normal como si fuera un combo
  18.             Obj.DataSource=tutabla;
  19.             //.........
  20.         }
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #3 (permalink)  
Antiguo 12/06/2009, 12:33
 
Fecha de Ingreso: agosto-2008
Mensajes: 71
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Datagridview y DataGridViewComboBoxColumn

Muchas gracias Dradi, mira adapte tu codigo en C# a mi VB, me funciona bien, almenos ya hago lo que necesitaba.

Pero ahora tengo otro problema q lo posteo aqui mismo. Cuando intento hacer el Guardar. debo de recorrer todas los ROWS del DGVIEW y en la columna AREA necesito saber EL CODIGO del AREA seleccionada en una columna del tipo DATAGRIDVIEWCOMBOBOXCOLUMN, igual solo puedo obternet el VALUE pero yo necesito el CODIGO que corresponde.
Bueno gracias por su ayuda, espero puedan ayudarme en este


Aqui le dejo el Codigo que me sirvio para cargar un DGVCOMBOBOXCELL dependiendo de lo que seleccione de otro DGVCOMBOBOXCELL. convertido en VB del codigo que posteo Dradi.

Código:
Private Sub dgvLista_EditingControlShowing _
            (ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewEditingControlShowingEventArgs) _
            Handles dgvLista.EditingControlShowing
        Try
            If e.Control.GetType Is GetType(DataGridViewComboBoxEditingControl) Then
                Dim cellComboBox As DataGridViewComboBoxEditingControl
                cellComboBox = e.Control
                RemoveHandler cellComboBox.SelectionChangeCommitted, AddressOf CbComboVerificar
 
                If dgvLista.Columns(Me.dgvLista.CurrentCellAddress.X).Name = "departamento" Then
                    AddHandler cellComboBox.SelectionChangeCommitted, AddressOf CbComboVerificar
                End If
            End If
        Catch ex As Exception
        End Try
    End Sub
 
    Private Sub CbComboVerificar(ByVal sender As Object, ByVal e As System.EventArgs)
        Dim Combo As ComboBox = sender
        Dim obj As clsArea
        Dim dtt As New DataTable
        Dim cellBox As New DataGridViewComboBoxCell
        Try
            obj = New clsArea
            dtt = obj.obtenerAreasPorDepartamento(Combo.SelectedValue)
            cellBox = Me.dgvLista.CurrentRow.Cells("area")
            cellBox.DisplayMember = "nombre_area"
            cellBox.ValueMember = "codigo_area"
            cellBox.DataSource = dtt
        Catch ex As Exception
        End Try
    End Sub
  #4 (permalink)  
Antiguo 12/06/2009, 12:37
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 10 meses
Puntos: 220
Respuesta: Datagridview y DataGridViewComboBoxColumn

no si ya has asignado el value a la columna solo con realizar esto

datagridview1.rows(0).cells(0).value

ya estarias tomando el value del combo
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #5 (permalink)  
Antiguo 12/06/2009, 12:41
 
Fecha de Ingreso: agosto-2008
Mensajes: 71
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Datagridview y DataGridViewComboBoxColumn

Ups... Ante todo muchas gracias por responder tan rapido. lo siento no habia provado eso y asumi que el VALUE me hiba a devolver el TEXTO. pero veo que me devuelve lo que necesito... MUCHAS GRACIAS...

y otra vez mil disculpas.

POST CERRADO :)
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 22:47.