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
欢迎收藏和转载此博客中的博文,但是请注明出处,给作者一个与大家交流的空间。谢谢大家。
查看全文
相关阅读:
初赛Part2
数据结构
ES 匹配条件后分组聚合
SpringBoot starter 懒人包介绍
HTTP1.1中容易忽视的知识点
netcore 中间件浅析
spring boot请求参数验证
spring boot中统一对响应做处理
并发请求工具
抓apk中的https包(含破解https的SSL Pinning)
原文地址:https://www.cnblogs.com/lzhdim/p/1391759.html
最新文章
GMOJ 6809. 【2020.10.29提高组模拟】不难题
GMOJ 6838. 【2020.10.31提高组模拟】小j的组合
GMOJ 6808.【2020.10.29提高组模拟】easy
GMOJ 6807. 【2020.10.29提高组模拟】tree
JZOJ 6866. 【2020.11.16提高组模拟】路径大小差(点分治+树状数组)
回文树 回文自动机 PAM 入门学习详解
NOIP2020总结
NOIP 2020 T3 移球游戏(构造+分治)
NOIP 2020 T1 排水系统(拓扑排序)
NOIP2020游记(爆炸记)
热门文章
OI常见错误注意事项大汇总【不定期更新】
2020 CSP-S第二轮认证一等奖获奖名单
JZOJ 5395. 【NOIP2017提高A组模拟10.6】Count(拉格朗日插值)
JZOJ 3481. 【NOIP2013模拟10.23】君と彼女の恋(DP+组合数)
DP
二进制
图论
网络流学习笔记
$O(k^2)$ 求前缀 $k$ 次幂和(与长度无关)
初赛Part1
Copyright © 2011-2022 走看看