2012-06-13 113 views
18

¿Es posible mostrar/ocultar una columna de GridView en tiempo de ejecución por su nombre?Ocultar una columna de GridView por su nombre en tiempo de ejecución en ASP.Net

puedo hacerlo a través del índice como el siguiente:

gridReviews.Columns[4].Visible = false; 

Sin embargo, me gustaría hacer lo siguiente:

gridReviews.Columns["Name"].Visible = false; 

Cuál es la mejor manera de hacer esto?

+0

¿usted está queriendo utilizar el texto del encabezado o el nombre de la columna/propiedad en el origen de datos subyacente? – David

+0

Usted plantea un buen punto que podría detenerme. El texto del encabezado puede cambiar según los datos de la cuadrícula, así que no puedo usar eso. Sin embargo, la columna que necesito ocultar es un TemplateField que no está vinculado a un origen de datos y no parece tener un ID. – Sun

Respuesta

17

Se puede utilizar el siguiente código para ello:

foreach (DataControlField col in gridReviews.Columns) 
     { 
      if (col.HeaderText == "Name") 
      { 
       col.Visible = false; 
      } 
     } 
0

Se puede acceder al gridview por nombre de columna indirectamente si puede acceder a los datos que se utiliza para unir el gridview y las columnas de GridView están en el mismo orden como la tabla de datos (y AutoGenerateColumns = false):

//Make ID column invisible by column name 
gv.Columns[dt.Columns[ID].Ordinal].Visible = false; 
Cuestiones relacionadas