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!!










magnifica solucion.
abia estado buscando por un buen rato como ocultar determindas columnas, segun una opcion elegida…
hasta que encontre este bloq…
gracias
25/11/2008 17:30
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.
30/01/2009 8:40
tu codigo no sirve para nada
02/07/2010 19:26
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.
28/07/2010 17:02
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.
01/10/2010 19:31
buena!!!
funciona del uno.- se agradece
25/10/2010 17:57
gracias YRVIN ALVAREZ, tenia una sandalia en los ojos que no me dejaba ver mi error jajaj
17/11/2010 21:25
Me ha sido muy útil muchas gracias YRVIN
30/08/2011 21:48