如何获取GridView隐藏列的值
2013-06-24 10:35
218 查看
在使用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();
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();
相关文章推荐
- 如何在asp.net中获取GridView隐藏列的值?
- 如何获取GridView中隐藏列的值,GridView中隐藏列获取值的问题
- 如何获取GridView隐藏列的值
- 如何在asp.net中获取GridView隐藏列的值?
- How to get Hidden Column Value in GridView(ASP.net GridView如何获取隐藏列的值)
- 如何在asp.net中获取GridView隐藏列的值?
- gridview中嵌套checkbox,如何在选中事件中获取当前行的索引值
- Ext.Button的禁用 extjs 获取一个panel 如何禁用bbar中的按钮 或者将它隐藏掉??
- gridView里如何添加详情按钮,点击它可以转到另一页,以获取该行的详细信息。
- 获取GridView隐藏列值
- GridView 如何获取当前行的索引值
- 随笔:如何获取GridView中的TextBox中的值
- 获取GridView隐藏列值
- GridView获取隐藏列值的详细总结
- 如何在GridView的RowCommand事件中获取当前的GridViewRow
- GridView的模版列中加入按钮,触发按钮事件后,如何获取该行的某个值?
- gridview中如何获取当前行的索引值
- 【转】ASP.net2。0中解决无法获取 GridView 隐藏列值问题
- gridview如何隐藏一列数据,但又可以使用这列数据
- 【转】ASP.net2。0中解决无法获取 GridView 隐藏列值问题