这里的Repeater 嵌套,是指在 外层的Repeater的 ItemTemplate 中 又添加了一个 Repeater ,并且在两层的Repeater中都添加了一个Button控件。我们要实现两个控件的事件响应。也就是点两个Button时执行相应的方法。

看 .aspx 代码:

1 <asp:Repeater ID="Repeater1" runat="server"
2 onitemdatabound="Repeater1_ItemDataBound"
3 onitemcommand="Repeater1_ItemCommand">
4  // 这是外层的Repeater。注意看最后一行。Onitemcommand 事件
5   <HeaderTemplate>
6  <table width="500" border="0" cellspacing="3" cellpadding="0">
7 </HeaderTemplate>
8
9 <ItemTemplate>
10 <tr>
11 <td width="72" height="30" bgcolor="#669966"><%# Eval("UserName") %></td>
12 <td height="30" bgcolor="#669966"><%# Eval("Title") %><div style="text-align: right; clear: right"><asp:Button Text="删除留言" runat="server" CommandName="deletely" CommandArgument='<%# Eval("ID") %>' />
13  //这是外层的Button。
14 </div></td>
15 </tr>
16 <tr>
17 <td height="30"></td>
18 <td height="30" bgcolor="#99FFCC"><%# Eval("cont") %></td>
19 </tr>
20 <tr>
21 <td height="30">&nbsp;</td>
22 <td height="30">
23 <asp:Repeater ID="Repeater2" runat="server" onitemcommand="Repeater2_ItemCommand">
24 //这里嵌套到里面的第二Repeater。在这个控件中,也有一个Onitemcommand 事件的处理。
25 <HeaderTemplate>
26 <table width="415" border="0" cellspacing="3" cellpadding="0">
27 </HeaderTemplate>
28 <ItemTemplate>
29
30 <tr>
31 <td width="20%" height="30" bgcolor="#0099FF"><%# Eval("UserName") %></td>
32 <td height="30" bgcolor="#0099FF"><%# Eval("Title") %><div style="text-align: right; clear: right"><asp:Button ID="Button1" Text="删除回复" runat="server" CommandName="deletehf" CommandArgument='<%# Eval("ID") %>' />
33 // 这是内层的 Button。
34 </div></td>
35 </tr>
36 <tr>
37 <td height="30" colspan="2"><%# Eval("Reply") %></td>
38 </tr>
39
40 </ItemTemplate>
41
42 <FooterTemplate>
43 </table>
44 </FooterTemplate>
45 </asp:Repeater>

我们就是依靠 这两个 Onitemcommand 事件来执行代码的。

来看一下, .cs 代码

1 protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
2 //在这里处理第1个Button事件,因为这个Button位于第一个 Repeater中。
3 //在这里是不能捕捉到第二个Repeater控件中的Button事件的。
4 {
5 if (e.CommandName == "deletely")
6 {
7 int dlid = Convert.ToInt32(e.CommandArgument.ToString());
8 opclass opc = new opclass();
9 opc.ExectCmd(string.Format("Delete From [liuyan] Where ID={0}", dlid));
10 opclass opc1 = new opclass();
11 opc1.ExectCmd(string.Format("Delete From [Reply] Where lyID={0}", dlid));
12 bangdingdata();
13
14 }
15 }
16
17 protected void Repeater2_ItemCommand(object source, RepeaterCommandEventArgs e)
18 //在这里处理第2个Button事件,因为这个Button位于第二个 Repeater中。
19 {
20 if (e.CommandName == "deletehf")
21 {
22 int dlid = Convert.ToInt32(e.CommandArgument.ToString());
23 opclass opc = new opclass();
24 opc.ExectCmd(string.Format("Delete From [Reply] Where ID={0}", dlid));
25 bangdingdata();
26
27
28 }
29
30 }

提示:

点击外层的 Repeater 控件的时候,在属性对话框中,可以找到 OnitemCommand 事件,双击可以自动创造出对应的代码。

(也就是可以在属性对话框中点击那个小闪电符号找到对应的事件)但是当点击内层的Repeater的时候,是没有那个小闪电的。所以,在第二个

Repeater 中的 OnitemCommand事件只能手动添加上去,要在.aspx文件和.cs文件中分别添加对应的代码才行。添加完成后,程序会执行对应的代码。

