我有一个带有BoundColumns的GridView.前两列是隐藏的,我想使用gridView1.Rows [0] .Cells [0] .Text和gridView1.Rows [0] .Cells [1] .Text分别访问它们,我得到一个空字符串.当列更改为可见时,我可以访问这些值.我已经尝试将列宽更改为零,正如其他一些论坛所建议的那样,但从未修复过这个问题.有没有人对我可能做错了什么有任何指示.
如果列是DataKeyNames
集合的一部分,那么您应该从GridView.DataKeys[index].value
属性中获取它们的值,如GridViewGuy站点上所示.
但是,如果它们不是DataKeyNames
集合的一部分,那么您可以使用以下hack来确保该值在ViewState中保持不变(与ASP.NET 2+中隐藏字段的正常行为相反)
GridView1.DataSource = myDataSource; // Set the column visibility to true before Databinding GridView1.Columns[0].Visible = true; GridView1.Columns[1].Visible = true; GridView1.DataBind() // Set the column visibility to false after Databinding GridView1.Columns[0].Visible = false; GridView1.Columns[1].Visible = false;