Ver Mensaje Individual
  #8 (permalink)  
Antiguo 14/12/2010, 11:25
Avatar de devilinside
devilinside
 
Fecha de Ingreso: marzo-2008
Ubicación: En Perú
Mensajes: 73
Antigüedad: 16 años, 1 mes
Puntos: 6
Respuesta: Datagridview con columna combo

Hola Jarogo, disculpa por no responder antes. Bueno esta vez sí me detuve a revisar y probar el código (aunq muy rápidamente). Hice pruebas y te dejo el código que funciona sin errores. Tú lo acomodas de acuerdo a tu necesidad.

Código Vb.Net:
Ver original
  1. Private Function DevuelveDatos() As DataTable
  2.  
  3.         Dim dt As New DataTable
  4.         dt.Columns.Add("CodigoEmpresa")
  5.         dt.Columns.Add("CodigoArticulo")
  6.         dt.Columns.Add("Inact")
  7.  
  8.  
  9.         Dim row As DataRow = dt.NewRow
  10.         row("CodigoEmpresa") = "1"
  11.         row("CodigoArticulo") = "1"
  12.         row("Inact") = "-1"
  13.         dt.Rows.Add(row)
  14.  
  15.         row = dt.NewRow
  16.         row("CodigoEmpresa") = "2"
  17.         row("CodigoArticulo") = "2"
  18.         row("Inact") = "0"
  19.         dt.Rows.Add(row)
  20.  
  21.         row = dt.NewRow
  22.         row("CodigoEmpresa") = "3"
  23.         row("CodigoArticulo") = "2"
  24.         row("Inact") = "-1"
  25.         dt.Rows.Add(row)
  26.  
  27.         row = dt.NewRow
  28.         row("CodigoEmpresa") = "4"
  29.         row("CodigoArticulo") = "2"
  30.         row("Inact") = "0"
  31.         dt.Rows.Add(row)
  32.  
  33.         row = dt.NewRow
  34.         row("CodigoEmpresa") = "5"
  35.         row("CodigoArticulo") = "4"
  36.         row("Inact") = "0"
  37.         dt.Rows.Add(row)
  38.  
  39.  
  40.         Return dt
  41.  
  42.     End Function
  43.  
  44.     Private Function GetDatos() As DataTable
  45.  
  46.         Dim dt As New DataTable
  47.         dt.Columns.Add("valor")
  48.         dt.Columns.Add("key")
  49.  
  50.         Dim row As DataRow = dt.NewRow
  51.         row("valor") = "Si"
  52.         row("key") = "-1"
  53.         dt.Rows.Add(row)
  54.  
  55.         row = dt.NewRow
  56.         row("valor") = "No"
  57.         row("key") = "0"
  58.         dt.Rows.Add(row)
  59.  
  60.         Return dt
  61.  
  62.     End Function
  63.  
  64.     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  65.  
  66.         Me.DataGridView1.DataSource = DevuelveDatos()
  67.  
  68.         Dim d As New DataGridViewComboBoxColumn
  69.         d.DataSource = GetDatos()
  70.         d.Name = "Inactivo"
  71.         d.DisplayMember = "valor"
  72.         d.ValueMember = "key"
  73.         d.DataPropertyName = "Inact"
  74.         DataGridView1.Columns.Add(d)
  75.  
  76.         'Esta columna devería ocultarse automáticamente, pero curiosamente no lo hace, así que lo hice manualmente XD. Luego reviso.
  77.         Me.DataGridView1.Columns("Inact").Visible = False
  78.  
  79.     End Sub

Espero haberte ayudado.
Saludos.

Última edición por devilinside; 15/12/2010 a las 10:29