Chinaunix首页 | 论坛 | 博客
  • 博客访问: 193119
  • 博文数量: 41
  • 博客积分: 1410
  • 博客等级: 上尉
  • 技术积分: 830
  • 用 户 组: 普通用户
  • 注册时间: 2007-09-03 16:24
文章分类

全部博文(41)

文章存档

2010年(4)

2009年(16)

2008年(21)

我的朋友

分类:

2009-12-01 16:09:38

在一般的网站中浏览类别的用户控件通常都位于大多数 ASP.NET 页的左边,它使用户能够按类别快速的查找产品。最近遇到一个客户,因为在他网站上展示的产品并不多,所以要求在原有类别浏览的基础上将产品也加进去。一来更方便,二来加长了左部导航栏的长度使页面更协调。原有的分类导航栏是由Repeater实现的,现在需要在每一个分类下加入该类的商品信息,于是我想到了在原有Repeater中嵌套Repeater。实现界面如下:

方法一:
前台页面部分:
<asp:Repeater id="rptCategories" runat="server">
  
<HeaderTemplate>
    
<table width="100%" border="0" cellspacing="0" cellpadding="0">
  
HeaderTemplate>
  
<ItemTemplate>
    

    
<tr><th><%# DataBinder.Eval(Container.DataItem, "TypeName") %>th>tr>
    

    
<asp:Repeater id="rptProduct" runat="server">
      
<ItemTemplate>
        
<tr><td><a href='ProductInfo.aspx?Id=<%# DataBinder.Eval(Container.DataItem, "ID") %>'><%# DataBinder.Eval(Container.DataItem, "ProductName") %>a>td>tr>
      
ItemTemplate>
    
asp:Repeater>
  
ItemTemplate>
  
<FooterTemplate>
    
table>
  
FooterTemplate>
asp:Repeater>

后台代码部分(部分代码):
//在绑定分类品名时,绑定分类下的产品
private void rptCategories_ItemDataBound(object sender, System.Web.UI.WebControls.RepeaterItemEventArgs e)
{
     BLL.Products products
=new BLL.Products();
    
if (e.Item.ItemType == ListItemType.Item ||     e.Item.ItemType == ListItemType.AlternatingItem)
    
{
         Repeater rptProduct
= (Repeater) e.Item.FindControl("rptProduct");
        
//找到分类Repeater关联的数据项
         DataRowView rowv = (DataRowView)e.Item.DataItem;
        
//提取分类ID
        int CategorieId = Convert.ToInt32(rowv["ID"]);
        
//根据分类ID查询该分类下的产品,并绑定产品Repeater
         rptProduct.DataSource = products.GetProductsByCategorieId(CategorieId);
         rptProduct.DataBind();
     }

方法二:

                    onitemcommand="Repeater1_ItemCommand"
                    onitemdatabound="Repeater1_ItemDataBound" >
                       
                                                         ID="HiddenField1" runat="server" value='<%#Eval("id") %>'/> <%#Eval("cname") %>图片:


                           
                            
                                  
   
                            
                           
                                ID="Hdf" runat="server" value='<%#Eval("aid") %>'/>角度:<%#Eval("aname") %>图:

                      

                      
                  
                       
                       

       for (int i = 0; i < Repeater1.Items.Count; i++)
        {
            Repeater rp = (Repeater)Repeater1.Items[i].FindControl("Repeater2");
           // DataRowView rowv = (DataRowView)e.Item.DataItem;
         //   int colorid = Convert.ToInt32(rowv["id"]);
            rp.DataSource = igm.GetAngles();
            rp.DataBind();
        }

阅读(449) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~