隐藏多个Gridview行

时间:2015-05-06 20:22:05

标签: c# asp.net gridview

我有一个数据绑定网格,自动生成的列设置为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

我会超出范围异常。有没有其他方法可以解决这个问题?

提前致谢

2 个答案:

答案 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>