Ocultar una columna de un DataGrid

2181 vistas

Suponemos que el DataGrid está asociado a un DataTable. Tendremos que seguir los siguientes pasos:

  • Crear un DataGridTableStyle para la tabla
  • Añadir el style al DataGrid
  • Personalizar el style para quitar el style de la columna (DataGridColumnStyle) deseada



vbnet
  1. ' table es un DataTable
  2. dataGrid1.DataSource = table
  3.  
  4. ' creamos una tabla de estilos que nos permita ocultar una o más columnas
  5. Dim tableStyle As DataGridTableStyle = New DataGridTableStyle
  6.  
  7. ' IMPORTANTE: tenemos que asociar el nombre de la tabla de estilo
  8. tableStyle.MappingName = table.TableName
  9.  
  10. ' los DataGridColumnStyle se crearán automáticamente al adjuntar el style al DataGrid
  11. ' en función de la tabla especificada en tableStyle.MappingName
  12. dataGrid1.TableStyles.Add(tableStyle)
  13.  
  14. ' suponemos que la tabla tiene una columna que se llama "hidden"
  15.  
  16. ' definimos una referencia hacia la columna a ocultar
  17. Dim hiddenColStyle As DataGridColumnStyle = tableStyle.GridColumnStyles("hidden")
  18.  
  19. ' quitando la columna de los styles de columnas, ésta ya no aparecerá
  20. tableStyle.GridColumnStyles.Remove(hiddenColStyle)



Nota: si guardamos una referencia al style de la columna suprimida(hiddenColStyle), podemos mostrarla nuevamente.



vbnet
  1. tableStyle.GridColumnStyles.Add(hiddenColStyle)