Saltar al contenido

¿Cómo ocultar columnas en ASP.NET GridView con columnas generadas automáticamente?

Luego de mucho luchar hemos dado con el resultado de esta interrogante que muchos de nuestros usuarios de este sitio han presentado. Si quieres compartir alguna información puedes compartir tu información.

Solución:

Intenta poner el e.Row.Cells[0].Visible = false; dentro de RowCreated evento de su grilla.

protected void bla_RowCreated(object sender, GridViewRowEventArgs e)

    e.Row.Cells[0].Visible = false; // hides the first column

De esta manera, oculta automáticamente toda la columna.

No tienes acceso a las columnas generadas a través de grid.Columns[i] en tu gridview DataBound evento.

La colección Columns solo se completa cuando AutoGenerateColumns=falsey usted mismo genera manualmente las columnas.

Una buena solución para esto es llenar dinámicamente la colección Columns usted mismo, antes de establecer la propiedad DataSource y llamar a DataBind().

Tengo una función que agrega manualmente las columnas según el contenido de DataTable que quiero mostrar. Una vez que hice eso (y luego configuré DataSource y llamé a DataBind(), puedo usar la colección Columns y el valor Count es correcto, y puedo activar y desactivar la visibilidad de la columna como inicialmente quería).

static void AddColumnsToGridView(GridView gv, DataTable table)

    foreach (DataColumn column in table.Columns)
    
        BoundField field = new BoundField();
        field.DataField = column.ColumnName;
        field.HeaderText = column.ColumnName;
        gv.Columns.Add(field);
    

Nota: Esta solución solo funciona si su GridView las columnas se conocen de antemano.

Parece que estás usando un GridView con AutoGenerateColumns=true, que es el predeterminado. recomiendo configurar AutoGenerateColumns=false y agregando las columnas manualmente:


    
        
        
        
    

Y solo incluye un BoundField para cada campo que desee que se muestre. Esto le dará la mayor flexibilidad en términos de cómo se muestran los datos.

Si tienes algún recelo o disposición de avanzar nuestro escrito puedes añadir una explicación y con deseo lo analizaremos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *