首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在中继器内使用中继器

如何在中继器内使用中继器
EN

Stack Overflow用户
提问于 2013-08-01 23:49:07
回答 1查看 506关注 0票数 1

可以在另一个中继器内使用中继器吗?多么?

我的问题是,后端看不到中继器内的中继器。

前线:

代码语言:javascript
复制
<div id="blogright">
    <ul class="accordion">
          <asp:Repeater ID="parentRep" runat="server">
             <ItemTemplate>
                    <li class="2010">
                    <a href="blog.aspx?id=<%# Eval("DYear") %>"><%# Eval("DYear") %><span><%# Eval("PCount") %></span></a>
                   <ul class="sub-menu">
                     <asp:Repeater ID="childRep" runat="server">
                        <ItemTemplate>
                            <li><a href="#"><em><%# Eval("DDay") %></em><%# Eval("DMonth") %><span><%# Eval("ICount") %></span></a></li>    
                        </ItemTemplate>
                     </asp:Repeater>
                  </ul>
               </li>
            </ItemTemplate>
         </asp:Repeater>
     </ul>
</div>

回:

代码语言:javascript
复制
//This is for parentRep
 daString = "SELECT datepart(YEAR,BLG_DATE) as DYear,COUNT(BLG_DATE) as PCount FROM [BLG] INNER JOIN [ACC] ON [BLG].ACC_ID=[ACC].ACC_ID WHERE [BLG].ACC_ID='"+userID+"' GROUP BY BLG_DATE";
 SqlDataAdapter da2 = new SqlDataAdapter(daString, conn);
 DataTable dt2 = new DataTable();
 da2.Fill(dt2);

 parentRep.DataSource = dt2;
 parentRep.DataBind();

//This is for childRep
 dt.Clear();
 daString = "SELECT DATEPART(DAY,BLG_DATE) as DDay,datename(month,BLG_DATE) as DMonth,DATEPART(YEAR,BLG_DATE) as DYear FROM [BLG] INNER JOIN [ACC] ON [BLG].ACC_ID=[ACC].ACC_ID WHERE [BLG].ACC_ID='"+userID+"' and BLG_DATE like '%"+urlId+"%'";
 SqlDataAdapter da3 = new SqlDataAdapter(daString, conn);
 DataTable dt3 = new DataTable();
 da2.Fill(dt3);

//can't see the childRep here.

对不起我的英语。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-02 00:22:38

您可以通过这种方式在ItemDataBound事件中获得子Repeater的引用并将数据绑定到它:

代码语言:javascript
复制
protected void parentRep_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
   if (args.Item.ItemType == ListItemType.Item || args.Item.ItemType == ListItemType.AlternatingItem)
   {
        Repeater childRepeater = (Repeater)e.Item.FindControl("childRep");
        childRepeater.ItemDataBound += new RepeaterItemEventHandler(childRepeater_ItemDataBound);
        childRepeater.ItemCommand += new RepeaterCommandEventHandler(childRepeater_ItemCommand);
        childRepeater.DataSource = dt3; //dt3 is the DataTable from your code sample
        childRepeater.DataBind();
   }
}

此外,在这个线程中有一些非常彻底的答案:Repeater in Repeater

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18006544

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档