(转)在Repeater中嵌套使用Repeater
在一般的网站中浏览类别的用户控件通常都位于大多数 ASP.NET 页的左边,它使用户能够按类别快速的查找产品。最近遇到一个客户,因为在他网站上展示的产品并不多,所以要求在原有类别浏览的基础上将产品也加进去。一来更方便,二来加长了左部导航栏的长度使页面更协调。原有的分类导航栏是由Repeater实现的,现在需要在每一个分类下加入该类的商品信息,于是我想到了在原有Repeater中嵌套Repeater。实现界面如下: 
前台页面部分: 
 <asp:Repeater id="rptCategories" runat="server">
<asp:Repeater id="rptCategories" runat="server">  <HeaderTemplate>
  <HeaderTemplate>  <table width="100%" border="0" cellspacing="0" cellpadding="0">
    <table width="100%" border="0" cellspacing="0" cellpadding="0">  </HeaderTemplate>
  </HeaderTemplate>  <ItemTemplate>
  <ItemTemplate>  <!--分类名称-->
    <!--分类名称-->  <tr><th><%# DataBinder.Eval(Container.DataItem, "TypeName") %></th></tr>
    <tr><th><%# DataBinder.Eval(Container.DataItem, "TypeName") %></th></tr>  <!--分类下的产品-->
    <!--分类下的产品-->  <asp:Repeater id="rptProduct" runat="server">
    <asp:Repeater id="rptProduct" runat="server">  <ItemTemplate>
      <ItemTemplate>  <tr><td><a href='ProductInfo.aspx?Id=<%# DataBinder.Eval(Container.DataItem, "ID") %>'><%# DataBinder.Eval(Container.DataItem, "ProductName") %></a></td></tr>
        <tr><td><a href='ProductInfo.aspx?Id=<%# DataBinder.Eval(Container.DataItem, "ID") %>'><%# DataBinder.Eval(Container.DataItem, "ProductName") %></a></td></tr>  </ItemTemplate>
      </ItemTemplate>  </asp:Repeater>
    </asp:Repeater>  </ItemTemplate>
  </ItemTemplate>  <FooterTemplate>
  <FooterTemplate>  </table>
    </table>  </FooterTemplate>
  </FooterTemplate>  </asp:Repeater>
</asp:Repeater> 
后台代码部分(部分代码): 
 //在绑定分类品名时,绑定分类下的产品
//在绑定分类品名时,绑定分类下的产品  private void rptCategories_ItemDataBound(object sender, System.Web.UI.WebControls.RepeaterItemEventArgs e)
private void rptCategories_ItemDataBound(object sender, System.Web.UI.WebControls.RepeaterItemEventArgs e)  {
{  BLL.Products products =new BLL.Products();
    BLL.Products products =new BLL.Products();  if (e.Item.ItemType == ListItemType.Item ||    e.Item.ItemType == ListItemType.AlternatingItem)
    if (e.Item.ItemType == ListItemType.Item ||    e.Item.ItemType == ListItemType.AlternatingItem)   {
    {  Repeater rptProduct = (Repeater) e.Item.FindControl("rptProduct");
        Repeater rptProduct = (Repeater) e.Item.FindControl("rptProduct");  //找到分类Repeater关联的数据项
        //找到分类Repeater关联的数据项  DataRowView rowv = (DataRowView)e.Item.DataItem;
        DataRowView rowv = (DataRowView)e.Item.DataItem;  //提取分类ID
        //提取分类ID  int CategorieId = Convert.ToInt32(rowv["ID"]);
        int CategorieId = Convert.ToInt32(rowv["ID"]);  //根据分类ID查询该分类下的产品,并绑定产品Repeater
        //根据分类ID查询该分类下的产品,并绑定产品Repeater  rptProduct.DataSource = products.GetProductsByCategorieId(CategorieId);
        rptProduct.DataSource = products.GetProductsByCategorieId(CategorieId);  rptProduct.DataBind();
        rptProduct.DataBind();  }
    }  }
} 
(转)在Repeater中嵌套使用Repeater的更多相关文章
- 在Repeater中嵌套使用Repeater
		在一般的网站中浏览类别的用户控件通常都位于大多数 ASP.NET 页的左边,它使用户能够按类别快速的查找产品.最近遇到一个客户,因为在他网站上展示的产品并不多,所以要求在原有类别浏览的基础上将产品也加 ... 
