如何隐藏数据表中的列

dai*_*dai 4 .net c# asp.net gridview

我有DataTable使用 SQL 查询填充的内容。然后我GridViewDataTable.

DataTable table = new DataTable();
table.Load(reader);
gvAktivne.DataSource = table;
gvAktivne.DataBind();
Run Code Online (Sandbox Code Playgroud)

这工作正常,但现在我想隐藏第一列。当我添加这个时:

gvAktivne.Columns[0].Visible = false;
Run Code Online (Sandbox Code Playgroud)

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

小智 6

这可能对您有用:

DataTable data;
data.Columns[0].ColumnMapping = MappingType.Hidden;
Run Code Online (Sandbox Code Playgroud)


Mik*_*oud 1

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

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