none
Comflicto en la selección de Valuemember Datagridview RRS feed

  • Pregunta

  • Ola a todos tengo el siguiente problema.. mas que asignación es de conflicto...

    *ya les digo que es conflicto

     con este codigo: asigno una columna combobox a mi grid.. todo funciona bien

    cboModeloInventarioItems.Visible = True 'se muestra
                            cboModeloInventarioItems.DataPropertyName = "id"
                            Me.dgitems.Columns.Add(cboModeloInventarioItems) 'agregado de columnas .. ya le he dado nombre 'cboModeloItems'
                            Dim tablaModelosItems As New System.Data.DataTable
                            tablaModelosItems = ModFcnesGrales.pubFcn_execProcedure_ds("spReturnQuery", " TBL_PRON_Modelos ", " id , descripcion ", " id = '1' or id = '2' or id = '3' ").Tables(0)
                            Dim comboboxColumn As DataGridViewComboBoxColumn = TryCast(dgitems.Columns("cboModeloItems"), DataGridViewComboBoxColumn)
                            comboboxColumn.DataSource = tablaModelosItems
                            comboboxColumn.DisplayMember = "descripcion"
                            comboboxColumn.ValueMember = "id"


    luego al guardar NO necesito guardar la descripción... solo el Id lógicamente de mi modelo

    tengo este código mediante un for que recorra las filas y me guarde todos los datos

    CodigoModeloInv = CStr(dgitems.Rows(j).Cells(2).Value)
     

    ahora si mi conflicto:

    cuando en el grid en la columna del combo cambias el modelo efectivamente toma el Id

    CodigoModeloInv 'me toma el id de mi modelo

     pero cuando no seleccionas ningun modelo si no que dejas el que se carga por defecto de la BD entonces me toma la descripción

    CodigoModeloInv 'te toma la descripción

    nota: por que dejar por defecto el que te trae de la bases de datos y no cambiarlos a todos.. devido a que el grid puede tener muchas filas +50 filas por ejemplo.

    pero solo te interesa cambiar los modelos de las N filas en cualquier orden!!!

    resumen:

    *el .value en algunos casos me toma id (Cuando mueves el combobox en columna)

    * el .value en otro casos me toma la descripción (Cuando no mueves el combobox)

    Quiero que el .value siempre me cargue el ID.. que ignore la descripción

    espero me ayuden ... se los agradezco y estare atento!!!


    • Editado Jhodmar viernes, 30 de marzo de 2012 21:30
    • Cambiado Enrique M. Montejo sábado, 23 de junio de 2012 14:43 controles de Windows Forms (De:Lenguaje VB.NET)
    viernes, 30 de marzo de 2012 21:28

Todas las respuestas

  • hola

    has intentado usar

    comboboxColumn.DisplayMember = "descripcion"                        
    comboboxColumn.ValueMember = "id"
    comboboxColumn.DataSource = tablaModelosItems

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    viernes, 30 de marzo de 2012 21:52
  • Gracias Leandro por tu respuesta pero no he logrado cargarle siempre el id... aun tengo el miso problema aveces me carga el id y otras veces me carga la descripcion...

    Bueno lo que hecho por ahora consiste en agregar mas lineas para hacer una validacion::

    * si es numerico (dgitems.Rows(j).Cells(2).Value) entonces por logica es el ID

    * si no es numerico (dgitems.Rows(j).Cells(2).Value) entonces seria la descripcion; me toca ir a BD a consultar su ID filtrando la descripcion

    ***bueno son lineas innecesarias pero debido a mi problema las uso... ademas no deberia ser asi pero no logro dar con el conflicto

    estare atento alguna notificación!!!

    lunes, 2 de abril de 2012 21:00