2015-02-12 54 views
0

我想隐藏gridview coumn [1]。但它显示错误,如如何隐藏GridView Coumn [1]?

Index was out of range. Must be non-negative and less than the size of 
the collection parameter name:index. 

我该如何执行此操作。我在互联网上冲浪很多,但我没有得到适当的解决方案。我的代码我在下面提到。它是一个基于Web的平台。

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!IsPostBack) 
    { 
     qry = "select Id,Name,Age,Sex,Dob from Sample where Code='123'; 
     dr = conn.query(qry); 
     GridView1.DataSource = dr; 
     GridView1.DataBind(); 
     GridView1.Columns[1].Visible = false; 
     } 
} 

以同样的方式,列[0]被隐藏。 我的网格视图是

<asp:GridView ID="GridView1" HorizontalAlign="Center" runat="server" 
     onrowcommand="GridView1_RowCommand"> 
    <Columns> 
     <asp:TemplateField> 
      <ItemTemplate> 
      <asp:LinkButton ID="LinkButton1" runat="server" 
        CommandArgument='<%# Eval("ID")%>'>Delete</asp:LinkButton> 
      </ItemTemplate> 
     </asp:TemplateField> 
    </Columns> 
</asp:GridView> 
+0

哪里是塔1,你的GridView? – 2015-02-12 04:11:17

+0

@Şhȇkhaṝ,column1的值将从数据库中添加(来自查询结果) – 2015-02-12 04:15:04

回答

1

您需要使用RowDataBound隐藏的列。您可以使用下面的代码

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

类似问题上的SO

  1. GridView Hide Column by code
+0

我想在页面加载时做到这一点 – 2015-02-12 03:56:36

+0

这隐藏了单个单元格,而不是整个列,所以它不是*完全*要求什么,是它? – Eilon 2015-02-12 03:56:39

+0

@Eilon行数据绑定将针对每行而不是单个单元调用。 – 2015-02-12 03:59:38