Ist es möglich, eine GridView-Spalte zur Laufzeit nach Namen anzuzeigen/auszublenden?
Ich kann es über den Index wie folgt machen:
gridReviews.Columns[4].Visible = false;
Ich möchte jedoch Folgendes tun:
gridReviews.Columns["Name"].Visible = false;
Was ist der beste Weg dies zu tun?
Sie können den folgenden Code dafür verwenden:
foreach (DataControlField col in gridReviews.Columns)
{
if (col.HeaderText == "Name")
{
col.Visible = false;
}
}
Sie können auf den Gridview indirekt über den Spaltennamen zugreifen, wenn Sie auf die Daten zugreifen können, die Sie zum Binden des Gridview verwendet haben, und die Gridview-Spalten in derselben Reihenfolge wie die Datentabelle (und AutoGenerateColumns = false) angeordnet sind:
//Make ID column invisible by column name
gv.Columns[dt.Columns[ID].Ordinal].Visible = false;