c# - Ocultar una columna GridView por nombre en tiempo de ejecución en ASP.Net
hide asp.net-4.0 (3)
¿Es posible mostrar / ocultar una columna GridView en tiempo de ejecución por nombre?
Puedo hacerlo a través del índice de la siguiente manera:
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?
Puede acceder indirectamente a la vista de cuadrícula por nombre de columna si puede acceder a los datos que utilizó para vincular la vista de cuadrícula y las columnas de vista de cuadrícula están en el mismo orden que la tabla de datos (y AutoGenerarColumnas = falso):
//Make ID column invisible by column name
gv.Columns[dt.Columns[ID].Ordinal].Visible = false;
Puede usar el siguiente código para ello:
foreach (DataControlField col in gridReviews.Columns)
{
if (col.HeaderText == "Name")
{
col.Visible = false;
}
}
Siempre use (si puede) el nombre de columna mientras accede a la columna en gridview, datatable, etc. para fines de legibilidad. también será útil cuando reordena las columnas en gridview.
De lo contrario, ambas opciones están bien.