Cita:
Iniciado por jarogo
Hola a todos!
estoy intentando cargar un datagridview mediante código, con la particularidad que hay un campo que en la base de datos
guarda 0/-1 y yo quiero que muestre "Si/No". Para ello defino una DataGridViewComboBoxColumn, pero no me funciona del
todo bien. Aparece el combo, me muestra los valores si y no cuando despliego, pero no cuando carga el grid. Me hace lo que
aparece en esta imagen:
http://img263.imageshack.us/img263/772/dibujokjq.jpg
Y este es el código que tengo. ¿Que estoy haciendo mal? Gracias de antemano!!
Código:
Dim Conexion As String
Dim Sql As String
Dim DataAdapter As SqlDataAdapter
Dim DataSet As New DataSet
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Conexion = "Data Source=Equipo;Initial Catalog=Datos;Persist Security Info=True;User ID=Sa;Password=XXXX"
Sql = "SELECT CodigoEmpresa, CodigoArticulo, Inactivo FROM Articulos ORDER BY CodigoArticulo"
DataAdapter = New SqlDataAdapter(Sql, Conexion)
DataSet.Reset()
DataAdapter.Fill(DataSet, "Articulos")
Dim a As New DataGridViewTextBoxColumn
a.DataPropertyName = "CodigoEmpresa"
a.Name = "CodigoEmpresa"
DataGridView1.Columns.Add(a)
Dim b As New DataGridViewTextBoxColumn
b.DataPropertyName = "CodigoArticulo"
b.Name = "CodigoArticulo"
DataGridView1.Columns.Add(b)
Dim c As New DataGridViewComboBoxColumn
c.DataPropertyName = "Inactivo"
c.Name = "Inactivo"
c.DataSource = GetDatos()
c.DisplayMember = "valor"
c.ValueMember = "key"
DataGridView1.Columns.Add(c)
Me.DataGridView1.AutoGenerateColumns = False
Me.DataGridView1.DataSource = Nothing
Me.DataGridView1.DataSource = DataSet.Tables("Articulos")
End Sub
Private Function GetDatos() As DataTable
Dim dt As New DataTable
dt.Columns.Add("valor")
dt.Columns.Add("key")
Dim row As DataRow = dt.NewRow
row("valor") = "Si"
row("key") = "-1"
dt.Rows.Add(row)
row = dt.NewRow
row("valor") = "No"
row("key") = "0"
dt.Rows.Add(row)
Return dt
End Function
Private Sub DataGridView1_DataError(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewDataErrorEventArgs) Handles DataGridView1.DataError
End Sub
hola, no me da el tiempo para probar tu código pero cuando he trabajado con combos he usado la propiedad
DataPropertyName para indicarle el nombre de la columna (del datargidview) que actua como el
SLECTEDvaluemember . prueba quitando esa línea.