隐藏多个 Gridview 行

Hide Multiple Gridview rows

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

我会得到一个超出范围的异常。有其他方法可以处理这个问题吗?

提前致谢

您可以在 button_click 事件或 gridviewOnDataBound 事件中写入下一行,这发生在绑定 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; }
}

你能试试吗<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">

并在需要时使用临时字段

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