隐藏Gridview列但获得价值

时间:2011-08-31 16:20:09

标签: c# asp.net gridview

我有一个GridView,我在Page_Load()上对其进行了数据处理。我想隐藏一个列,但我仍然想要访问它。我试过了

       SqlCommand sqlCommand = new SqlCommand("select name,surname,id from test", sqlConnection);
        sqlConnection.Open();
        SqlDataReader reader = sqlCommand.ExecuteReader();         
        GridView1.DataSource = reader;          
        GridView1.DataBind();
GridView1.columns[1].visible= False;

我得到错误索引超出范围。必须是非负数且小于集合的大小。 有任何想法吗?

2 个答案:

答案 0 :(得分:2)

使用数据键。

<asp:GridView ID="GridView1" runat="server" DataKeyNames="ID" ...>
   <Columns>
       <asp:BoundField HeaderText="Name" DataField="Name" />
       <asp:BoundField HeaderText="Surname" DataField="Surname" />
   </Columns>
</asp:GridView>

添加数据键后,您可以访问以下值:

 //returns the id at the first row
 int ID = GridView1.DataKeys[0]["ID"] as int;

答案 1 :(得分:0)

你检查过这个:http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.datacontrolfield.visible.aspx:“ ..将字段名称添加到数据绑定控件的DataKeyNames属性