我有一个带有BoundColumns的GridView。前两列是隐藏的,我想使用gridView1.Rows [0] .Cells [0] .Text和gridView1.Rows [0] .Cells [1] .Text访问它们,但是我得到了一个空字符串。当这些列变为可见时,我就可以访问值了。 我尝试将列宽更改为零,如一些其他论坛上建议的那样,但这并没有解决问题。有人能指出我可能做错了什么吗?
我有一个带有BoundColumns的GridView。前两列是隐藏的,我想使用gridView1.Rows [0] .Cells [0] .Text和gridView1.Rows [0] .Cells [1] .Text访问它们,但是我得到了一个空字符串。当这些列变为可见时,我就可以访问值了。 我尝试将列宽更改为零,如一些其他论坛上建议的那样,但这并没有解决问题。有人能指出我可能做错了什么吗?
DataKeyNames
集合的一部分,那么您应该从GridView.DataKeys[index].value
属性中获取它们的值,正如GridViewGuy站点所示。DataKeyNames
集合的一部分,则可以使用以下技巧来确保该值在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;
将CSS类hiddencol
添加到您想要隐藏的列中。将hiddencol
类添加到您的CSS中,然后您就可以开始了。
您仍然可以在代码后台访问该列,但它不会显示在页面上。
<asp:BoundField DataField="Site_ID" ItemStyle-CssClass="hiddencol" />
.hiddencol
{
display: none;
}
这是ASP.NET中的典型行为,Visible = false只会在代码后端中使控件可用。
对于此问题,最好的解决方法是在该列上应用以下样式:
display:'none'