我有
DataTable
,我使用 SQL 查询填充了它。然后我用 GridView
填充 DataTable
。
DataTable table = new DataTable();
table.Load(reader);
gvAktivne.DataSource = table;
gvAktivne.DataBind();
这工作正常,但现在我想隐藏第一列。当我添加这个时:
gvAktivne.Columns[0].Visible = false;
我遇到了
IndexOutOfRange
异常。
有人知道如何解决这个问题吗?
这可能对你有用:
DataTable data;
data.Columns[0].ColumnMapping = MappingType.Hidden;
根据问题陈述,您似乎已将
AutoGenerateColumns
设置为 true
。当您想要隐藏列时,这将会出现问题。您需要确保在DataBind()
之后发出该行代码,我会在
OnPreRender
中执行此操作。
protected override void OnPreRender(EventArgs e)
{
base.OnPreRender(e);
gvAktivne.Columns[0].Visible = false;
}
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
e.Row.Cells[0].Visible = false;
}
// Set DataSource to DataTable
this.dataGridViewIncome.DataSource = dataResult;
this.dataGridViewIncome.Columns[0].Visible = false;