我有一个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;
我得到错误索引超出范围。必须是非负数且小于集合的大小。 有任何想法吗?
答案 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属性”