zoukankan      html  css  js  c++  java
  • 牛腩购物网20:用户自定义控件的使用,repeater嵌套循环显示大小类别,隐藏域传值

    repeater控件的嵌套使用:

    image

    image

    我们改写为。

     <asp:Repeater ID="repBig" runat="server" onitemdatabound="repBig_ItemDataBound">
                        <ItemTemplate>
                        
                        
                        <div class="ca">
                            <div class="ca_title">
                                <a href='/prolist.aspx?caid=<%#Eval("id") %>' style="color: #00CCFF"><%#Eval("caname") %>
                                </div>
                                <%--我们在大类循环的时候,添加一个隐藏域,用于给小类循环的时候传值--%>
                                <asp:HiddenField ID="hfCaid" runat="server" Value='<%#Eval("id") %>' />
                            
    
                            <asp:Repeater ID="repSmall" runat="server">
                                <ItemTemplate><a href='/prolist.aspx?caid=<%#Eval("id") %>'> <%#Eval("caname") %> </a></ItemTemplate>
                            </asp:Repeater>
        
                        </div>
                        </ItemTemplate>
                        </asp:Repeater>
    
     
    然后我们给这个大的repeater加上一个  ItemDataBind事件,表示在大的rep循环的时候的事件,我们刚好可以用来对小的rep进行循环和绑定
    

    image

    protected void Page_Load(object sender, EventArgs e)
            {
                if (!Page.IsPostBack)
                {
                    //显示最新上架
                    repNewSJ.DataSource = new DAL.ProductDAO().GetList("id,proname", "createdate", "desc", 10, 1, "");
                    repNewSJ.DataBind();
    
                    //先显示大的类别
                    repBig.DataSource = new Niunan.Shop.DAL.CategoryDAO().GetListArray("pid=0");
                    repBig.DataBind();
    
                }
            }
    
            //循环大类的时候,通过 HiddenField 这个隐藏域来传值到 repSmall 小类进行循环
            protected void repBig_ItemDataBound(object sender, RepeaterItemEventArgs e)
            {
                if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
                {
                    //我们先通过repBig来找到 regSmall
                    Repeater repSmall = e.Item.FindControl("repSmall") as Repeater;
                    HiddenField hfCaid = e.Item.FindControl("hfCaid") as HiddenField;
    
                    repSmall.DataSource = new Niunan.Shop.DAL.CategoryDAO().GetListArray("pid="+hfCaid.Value);
                    repSmall.DataBind();
    
                }
            }
    
  • 相关阅读:
    获取进程编号
    通过队列完成进程之间的通信
    多进程的使用
    多任务的介绍
    nginx 的正向代理 和 反向代理
    nginx 学习 不断更新
    git 随笔(随时更新)
    mysql 主从复制
    指着他活着呢
    nginx正向代理 (带着请求头)
  • 原文地址:https://www.cnblogs.com/iceicebaby/p/2419250.html
Copyright © 2011-2022 走看看