AddThis Social Bookmark Button
AddThis Feed Button
Bio
Mi avatar Blog de un pequeño informaticú y sus ocurrencias y pequeñas notas de ayuda.
IMGP9800
IMGP9799
IMGP9798
IMGP9797
IMGP9796
Categorias
links
27
Ago

Ocultar columnas de un GridView

(QR Code)

Despues de ver esta entrada (http://id4.es/blogs/indigo/archive/2007/08/09/ocultar-columnas-de-un-gridview.aspx) sobre como ocultar columnas de un GridView si que desaparezcan los datos. He estado realizando unas pruebas
y la solucion es mas simple de la que se plantea.

Normalmente nosotros hacemos en ASPNET:

// Creamos las columnas que sea.. bla bla bla .. el diseño bla bla

grid.Columns[0].Visible = false;

// Vinculamos los datos
grid.DataSource = dtt;
grid.DataBind();

Con esto el DataBind no cargara los datos para las columnas que sean Visible=False

Lo mas sencillo para resolver este problema es simplemente, cargar todo el GridView y una vez que tenemos los datos, especificar cuales no queremos mostrar


// Creamos las columnas que sea.. bla bla bla .. el diseño bla bla

grid.DataSource = dtt;
grid.DataBind();
grid.Columns[0].Visible = false;

Simplemente cambiando el orden del DataBind() con respecto a la asignacion de las columnas no visibles hacemos que estas sean no visibles con sus datos.

Que aprobeche!! :P


8 Comentarios

  • sesma Dice:

    magnifica solucion.
    abia estado buscando por un buen rato como ocultar determindas columnas, segun una opcion elegida…
    hasta que encontre este bloq…
    gracias


  • Albert Dice:

    Estas soluciones no valen cuando tiene varias páginas el Grid, ya que se pierde el contenido de la columna oculta. Con lo cual no me sirve.


  • paolo pecho Dice:

    tu codigo no sirve para nada


  • iOskr Dice:

    La solución funciona… Gracias. Para Albert cuando tienes varias páginas lo único que tienes que hacer es recargar el grid grid.DataSource = dtt;
    grid.DataBind();
    grid.Columns[0].Visible = false;

    y funciona. Espero y te sirva.


  • YRVIN ALVAREZ Dice:

    bien si funciona, pero agregare algo mas, antes de volver a llenar el grid con el datasource tienes que mostar la columna que pusiste false. Sino haces esto simplemente los datos q envies a esa columna no se llenaran.

    Para ser mas claro despues de :

    grid.DataSource=dtt;
    grid.DataBind();
    grid.Columns[0].Visible = false;

    Y si luego vas a volver a cargar el gridview (se produce un postback):

    grid.Columns[0].Visible = true;
    grid.DataSource=dtt;
    grid.DataBind();
    grid.Columns[0].Visible = false;

    Haces esto porque antes haz ocultado la columna (visible=false) y para q esa columna se vuelva a cargar de datos tienes q poner (visible=true) y luego la vuelves a ocultar para que no se muestre.
    Suerte para aquellos q dicen q no funciona.


  • Gabriel Dice:

    buena!!!

    funciona del uno.- se agradece


  • CCC Dice:

    gracias YRVIN ALVAREZ, tenia una sandalia en los ojos que no me dejaba ver mi error jajaj


  • Sonia Dice:

    Me ha sido muy útil muchas gracias YRVIN


Quieres dejar un comentario?