注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

幽狼De博客

记录成长中的点点滴滴

 
 
 

日志

 
 

后台获取 GridView 行数据的常见两种方式  

2010-05-28 14:18:17|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

我们在用asp.net GridView控件时经常需要在后台读取一行的数据,常见的方式有以下几种:

1.在后台RowCommand 事件中先取得行号,再根据行号去访问各列的值,具体方法可參考:http://www.cnblogs.com/kuitar/archive/2009/04/11/1433777.html

2.通过CommandArgument参数进行 传递,具体法 如下:

在页面代码中,CommandArgument='<%#Eval("ID")+","+Eval("Name")+","+Eval("Age")%>'

后台取值方法如下: object[] arguments = e.CommandArgument.ToString().Split(',');

操作很简单,现在说一下我理解的原理。

CommandArgument是 一个object类型的属性,要传多个参数只能靠字符串拼接然后在后台拆分。

还好,asp.net Eval方法很容易完成这样的功能,在CommandArgument='& lt;%#Eval("ID")+","+Eval("Name")+","+Eval("Age")%>'中

执行过程如下,先分别对Eval进行绑定,然后把<%# %>里的东西ToString一下,再封装成object进行递。

不信你可以试试用这种方式CommandArgument='<%#Eval("ID"),Eval("Name"),Eval("Age")%>'

执行时就会报错 “ToString”方法没有采用“4”个参数的重载,为什么了?

按上面的原理,假如 id=1,name=kuitar,age=24. 则后一种方式<%# %>里的内容为"1","kuitar","25"
现在ToString("1","kuitar","25",''可能还有个另外的参数, 呵呵'),显然会出错。

而用第一种方式则不一样,绑定后<%# %>里的内容为"1,kuitar,25",因为+号起了作用。这时候ToString应该没有问题了。

转载:
www.cnblogs.com/kuitar/archive/2009/07/03/1516163.html

  评论这张
 
阅读(662)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017