CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

请问:在Repeater的OnItemCommand事件中如何获取对应的那行记录的值?

楼主spoky(夜游魂)2005-08-01 01:13:04 在 .NET技术 / ASP.NET 提问

在<ItemTemplate>中有一个linkbutton,<asp:LinkButton   Runat="server"   CommandName="downs"   ><%#((PostInfo)Container.DataItem).FileName%></asp:LinkButton>  
  ,然后在repeater的OnItemCommand事件中想通过e.Item.DataItem来获取值,但是跟踪时发现提示“未定义的值”,结果取不到对应那行的记录。  
   
  但是我在一些例子中发现他们使用((DataRowView)e.Item.DataItem来获取对应行的记录,为什么我却不行呢? 问题点数:100、回复次数:10Top

1 楼ztchen(感谢csdn,回馈csdn,每周答几贴)回复于 2005-08-01 01:44:23 得分 30

今天二帖了。。。既然看到了,就帮你一把吧  
   
  楼主应该用findcontrol方法来找dataitem里的控件,因为每个dataitem都会根据邦定数据来动态生成其内部的子控件,所以你光凭控件名是不能获取到该子控件的。  
   
    linkbutton   lnkBtn=e.item.findcontrol("yourlnkbuttonname");  
   
  这样就可以找到该子控件,然后就可以取其值或做其他事Top

2 楼saucer(思归)回复于 2005-08-01 07:42:22 得分 30

when   ItemCommand   is   triggered,   DataItem   is   no   longer   available,   you   should   do  
   
  <asp:LinkButton   id="yourlnkbuttonname"   Runat="server"   CommandName="downs"     Text='<%#((PostInfo)Container.DataItem).FileName%>'></asp:LinkButton>  
   
  then   in   ItemCommand,   use   the   method   suggested   by   ztchen  
   
  LinkButton   lnkBtn=e.Item.FindControl("yourlnkbuttonname")   as   LinkButton;  
  string   s   =   lnkBtn.Text;Top

3 楼xtxk_917(小强)回复于 2005-08-01 08:41:37 得分 5

学习。Top

4 楼spoky(夜游魂)回复于 2005-08-01 16:49:25 得分 0

这样确实可以取到,但是现在我想要的是整个记录的多个字段来重组一个串,所以可能只能是传进来一个id,然后再到数据库去取相关的记录了。Top

5 楼spoky(夜游魂)回复于 2005-08-01 17:17:19 得分 0

如果datagrid好像就可以取到对应行的记录?Top

6 楼ztchen(感谢csdn,回馈csdn,每周答几贴)回复于 2005-08-02 00:55:21 得分 5

搂主把datagrid怎样用啊?  
  “我想要的是整个记录的多个字段来重组一个串”楼主这句话什么意思?  
  “如果datagrid好像就可以取到对应行的记录?”楼主问题越来越深了,看不懂Top

7 楼zeusvenus()回复于 2005-08-02 07:39:31 得分 10

用e.Item.FindControlTop

8 楼cuike519(I will be back!)回复于 2005-08-02 07:56:39 得分 20

如果想从DataGrid里面直接取值而不从数据库中取则需要遍历e.Item.Cells的所有元素来找到绑定的值。Cells代表当前行的所有列!Top

9 楼spoky(夜游魂)回复于 2005-08-03 21:07:03 得分 0

我后来用Session来保存了这个变量,不过这样就有一个问题,当这个客户通过其他连接再新建这个页面,那么session保存的旧页面的对象也就跟到这里来了,而且旧页面又还打开着,需要用到这个变量,那么是否这种情况都不应该用session来保存呢?我用viewstat来保存的时候,却提示“类型xxx必须标记为   Serializable   或者具有   ReferenceConverter   以外的   TypeConverter,才能被放置在视图状态中。”  
   
  真不知道该如何来做了。Top

10 楼spoky(夜游魂)回复于 2006-01-19 16:21:57 得分 0

菜鸟的基础问题特别多,呵呵,多多包涵,发现使用ViewState还是很有好处的。Top

相关问题

  • 如何获取Repeater里面的TextBox控件的值
  • Repeater控件数据源SqlDataReader,怎样后台获取绑定值?
  • 如何获取QRPExpr的值
  • 如何获取变量值
  • 如何获取DTPicker的值?
  • monthCalendar 的值如何获取
  • 关于item获取的值
  • 获取不hidden的值????
  • C#获取值的问题??
  • 获取POST的值问题?

关键词

  • 控件
  • 页面
  • 值
  • lnkbtn
  • 获取
  • 记录
  • 保存
  • dataitem
  • findcontrol
  • linkbutton

得分解答快速导航

  • 帖主:spoky
  • ztchen
  • saucer
  • xtxk_917
  • ztchen
  • zeusvenus
  • cuike519

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo