none
El valor de DataGridViewComboBoxCell no es válido

    Pregunta

  • Buen dia.
       Tengo el siguiente problema: tengo un datagrid al cual intento asignar una columna un combobox, cambio en el datagrid el ColumnType y asigno el DataPropertyName. Corro enseguida el programa ya que asigno el DataSource, DisplayMember y ValueMember de manera dinamica mediante el siguiente script:

     Dim odtsFormaPago As New DataSet
     Dim oFormaPago As New LibClases.FormaPago
    Try
                odtsFormaPago = oFormaPago.FormaPagoSelect(, , , , , , pActivo, , )
                Me.slmiIdFormaPago.DataSource = odtsFormaPago.Tables(0)
                Me.slmiIdFormaPago.ValueMember = "iIdFormaPago"
                Me.slmiIdFormaPago.DisplayMember = "sDescripcion"
    Catch ex As Exception
                Return
    End Try


       El error surge cuando selecciono el tab donde esta el datagrid, mostrando este error:
    ---------------------------

    ---------------------------
    El valor de DataGridViewComboBoxCell no es válido.
    ---------------------------
    Aceptar  
    ---------------------------

    Desarrollo en Microsoft Visual Studio 2008. Version 9.0.30729.1 SP y Microsoft .NET Framework Version 3.5 SP1
    corriendo sobre Windows Vista Business SP2.

    Gracias de antemano
    jueves, 03 de diciembre de 2009 18:47

Respuestas

  • hola

    No has validado si por ahi algún registro de los datos que bindeas en el datagridview puede estar fuera del rango que has cargado como items en el combo de la celda del tipo DataGridViewComboBoxColumn


    O sea me explico mejor, si en la celda tipo combo has cargado los valores {1,2,3,4}

    Pero cuando bindeas los datos de la grilla el campo de tu origen de datos que ash especificado en la propiedad "DataPropertyName", 
    viene con un valor, por ejemplo de 6, bueno ahí tendrás un fallo.

    por ahi para validar habilita la propiedad 
    poniéndola en true

    para que genere las columnas de forma dinámica y puedas validar cual este cargando datos incorrectos, eso si para que no falle debes quitar el bindea de la columna donde has definido el DataPropertyName, ya que sino intentara cargarlo y seguirá el fallo


    saludos

    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Marcado como respuesta HolguinI.mx sábado, 05 de diciembre de 2009 2:34
    viernes, 04 de diciembre de 2009 3:47

Todas las respuestas

  • hola

    No has validado si por ahi algún registro de los datos que bindeas en el datagridview puede estar fuera del rango que has cargado como items en el combo de la celda del tipo DataGridViewComboBoxColumn


    O sea me explico mejor, si en la celda tipo combo has cargado los valores {1,2,3,4}

    Pero cuando bindeas los datos de la grilla el campo de tu origen de datos que ash especificado en la propiedad "DataPropertyName", 
    viene con un valor, por ejemplo de 6, bueno ahí tendrás un fallo.

    por ahi para validar habilita la propiedad 
    poniéndola en true

    para que genere las columnas de forma dinámica y puedas validar cual este cargando datos incorrectos, eso si para que no falle debes quitar el bindea de la columna donde has definido el DataPropertyName, ya que sino intentara cargarlo y seguirá el fallo


    saludos

    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Marcado como respuesta HolguinI.mx sábado, 05 de diciembre de 2009 2:34
    viernes, 04 de diciembre de 2009 3:47
  • gracias Leandro.
      Ya esta resuelto.

    Saludos.
    sábado, 05 de diciembre de 2009 2:34
  • Hay 2 posibles razones
    1.- Verifica que los tipos de dato de la columna y el miembro valor sean equivalentes.

    2.- Los valores que contiene el combo correspondan al valor que tienen los registros.

    lunes, 23 de enero de 2012 21:45