- Repeater 嵌套,子级Repeater获取 父级Repeater 中的值
		第一种方法,子级Repeater中绑定父级的某个字段: <%# DataBinder.Eval((Container.NamingContainer.NamingContainer as Rep ... 
- Repeater控件三层嵌套-内层Repeater添加绑定事件
		用Repeater三层嵌套,最外层Repeater可以生成自己的ItemCommand事件.但接下来中间层因为是嵌套了的,所以无法在属性窗口中生成自己的事件.如果手动敲入则无效. 解决办法是需要通过编 ... 
- 手机web开发Repeater四层嵌套
		最近有朋友想让我给他做个手机上页面,页面功能是显示省--市--区--门店信息,这种层级关系的数据,首先来看看效果: 我想现在的手机都是智能机了对于普通的asp.net页面开发应该没什么两样,不过最终开 ... 
- repeater中后台动态为控件添加属性
		在此贴出repeater中的ItemDataBound事件中的代码: private void ItemDataBound(object sender, RepeaterItemEventArgs e ... 
- 关于在repeater中的checkbox实行多选和全选
		今天项目中用到这一块,是一个b2b商城,业务是别人给客户留言后,客户从会员中心的留言管理中查看,用checkbox实行多选和全选后进行批量审核 首先在checkbox后加个hidden,作用见代码: ... 
- 关于Repeater中绑定的控件不触发ItemCommand事件
		今天遇到 在repeater 中使用一个button,点击button然后跳转另外一个页面. html. <asp:Repeater ID="repeater" runat= ... 
- Webfrom  生成流水号   组合查询      Repeater中单选与复选控件的使用        JS实战应用
		Default.aspx 网页界面 <%@ Page Language="C#" AutoE ... 
- 关于Repeater中使用DorpWownList的问题
		关于Repeater中使用DorpWownList的问题 前台: <asp:Repeater ID="Repeater1" runat="server" ... 
随机推荐
- js的兼容性问题
			innerHTML和innerTEXT的使用问题 <html xmlns="http://www.w3.org/1999/xhtml"> <head> &l ... 
- Webbrowser判断页面加载完成
			Webbrowser 请求加载页面,页面中包含各种资源,不能够很准确的判断加载是否完成,需要通过特定的方法判断. 1.使用计数器判断页面是否加载完成.精准可控. // 计数器 ; // 添加事件响应函 ... 
- 光盘卡在MacBook里退不出来咋办?
			如果光盘推不出来了怎么办?很多同学想到的是:上针!不过这招对MacBook Pro毫无用处,因为没有给你插针的地方,没有机械按键,只有键盘右上角一个推出的快捷键,不过在光盘卡在光驱里时,按此健基本无效 ... 
- oracle 数据库连接的四种方式
			Oracle Thin JDBC Driver驱动程序包名:ojdbc14.jar.ojdbc6.jar驱动程序类名: oracle.jdbc.driver.OracleDriverJDBC URL: ... 
- mongodb工具
			可视化管理工具 http://www.mongovue.com/ mongodb use case http://www.mongodb.org/about/applications/ mongodb ... 
- cursor: pin S
			declare v_sql varchar2(200); begin loop v_sql :='select seq1.nextval from dual'; execute immediate v ... 
- makefile高级用法--使用函数
			makefile高级用法--使用函数 分类: C/C++ 使用函数 ———— 在Makefile中可以使用函数来处理变量,从而让我们的命令或是规则更为的灵活和具有智能.make所支持的函数也不算很多, ... 
- MFC断点无效
			方法1: 将出问题的CPP文件用系统记事本notepad打开,然后另存时选择unicode编码保存,覆盖掉原来的文件即可.一般这种方法一般会解决VS断点无法设定的80%问题.没有办法才请出第2种方法. ... 
- http协议使用实例
			#include <stdio.h>#include <windows.h>#include <wininet.h> #define MAXSIZE 1024#pr ... 
- Apache HttpClient组件封装工具类
			package com.mengyao.spider.utils; import java.util.ArrayList;import java.util.HashMap;import java.ut ... 
