如何隐藏数据表中的列

时间:2013-08-06 16:11:27

标签: c# asp.net .net gridview

我使用SQL查询填充了DataTable。然后我用GridView填充DataTable

DataTable table = new DataTable();
table.Load(reader);
gvAktivne.DataSource = table;
gvAktivne.DataBind();

这很好但现在我想要隐藏第一列。当我添加这个:

gvAktivne.Columns[0].Visible = false;

我收到IndexOutOfRange个例外。 有人知道如何解决这个问题吗?

3 个答案:

答案 0 :(得分:2)

这可能对您有用:

DataTable data;
data.Columns[0].ColumnMapping = MappingType.Hidden;

答案 1 :(得分:1)

根据问题陈述,您显示AutoGenerateColumns设置为true。当您想要隐藏列时,这将成为问题。您需要确保在DataBind() 之后发出代码,我会在OnPreRender中执行此操作。

protected override void OnPreRender(EventArgs e)
{
    base.OnPreRender(e);
    gvAktivne.Columns[0].Visible = false;
}

答案 2 :(得分:0)

试试这个:

 protected void  GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
 {
      e.Row.Cells[0].Visible = false;
 }