repeater三级嵌套绑定
<asp:Repeater ID="rpt1" runat="server" onitemdatabound="rpt1_ItemDataBound"> <HeaderTemplate> <table width=400 cellpadding=0 cellspacing=0></HeaderTemplate> <ItemTemplate><tr> <td><font color=black style="font-size: medium; color: #000000"><b><%# DataBinder.Eval(Container.DataItem,"CategoryName")%></b></font></td></tr> <tr><td align=right> <asp:Repeater ID="rpt2" runat="server"> <HeaderTemplate> <table width=360 align=center cellpadding=0 cellspacing=0> </HeaderTemplate> <ItemTemplate> <tr> <td align=left width=200 style="color: #000080; text-decoration: none; font-family: Calibri;"><font color=black>+</font><%# DataBinder.Eval(Container.DataItem,"CategoryName")%></td> <td width=80 align=center> <a href=ProductSort.aspx?type=1&id=<%# DataBinder.Eval(Container.DataItem,"ID")%>>修改</a></td> <td width=80 align=center> <a href=ProductSort.aspx?type=2&id=<%# DataBinder.Eval(Container.DataItem,"ID")%>>删除</a> </td> </tr> <tr> <td align=right colspan=3> <asp:Repeater ID="rpt3" runat="server"> <HeaderTemplate> <table width=320 align=center cellpadding=0 cellspacing=0> </HeaderTemplate> <ItemTemplate> <tr> <td align=left width=160 style="color: #000080; text-decoration: none; font-family: Calibri;"><font color=black>-</font><%# DataBinder.Eval(Container.DataItem,"CategoryName")%></td> <td width=80 align=center> <a href=ProductSort.aspx?type=1&id=<%# DataBinder.Eval(Container.DataItem,"ID")%>>修改</a> </td> <td width=80 align=center> <a href=ProductSort.aspx?type=2&id=<%# DataBinder.Eval(Container.DataItem,"ID")%>>删除</a> </td> </tr> </ItemTemplate> <FooterTemplate> </table> </FooterTemplate> </asp:Repeater> </td> </tr> <tr> </tr> </ItemTemplate> <FooterTemplate> </table> </FooterTemplate> </asp:Repeater> </td> </tr> <td height=15px; style="border-style:none;"> </td> </ItemTemplate> <FooterTemplate> </table> </FooterTemplate> </asp:Repeater>
后台。aspx.cs
protected void rpt1_ItemDataBound(object sender, RepeaterItemEventArgs e) { if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { Repeater rpt2 = (Repeater)e.Item.FindControl("rpt2"); //找到分类Repeater关联的数据项 DataRowView rowv = (DataRowView)e.Item.DataItem; rpt2.ItemDataBound += new RepeaterItemEventHandler(rpt2_ItemDataBound); //最最重要的一句 //提取分类ID cid = Convert.ToInt32(rowv["ID"]); //根据分类ID查询该分类下的产品,并绑定产品Repeater rpt2.DataSource = Pcategory.getP(cid);//数据绑定 rpt2.DataBind(); } } protected void rpt2_ItemDataBound(object sender, RepeaterItemEventArgs e) { if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { Repeater rpt3 = (Repeater)e.Item.FindControl("rpt3"); //找到分类Repeater关联的数据项 DataRowView rowvv = (DataRowView)e.Item.DataItem; //提取分类ID cid2 = Convert.ToInt32(rowvv["ID"]); //根据分类ID查询该分类下的产品,并绑定产品Repeater rpt3.DataSource = getrpt3(cid, cid2);//数据绑定 rpt3.DataBind(); } }
repeater三级嵌套绑定的更多相关文章
- 在Repeater中嵌套使用Repeater
在一般的网站中浏览类别的用户控件通常都位于大多数 ASP.NET 页的左边,它使用户能够按类别快速的查找产品.最近遇到一个客户,因为在他网站上展示的产品并不多,所以要求在原有类别浏览的基础上将产品也加 ...
- 手机web开发Repeater四层嵌套
最近有朋友想让我给他做个手机上页面,页面功能是显示省--市--区--门店信息,这种层级关系的数据,首先来看看效果: 我想现在的手机都是智能机了对于普通的asp.net页面开发应该没什么两样,不过最终开 ...
- (转)在Repeater中嵌套使用Repeater
在一般的网站中浏览类别的用户控件通常都位于大多数 ASP.NET 页的左边,它使用户能够按类别快速的查找产品.最近遇到一个客户,因为在他网站上展示的产品并不多,所以要求在原有类别浏览的基础上将产品也加 ...
- DataList嵌套绑定例子
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="DataList控件.asp ...
- QFramework 使用指南 2020 (四):脚本生成(2)ViewController 与 ViewController 嵌套绑定
在上一篇,我们学习了,脚本生成的基本使用. 在这一篇,我们试着深入,聊聊脚本生成给我们带来的便利. 脚本生成的便利 首先,我们要知道,在 Unity 的游戏世界中都是以 GameObject 为单位的 ...
- 关于Repeater嵌套绑定的问题
前台代码: <div id="firstpane" class="menu_list"> <asp:Repeat ...
- Repeater嵌套绑定Repeater
前台Html代码 <asp:Repeater runat="server" ID="rpList" OnItemDataBound="rpLis ...
- 转:Repeater嵌套绑定Repeater以及内层调用外层数据
<table border=" style="margin-bottom: 5px" width="100%"> <asp:Repe ...
- DataList与Repeater嵌套绑定
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="home.aspx.cs&quo ...
随机推荐
- Android APK是否需要预解压
今天在逛论坛的时候,发现有一个朋友问的问题.其主要目的,是想实现 玩家首次进入游戏的时候,或者新安装了版本的时候,对APK进行解压,写入SD卡.这样游戏运行过程中,将不会再从APK中读取资源. 以提高 ...
- 分享一个css3写的气泡对话框,适合于即时通讯和留言本的动态内容
效果预览: css code .message_content{width:100%;margin-top:10px;clear:both;float:left;} .face{float:left; ...
- Vue2.0实现1.0的搜索过滤器功能
Vue2.0删除了很多1.0的比较实用的过滤器,如filterBy,orderBy.官方文档给了通过计算属性实现1.0搜索过滤器功能,自己又加入了大小写通用检索功能,比较简单,学一下. <bod ...
- java中对final关键字的理解以及使用场景
谈到final关键字,想必很多人都不陌生,在使用匿名内部类的时候可能会经常用到final关键字.另外,Java中的String类就是一个final类,那么今天我们就来了解final这个关键字的用法.
- CSS之flex布局
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...
- easyui-combobox实现省-市-区县级联菜单
省:<input id="sheng" class="easyui-combobox" style="width:100px" dat ...
- jQuery第二篇 (帅哥)
1.1 jQuery操作DOM jQuery课程的目标:学会使用jQuery设计常见效果 选择器 基本选择器:#id ..class .element.* . 层级选择器: 空格.>.+.~ 基 ...
- 无法启动WP Emulator
记得以前Vware不能运行设置的东西了吗?http://www.cnblogs.com/dunitian/p/4480750.html 如果不清楚可以参考上面的链接 重启的时候选择第二项 重新打开就o ...
- 【Win10 应用开发】语音命令与App Service集成
昨天,老周演示了语音命令集成这一高大上功能,今天咱们来点更高级的语音命令. 在昨天的例子中,响应语音命令是需要启动应用程序的,那么如果可以不启动应用程序,就直接在小娜面板上进行交互,是不是会更高大小呢 ...
- Topology and Geometry in OpenCascade-Adapters
Topology and Geometry in OpenCascade-Adapters eryar@163.com 摘要Abstract:本文简要介绍了适配器模式(adapter pattern) ...