none
Ocultar encabezados de columna si el datagridview está vacío RRS feed

  • Pregunta

  • Tengo un datagridview el cuál lleno con un datatable :

    Public Sub CargarDatos(NActividad As Integer, Estatus As Integer)
            Dim Actividad As New ActividadesDAL
            Dim dt As New DataTable()
            dt = Actividad.CargarActividades(NActividad, Estatus)
            dgActividades.DataSource = dt
            ' dgActividades.Columns(0).Visible = False
        End Sub

    Pero aunque el datagridview no contenga registros me sigue mostrando los encabezados de columna. ¿Que me faltaría agregar para ocultar las columnas si el datagridview no tiene registros?

    A lo mejor es muy simple, pero ya estuve buscando y no me sale.

    De antemano Gracias.



    martes, 1 de marzo de 2016 18:55

Respuestas

  • Ok, entonces lo único que debes de hacer es no establecer el DataSource. Antes de bindear el control pregunta por el contenido del DataTable, si este no contiene registros entonces no bindeas.

    If(dt.Rows.Count() > 0Then
    
    	dgActividades.DataSource = dt
    
    End If 



    Saludos desde Monterrey, Nuevo León, México!!!

    • Marcado como respuesta Ciao Manuel martes, 1 de marzo de 2016 20:05
    martes, 1 de marzo de 2016 19:46
  • Para relacionar los campos de tu origen de datos con las columnas del DataGridView simplemente tienes que indicar el nombre del campo en la propiedad DataPropertyName de la columna:


    Píldoras .NET
    Artículos, tutoriales y ejemplos de código .NET

    Píldoras JS
    Artículos, tutoriales y ejemplos de código JavaScript, HTML5, CSS3, ...

    • Marcado como respuesta Ciao Manuel martes, 1 de marzo de 2016 20:35
    • Desmarcado como respuesta Ciao Manuel martes, 1 de marzo de 2016 20:36
    • Marcado como respuesta Ciao Manuel martes, 1 de marzo de 2016 20:36
    martes, 1 de marzo de 2016 19:48

Todas las respuestas

  • Hola:

     Las columnas las generas en tiempo de diseño o se generan automaticamente con el bindeo al dataSource?


    Saludos desde Monterrey, Nuevo León, México!!!

    martes, 1 de marzo de 2016 19:31
  • Automáticamente cuando se llena el datagridview. No las tengo agregado en tiempo de diseño pero si estoy mal en esa parte explícame por favor. Aunque ya lo he intentado hacerlo en tiempo de diseño pero cuando se llena con el datatable no aparecen en su columna correspondiente.

    martes, 1 de marzo de 2016 19:39
  • Ok, entonces lo único que debes de hacer es no establecer el DataSource. Antes de bindear el control pregunta por el contenido del DataTable, si este no contiene registros entonces no bindeas.

    If(dt.Rows.Count() > 0Then
    
    	dgActividades.DataSource = dt
    
    End If 



    Saludos desde Monterrey, Nuevo León, México!!!

    • Marcado como respuesta Ciao Manuel martes, 1 de marzo de 2016 20:05
    martes, 1 de marzo de 2016 19:46
  • Para relacionar los campos de tu origen de datos con las columnas del DataGridView simplemente tienes que indicar el nombre del campo en la propiedad DataPropertyName de la columna:


    Píldoras .NET
    Artículos, tutoriales y ejemplos de código .NET

    Píldoras JS
    Artículos, tutoriales y ejemplos de código JavaScript, HTML5, CSS3, ...

    • Marcado como respuesta Ciao Manuel martes, 1 de marzo de 2016 20:35
    • Desmarcado como respuesta Ciao Manuel martes, 1 de marzo de 2016 20:36
    • Marcado como respuesta Ciao Manuel martes, 1 de marzo de 2016 20:36
    martes, 1 de marzo de 2016 19:48
  • Hola,

    Puedes probar esto, después de enlazar tu dt al DataSource.

    If (DataGridView1.Rows.Count < 0) Then
                DataGridView1.ColumnHeadersVisible = False
            End If
    Saludos.


    JC NaupaCrispín

    martes, 1 de marzo de 2016 19:50
  • Perfecto, solo falta un paréntesis jaja. ¿Por cierto cuál es el efecto de manejar los paréntesis?
    martes, 1 de marzo de 2016 20:12
  • Hola:

     Si disculpa, el código lo hice en un notepad.

     El efecto? pues solo el de agrupar, si tuvieras múltiples condiciones en un IF entonces por medio del uso del paréntesis vas agrupando conjuntos de condiciones que deben de validarse antes de pasar a la siguiente, nada mas.

     Yo los uso en Vb.Net solo por costumbre de C#.


    Saludos desde Monterrey, Nuevo León, México!!!

    martes, 1 de marzo de 2016 20:22
  • Muchas gracias José y fijaté que he estado viendo consultas desde hace mucho tiempo en el foro y he notado que haz mejorado mucho. Espero y eso ocurra conmigo. Saludos
    martes, 1 de marzo de 2016 20:38
  • jejeje realmente no soy Desarrollador dedicado, es un hobby y como tal le dedico un tiempo libre, de echo mi trabajo nada tiene que ver con desarrollo...pero como hobby trato siempre de ir mejorando y aprendiendo cosas nuevas.

    Saludos desde Monterrey, Nuevo León, México!!!


    martes, 1 de marzo de 2016 20:49
  • Quién lo diría, es que como dice Softtek me imaginé que es una empresa de desarrollo o algo así. Ya me imagino si fueras dedicado solo a el desarrollo, por cierto he estado viendo tu blog y tienes artículos muy útiles, gracias por eso y felicidades.
    martes, 1 de marzo de 2016 21:06