zoukankan
html css js c++ java
GridView中使用DataKeyNames存储数据键值
很多时候我们需要在
GridView的
RowCommand
之类的事件中需要获取当前行的一些关联性的数据值。但这些数据值又没有直接体现在GridView的列中。这个时候该怎么办呢?
有同学喜欢用隐藏列的方式,把需要使用但不显示的字段绑定到此列上,同时设置列宽为0或不显示,使用时可以用常规的取某行某列的方式来获取数据。
但是在Framework 2.0中,我们可以采用DataKeyNames的方式来获取此类数据。
代码示例:
(前台)
<
asp:GridView ID
=
"
GridView1
"
runat
=
"
server
"
DataKeyNames
=
"
Grup
"
OnRowCommand
=
"
GridView1_RowCommand
"
AutoGenerateColumns
=
"
False
"
>
<
Columns
>
<
asp:TemplateField
>
<
ItemTemplate
>
<
asp:Label ID
=
"
Label1
"
runat
=
"
server
"
Text
=
'
<%#Eval("GrupName") %>
'
></
asp:Label
>
</
ItemTemplate
>
</
asp:TemplateField
>
<
asp:ButtonField Text
=
"
按钮
"
/>
</
Columns
>
</
asp:GridView
>
Grup
为我们想使用但不需要显示的列。(如果有多个字段,使用逗号分开)
(后台)
protected
void
Page_Load(
object
sender, EventArgs e)
{
if
(
!
IsPostBack )
{
DataTable dt
=
new
DataTable();
dt.Columns.Add(
"
Grup
"
);
dt.Columns.Add(
"
GrupName
"
);
dt.Rows.Add(
new
object
[]
{
0
,
"
营业部
"
}
);
dt.Rows.Add(
new
object
[]
{
1
,
"
市场部
"
}
);
this
.GridView1.DataSource
=
dt;
this
.GridView1.DataBind();
}
}
protected
void
GridView1_RowCommand(
object
sender, GridViewCommandEventArgs e)
{
//
获取当前行索引
int
index
=
Convert.ToInt32(e.CommandArgument);
//
取出当前行数据键值对象中的值
string
strGrup
=
((GridView)sender).DataKeys[index].Values[
"
Grup
"
].ToString();
}
顺便补充一句。
如果你使用模板列中放置按钮控件的方式,要想在按钮事件中获取这种字段值就更简单了。
只需要在按钮的CommandArgument属性设置为想绑定的字段,如:
<
asp:TemplateField
>
<
ItemTemplate
>
<
asp:Button
ID
="Button2"
runat
="server"
OnClick
="Button2_Click"
Text
="Button"
CommandArgument
='
<%#Eval("Grup") %
>
' />
</
ItemTemplate
>
</
asp:TemplateField
>
按钮事件中如是写:
protected
void
Button2_Click(
object
sender, EventArgs e)
{
string
strGrup
=
((Button)sender).CommandArgument.ToString();
}
Austin Liu 刘恒辉
Lzhdim Group's Chairman,Project Manager and Software Designer
E-Mail:
lzhdim@163.com
Blog:
http://lzhdim.cnblogs.com
欢迎收藏和转载此博客中的博文,但是请注明出处,给作者一个与大家交流的空间。谢谢大家。
查看全文
相关阅读:
关于JS系列题材
《项目整体管理》提纲
Linux使用java -jar启动会自动停止问题(如何使jar在linux上一直运行)
linux系统下查看端口被占用情况,并且杀掉进程
CentOS7.X 下安装MySQL8.0(附文件)
CentOS7.x 防火墙命令总结
Spring Data Elasticsearch自定义方法的各类约定、写法!
Mysql8.0数据库url时区问题,时间对应不上
SpringBoot整合WebMagic一次踩坑记录:java.lang.IncompatibleClassChangeError: null
HttpClient抓取数据出现java.net.URISyntaxException: Expected authority at index 8: https://
原文地址:https://www.cnblogs.com/lzhdim/p/1391759.html
最新文章
Struts2拦截器
延迟加载和抓取策略
hibernate映射(单向双向的一对多、多对一以及一对一、多对一(转)
Hibernate 缓存
cd命令 目录切换
打开文件、保存、关闭文件
vi 和vim 的区别
在tp3.2.3里面配置cli执行计划任务并且在linux里面添加计划任务
php变量的作用域
php对变量命名的规范
热门文章
php将数据转换成json
php序列化和反序列化
php去空格
php对大小写的区分
.net修炼之道PPT课件下载
程序员接私活经验谈[转]
嵌入式Linux相关代码下载
WinPcap代码下载
MongoDB成为首位10亿美元初创,功臣可归功于Oracle?
《微博营销》
Copyright © 2011-2022 走看看