开发者

Moving repeater in form removes serverside declaration

开发者 https://www.devze.com 2023-01-08 10:26 出处:网络
I have two repeaters bound to object collections. They both work fine. But when I move repeater B to repeater A\'s FooterTemplate the serverside declaration of repeater B disappear.

I have two repeaters bound to object collections. They both work fine. But when I move repeater B to repeater A's FooterTemplate the serverside declaration of repeater B disappear.

This is not a parent/child relation.

Any ideas why this happens?

Update:

  <asp:Repeater ID="myOuterRepeater" runat="server">
   <ItemTemplate>
   ...
   </ItemTemplate>
   <FooterTemplate> 

    <asp:Repeater ID="myInnerRepeater" runat="server">
     <ItemTemplate>
       <asp:Button OnCommand="btnRemove_Click" ID="btnRemove" RunAt="server" />
         <%#Eval("ItemId")%>
         <%#String(Eval("Amount"))%>
     <ItemTemplate>
    </asp:Repeater> 
  </FooterTemplate>

 </asp:Repeater>

When I bind:

 myOuterRepeater.DataSource = myCollection
 myOuterRepeater.DataBind()

Dim innerRepeater As Repeater =
 myOuterRepeater.Controls(myOuterRepeater.Controls.Count - 1).Controls(0).FindControl("myInnerRepeater")

inner开发者_Go百科Repeater.DataSource = myInnerCollection
innerRepeater.DataBind()


When nesting a control (including a second repeater) inside a repeater, it is not longer part of the page but part of the enclosing repeater.

You will need to use FindControl(string) to get a reference to the nested repeater:

Repeater nested = enclosingRep.FindControl("nestedRepeaterId");
0

精彩评论

暂无评论...
验证码 换一张
取 消