从父转发器访问数据

时间:2013-07-24 13:32:38

标签: c# asp.net

我有以下设置(裁剪):

<asp:Repeater ID="rptParent" OnItemDataBound="rptParent_ItemDataBound" runat="server">
    <ItemTemplate>
         <a href="#<%# DataBinder.Eval(Container.DataItem, "eventnumber" )%><%# DataBinder.Eval(Container.DataItem, "productid" )%>" class="toggle">Attendees</a>

          <asp:Repeater ID="rptChild" runat="server" OnItemDataBound="rptChild_ItemDataBound">
               <HeaderTemplate>
                   <div id='<%# DataBinder.Eval(Container.Parent.Parent, "DataItem.hiddenEventID")%>'class="attendees">
               </HeaderTemplate>
               <ItemTemplate>
                   [Stuff in here]
               </ItemTemplate>
          </asp:Repeater>
    </ItemTemplate>
</asp:Repeater>

我正在尝试做的是(在rptChild中继器中)从它的父级(rptParent)获取一些数据项。我尝试过使用Container.Parent.Parent但是没有显示数据?

任何人都可以看到我做错了什么或者以任何方式提供帮助吗?

谢谢, 克雷格

1 个答案:

答案 0 :(得分:0)

如果Parent.Parent不起作用,请尝试使用NamingContainer,例如在onitemdatabound方法中:

((RepeaterItem)e.Item.NamingContainer.NamingContainer).DataItem

或者给你一个更像你的情景的例子:

<%# DataBinder.Eval(Container.NamingContainer.NamingContainer, "DataItem.hiddenEventID")%>' class="attendees">
           </HeaderTemplate>