如何隐藏数据表中的列

问题描述 投票:0回答:4

我有

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

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

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

gvAktivne.Columns[0].Visible = false;

我遇到了

IndexOutOfRange
异常。 有人知道如何解决这个问题吗?

c# asp.net .net gridview
4个回答
9
投票

这可能对你有用:

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

2
投票

根据问题陈述,您似乎已将

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

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

0
投票
试试这个:

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

0
投票
我收到“索引超出范围”错误,然后我意识到我必须先将 DataGridView.DataSource 设置为 DataTable:

// Set DataSource to DataTable this.dataGridViewIncome.DataSource = dataResult; this.dataGridViewIncome.Columns[0].Visible = false;
    
© www.soinside.com 2019 - 2024. All rights reserved.