如何获取GridView隐藏列的值

在使用GridView控件时候,往往需要对某一列进行隐藏,而在后台代码中,有时却又需要这个隐藏列的值来进行一些别的操作,比如我就遇到一个实际问题:控件GridView的ID为GV,其中某一列X(X为索引号)的所有单元格的背景颜色,需要根据另一列Y(Y为索引号)的数值来确定,而Y这一列是我不想让用户看到的,所以需要隐藏Y列,可是问题出来了,用如下方式设置了列的不可见:

GV.Columns[Y].Visible=false;

却发现之后在取这一列中单元格的值时,始终是为空,也就是说这种隐藏方式后,无法访问单元格的数值了。

GridView是Asp.net 2.0中增加了一个新的数据绑定控件,其目的用来取代Asp.net1.x中的DataGrid控件,以前用DataGrid时候,上述问题是不存在的,即使设置了列的隐藏,也可以进行访问。通过网上找一些类似的问题,可以知道,如果把某列的Visible属性设false,则不会进行数据绑定,也就是说无法直接从GridView中取到这个列内的数值。因此,这就需要既要用别的方式来隐藏列,又要取到隐藏列的值。


最好的解决方法:

事实上,微软所作的考虑更加周全。针对GridView无法提供行主键的问题,它提供了两个全新的属性:DataKeys和DataKeyNames!其SDK中的描述如下: 
DataKeyNames:获取或设置一个数组,该数组包含了显示在 GridView 控件中的项的主键字段的名称。 
DataKeys:获取一个 DataKey 对象集合,这些对象表示 GridView 控件中的每一行的数据键值。

也就是说,利用DataKeyNames,可以设置一个多个列,用于作为行的主键字段(这里用主键其实不太合适,因为值时允许重复的),之后利用DataKeys旧可以访问这些列的值了。因此,利用这两个新属性,我们就可以继续使用利用列的Visible属性设置来隐藏列的同时,又可以访问隐藏列的值了。

DataKeys和DataKeyNames设置好后,使用以下语句获取选择行的隐藏列值。

GV.SelectedDataKey.Value.ToString();



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值