我有一个数据绑定网格,自动生成的列设置为true,因为它使用带有存储过程的sql数据源。我找到了隐藏一栏
的方法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 :(得分: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
列,请在gridview的OnRowDataBound
事件中使用此代码
protected void gridView_OnRowDataBound (object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType != DataControlRowType.Pager) { e.Row.Cells[1].Visible = false; }
}
答案 1 :(得分:0)
你能试试<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">
并在需要时使用Temp Field
<asp:TemplateField>
<ItemTemplate>
<%# DataBinder.Eval(Container, "DataItem.ID_Dodavatel") %>
</ItemTemplate>
</asp:TemplateField>