在ASP.Net中,如何在运行时通过列名隐藏GridView的列?

19

是否可以根据名称在运行时显示/隐藏GridView列?

我可以通过以下方式使用索引来实现:

gridReviews.Columns[4].Visible = false;

但是我想要做以下事情:

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

最好的方法是什么?


你想使用标题文本还是底层数据源中的列/属性名称? - David
你提出了一个很好的观点,这可能会阻止我。标题文本可能会根据网格数据而改变,因此我不能使用它。但是,我需要隐藏的列是一个未绑定到数据源且似乎没有ID的TemplateField。 - Sun
3个回答

19

你可以使用以下代码:

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

0
如果您可以访问用于绑定GridView的数据并且GridView列与DataTable相同(而且AutoGenerateColumns = false),则可以间接通过列名访问GridView:
//Make ID column invisible by column name
gv.Columns[dt.Columns[ID].Ordinal].Visible = false;

0
未经ASP.NET测试... 下面的代码适用于Windows Form解决方案... 由于此问题也是针对Windows Form关键字排名靠前,所以发布此内容。
my_gridview.Columns["ColumnName"].Visible = false;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接