似乎是一个普遍的问题。
我正试图隐藏我的 GridView 的一列。我已经读到,简单地将列设置为“visible = false”是行不通的,因为我正在自动生成我的数据。
目前我的代码是这样的:
protected void Page_Load(object sender, EventArgs e)
{
bind();
if (GridView1.Columns.Count > 0)
GridView1.Columns[0].Visible = false;
else
{
GridView1.HeaderRow.Cells[0].Visible = false;
foreach (GridViewRow gvr in GridView1.Rows)
{
gvr.Cells[1].Visible = false;
}
}
}
'if' 语句将不会触发,正如我所说的那样,我正在自动生成数据。通过上面的循环,我可以隐藏列的标题文本,但想隐藏整个列,同时仍然能够访问隐藏的数据。
最佳答案
如何在控件的生命周期后期(当 Columns 集合已填充时)执行此操作:
protected void GridView1_PreRender(object sender, EventArgs e)
{
if (GridView1.Columns.Count > 0)
GridView1.Columns[0].Visible = false;
else
{
GridView1.HeaderRow.Cells[0].Visible = false;
foreach (GridViewRow gvr in GridView1.Rows)
{
gvr.Cells[1].Visible = false;
}
}
}
注意:您需要将 OnPreRender="GridView1_PreRender"
添加到您的 GridView 标记中。
关于c# - 隐藏 GridView ID 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15210151/