web-dev-qa-db-fra.com

Masquer une colonne GridView par son nom lors de l'exécution dans ASP.Net

Est-il possible d'afficher/masquer une colonne GridView au moment de l'exécution par nom?

Je peux le faire via l'index comme suit: 

gridReviews.Columns[4].Visible = false;

Cependant, j'aimerais faire ce qui suit:

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

Quelle est la meilleure façon de faire cela?

19
Sun

Vous pouvez utiliser le code suivant pour cela:

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

Vous pouvez accéder à la grille par nom de colonne indirectement si vous pouvez accéder aux données que vous avez utilisées pour lier la grille et que les colonnes de grille sont dans le même ordre que le datatable (et AutoGenerateColumns = false):

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