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
欢迎收藏和转载此博客中的博文,但是请注明出处,给作者一个与大家交流的空间。谢谢大家。
查看全文
相关阅读:
同样的请求img代码,单个html文件和项目中的html文件请求结果不一样
CSS中A标签断字不换行问题(基础知识)
句柄无效。 (异常来自 HRESULT:0x80070006 (E_HANDLE))
Ext.Net 控件FileUploadField上传文件
500内部服务器错误。你查找的资源存在问题,因而无法显示
WebService 错误:无法加载协定为xxx的终结点配置部分,因为找到了该协定的多个终结点配置
SyntaxError: unterminated string literal
servlet入门
myeclipse视图布局恢复
JavaWEB开发入门
原文地址:https://www.cnblogs.com/lzhdim/p/1391759.html
最新文章
Dynamics CRM2013 Lookup Filtering using addCustomFilter
Dynamics CRM2013 Server2012下部署ADFS和IFD遇到的问题
识别你的ADFS是什么版本的(Which version of ADFS is running)
Dynamics CRM 系统自定义部分的语言翻译
Dynamics CRM OData 查询超过50条记录的数据(Retrieving More than 50 records using OData)
VMware中安装系统提示没有可用的映像(No image available)
Dynamics CRM Form表单中通过javascript抓取触发change事件字段的属性名
hadoop集群安装故障解决
hashicorp/consul
hadoop集群安装无密码登录
热门文章
scp命令详解
大数据——sparksql
sqoop
架构
几个主流java连接池
quartz
corntab
Win7下IIS发布网站遇到 编译器错误消息: CS0016: 未能写入输出文件“c:WindowsMicrosoft.NETFramework64v4.0.30319Temporary
SQL 中查询某个字段数据匹配字符不存在
SQL SERVER数据库跨服务器数据导入
Copyright © 2011-2022 走看看