2015-05-06 93 views
0

我有一個數據綁定網格與自動生成的列設置爲true,因爲它使用SQL數據源與存儲過程。我已經找到一種方法通過隱藏多個Gridview行

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

我想隱藏整列完全

躲一列,但我怎麼隱藏多個列。說我有10列,並希望隱藏第2,5和7列:

e.Row.Cells[1].Visible = false 
e.Row.Cells[4].Visible = false 
e.Row.Cells[6].Visible = false 

我會得到一個超出範圍的異常。有沒有其他方法來處理這個問題?

在此先感謝

+0

想要將所有列隱藏起來,還是隻想隱藏特定行? –

+0

列全部在一起 –

+0

難道你不能隱藏列從開始? Like 'e.Row.Cells [6] .Visible = false; e.Row.Cells [4] .Visible = false;' –

回答

1

你可以寫在button_click事件或OnDataBound事件gridview的,當GridView被綁定恰好下一行。

protected void GridView_OnDataBound(object sender, EventArgs e) 
{ 
    GridView.Columns[1].Visible = false; 
    GridView.Columns[4].Visible = false; 
    GridView.Columns[6].Visible = false; 
} 

編輯

對於autogenerated列,使用此代碼在您的OnRowDataBound事件你的GridView的

protected void gridView_OnRowDataBound (object sender, GridViewRowEventArgs e) 
{ 
    if (e.Row.RowType != DataControlRowType.Pager) { e.Row.Cells[1].Visible = false; } 
} 
0

你可以嘗試

和使用溫度場,當您需要

<asp:TemplateField> 
    <ItemTemplate> 
     <%# DataBinder.Eval(Container, "DataItem.ID_Dodavatel") %> 
    </ItemTemplate> 
</asp:TemplateField>