我有一个带有BoundColumns的GridView。前两列是隐藏的,我想使用gridView1.Rows [0] .Cells [0] .Text和gridView1.Rows [0] .Cells [1] .Text分别访问它们,我得到一个空字符串。当列更改为可见时,我可以访问这些值。 我已经尝试将列宽更改为零,正如其他一些论坛所建议的那样,但从未修复过这个问题。是否有任何人对我可能做错的事情有任何指示。
答案 0 :(得分:7)
如果列是DataKeyNames
集合的一部分,那么您应该从GridView.DataKeys[index].value
属性中获取其值,如GridViewGuy site所示。
但是,如果它们不是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;
答案 1 :(得分:1)
这是ASP.NET中的典型行为,Visible = false,只能使控件在代码隐藏中可用。
最好的方法是在该列上应用以下样式:
display:'none'
答案 2 :(得分:1)
将css类hiddencol
添加到要隐藏的列中。将hiddencol
课程添加到您的CSS中,您就可以开始了。
您仍然可以访问代码中的列,但它不会显示在您的页面上。
<asp:BoundField DataField="Site_ID" ItemStyle-CssClass="hiddencol" />
.hiddencol
{
display: none;
}