none
contenido de una columna datagridcombocolumn RRS feed

  • Pregunta

  • hola

    tengo una aplicacion en visual net con un datagridview, una de las columnas es un combo asociado a una tabla

    cargo todas las columnas al mostrar el form pero quiero que el contenido de esta columna cambie en funcion de lo que el usuario ponga en una columna anterior.

    el problema que veo es que la columna ya esta cargada y no se como refrescarla

    muestro el codigo que ejecuto al cargar el forma con los datos del grid

    el dato para el filtro clart.Id puede cambiar en una columna anterior y quiero refrescar

        Private Sub añadirComboGridOperaciones()
            Dim columnCbo As New DataGridViewComboBoxColumn()
            Dim datos As New dtHojaRuta
            With columnCbo
                .DisplayStyle = DataGridViewComboBoxDisplayStyle.DropDownButton
                .DataPropertyName = "noperacion"
                .DataSource = datos.obtenerTodos(True, clArt.id)
                .DisplayMember = "valor"
                .ValueMember = "nproceso"
                .DropDownWidth = 400
                .Width = 150
                .FlatStyle = FlatStyle.Flat
                .HeaderText = "Operación"
                .Name = "CboOperacion"
                ' .AutoComplete = True
            End With
            grd.Columns.Add(columnCbo)
            Cursor = System.Windows.Forms.Cursors.Default
        End Sub
    gracias


    Aran

    martes, 2 de enero de 2018 13:31

Respuestas

  • ya lo he solucionado

    consiste en crear la columna en una funcion y en otra establecer el datasource

     Private Sub añadirComboGridOperaciones()
            Dim columnCbo As New DataGridViewComboBoxColumn()
            With columnCbo
                .DisplayStyle = DataGridViewComboBoxDisplayStyle.DropDownButton
                .DataPropertyName = "noperacion"
                .DropDownWidth = 400
                .Width = 150
                .FlatStyle = FlatStyle.Flat
                .HeaderText = "Operación"
                .Name = "CboOperacion"
                ' .AutoComplete = True
            End With
            grd.Columns.Add(columnCbo)
    
            Cursor = System.Windows.Forms.Cursors.Default
        End Sub
    'esta funcion se le llama cuando ya tenemos el dato del clart.id , despues de cellvalue de la columna del articulo
        Private Sub setDatosOperaciones(ByVal comboboxColumn As DataGridViewComboBoxColumn)
            Dim datos As New dtHojaRuta
            With comboboxColumn
                .DataSource = datos.obtenerTodos(True, clArt.id)
                .ValueMember = "nproceso"
                .DisplayMember = "valor"
            End With
        End Sub


    Aran

    • Marcado como respuesta aticnet miércoles, 3 de enero de 2018 11:00
    miércoles, 3 de enero de 2018 11:00