当一个列的可见性设置为false,控件不会再将数据绑定到该列中,所以你尝试得到隐藏列的值时,只能得到一个空的字符串。
所以有一个解决办法,就是在设置GridView时,先将列设置为可见。然后:
在RowCreated事件中书写如下代码
void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow ||
e.Row.RowType == DataControlRowType.Header)
{
e.Row.Cells[0].Visible = false; //如果想使第1列不可见,则将它的可见性设为false
}
//可以根据需要设置更多的列
}
因为在RowCreated事件(隐藏)在绑定时候发生,所以这样就即能将数据绑定到列上,又隐藏了该列.所以可以访问到隐藏列的值。
这样,我们就可以通过使用
string temp = gridview1.SelectedRow.Cells[列号].Text.ToString();
来获取选择的行的指定列的值了,但是需要注意的是:当数据源中该字段为NULL或“”时,这样取出来的值会是“ ”。