关于 Repeater 控件嵌套的使用。在嵌套中添加 其它控件(如:按钮),并影响其它控件的方法,很重要哦,测试通过。...相关推荐

  1. 在 jquery repeater 中添加设置日期,下拉,复选框等控件

    JQueryElement 更新到了 3.5.1, 今天给大家主要讲下如何在 Repeater 的模板中添加设置一些控件. 由于精力有限, 不能在多个博客中保证文章的同步, 可在如下地址查看最新内容, ...

  2. 自己开发的一款基于PagedDataSource的datalist repeater控件,只需要在源程序中添加三行代码,即可实现通用分页

    第一步: 在使用到自定义分页的后台代码中添加以下三行 protected void Page_Load(object sender, EventArgs e)       {          UIS ...

  3. android添加图片控件代码,如何在android studio中添加图标图像按钮

    我想设计这种类型的应用程序的布局(如图所示).在此布局中,当我们单击圆形图标时,它将移至下一页.我想知道它是如何完成的. 解决方法: 在抽屉文件夹中创建circle_background.xml并将此 ...

  4. java 控件换行_Java – 如何在swing中添加换行符

    我正在为我的迷你游戏添加一个按钮,但我不知道如何换行.我想在按钮和文本之间有一个空格,这里是代码: JPanel panel1 = new JPanel(); JLabel label1 = new ...

  5. VS2010向工具箱中添加控件解决 Microsoft Communications Control,未能实例化 设计时授权

    第一步是Visual Studio 2010中添加注册控件的方法 在VC6.0中添加ADO Data Control等控件是很很方便的,"Project" --> " ...

  6. SPCOMM控件在Delphi7.0串口通信中的应用

    ====================================================== 注:本文源代码点此下载 ================================= ...

  7. .NET中添加控件数组

    作者:cuike519的专栏   http://blog.csdn.net/cuike519/ 添加控件数组 在.NET里面我好像没有找到有关于控件数组的说明,但是前两天偶在网上看到了一篇关于如何在. ...

  8. Android列表控件选项中添加进度框ProgressBar实现

        今天有时间就学习了下在ListView.GridView列表项中清加ProgressBar,小马用最简单的代码实现可以通用的功能,人人都能看懂,哈哈,直接说下,如果你的适配器getView方法 ...

  9. 背水一战 Windows 10 (65) - 控件(WebView): 对 WebView 中的内容截图, 通过 Share Contract 分享 WebView 中的被选中的内容...

    原文:背水一战 Windows 10 (65) - 控件(WebView): 对 WebView 中的内容截图, 通过 Share Contract 分享 WebView 中的被选中的内容 [源码下载 ...

  10. android自定义view获取控件,android 自定义控件View在Activity中使用findByViewId得到结果为null...

    转载:http://blog.csdn.net/xiabing082/article/details/48781489 1.  大家常常自定义view,,然后在xml 中添加该view 组件..如果在 ...

最新文章

  1. PHP 用图片输出验证码 无法正常显示
  2. 无法使用共享文件夹?VMware怎么安装VMware Tools? (GCC、kernel headers、make)(失败)
  3. DNA Alignment
  4. 这个NLP工具,玩得根本停不下来
  5. nagios+pnp4nagios+nagiosql+nodutils
  6. 还在头痛被黑客劫持? 五步帮你摆脱烦恼!
  7. uva 11732 strcmp() Anyone?
  8. 编辑器有bug。。。。。。
  9. 强化学习平台安装 Mujoco、mujoco-py、gym、baseline
  10. 一体机扫描文档FTP搭建全程
  11. 联想ghost重装系统_史上最全的重装ghost系统错误解决方法大全
  12. 第二章:真分数理论(真分数模型:概念、假设、平行测验)
  13. 适合一个人干的小生意,最挣钱没人干的行业
  14. 标准盒子模型和怪异盒子模型(详解)
  15. crmeb一款最适合二次开发的开源微信公众号小程序框架 轻编程
  16. Visual Studio 2022无法打开源文件
  17. 你在央视春晚抢红包,京东云却在后台玩起了“剧本杀”
  18. Redis 主从数据同步
  19. 博客处女作:中国剩余定理与扩展中国剩余定理
  20. 人工智能300年!LSTM之父最新长文:详解现代AI和深度学习发展史(附下载)

热门文章

  1. linux运维、架构之路-Nginx服务
  2. JAVAWEB开发之JSP、EL、及会话技术(Cookie和Session)的使用详解
  3. Android客户端与服务器交互方式-小结
  4. IOS逆向【2】-cydia之开发者模式
  5. Windows系统云服务器安装、配置 MySQL 数据库
  6. JSON数据格式详解
  7. 并行、并发,两者的区别
  8. opencv----(1) mat最好用,和IplImage,cvmat 比较
  9. linux7有相当于wget的,centos7安装mwget下载资源,提升下载速度
  10. 电脑显示计算机无法显示,如果计算机无法打开怎么办?