martes, 11 de noviembre de 2014

Agregar Columnas a GridView en Tiempo de Ejecución y Enlazarlas a Datos



///


'Declaracion del DataSet
Dim ds As New DataSet
 
'Agregamos la tabla a la que le agregaremos columnas
ds.Tables.Add("Conceptos")

'Llenamos el checkList con una catalogo previamente consultado
With lstDonadores
 .DataSource = ds.Tables("donadores")
 .DisplayMember = "Nombre"
 .ValueMember = "IdDonador"
End With
  
'Evento que se desencadena al hacer click en un boton o donde requieran agregar los campos
'de los elementos del cheklist chequeados
For Each registro As Integer In lstDonadores.CheckedIndices
 
 'Agregamos las columnas
 ds.Tables("Conceptos").Columns.Add("reg" & CType(lstDonadores.Items.Item(registro), DataRowView)("idDonador"), GetType(Double))
 ds.Tables("Conceptos").Columns("reg" & CType(lstDonadores.Items.Item(registro), DataRowView)("idDonador")).Caption = "Aporte de " & CType(lstDonadores.Items.Item(registro), DataRowView)("nombre")
 
 'Creamos los GridColums y los enlazamos a datos
 Dim columna As New DevExpress.XtraGrid.Columns.GridColumn()
 columna.Name = "reg" & CType(lstDonadores.Items.Item(registro), DataRowView)("idDonador") 
 columna.FieldName = "reg" & CType(lstDonadores.Items.Item(registro), DataRowView)("idDonador") 

 'Cambiamos la apariencia
 columna.AppearanceCell.ForeColor = Drawing.Color.DarkRed

 'Asignamos propiedades
 columna.Visible = True
 columna.Caption = "Aporte de " & CType(lstDonadores.Items.Item(registro), DataRowView)("nombre")

 'Agregamos la columna al GridView no al GridControl
 GridView2.Columns.Add(columna)

 'Llenamos los campos con valores default
 For Each columnasAgregadas As DataRow In ds.Tables("Conceptos").Rows
  columnasAgregadas(columna.Name) = "0.00"
 Next
 
 'Refrescamos los Datos del GridControl y por tanto los veremos la informacion actualizada de
 'sus GridViews
 dtgActividades.RefreshDataSource()
Next













Ajustar columnas de un GridView al contenido de los camps desde código.

  gridView1.OptionsBehavior.AutoPopulateColumns = true; //'generar automaticamente las columnas a raíz del dataset             gridVie...