2013-08-06 127 views
2

我有我使用SQL查詢填充的DataTable。然後我填入GridViewDataTable如何隱藏數據表中的列

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

這工作正常,但現在我想隱藏第一列。當我加上這個:

gvAktivne.Columns[0].Visible = false; 

我得到IndexOutOfRange異常。 有沒有人有一個想法如何解決這個問題?

+0

能否請您確認,如果您的數據源具有有效數據Rows.Count> 0 –

+0

從刪除列DataTable實例綁定到GridView之前。 – erdinger

+0

在這裏回答:http://stackoverflow.com/a/3819831/542398 – Chains

回答

1

根據問題陳述,看起來你有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

這可能會爲你工作:

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