在HeaderTemplate中访问嵌套转发器中的父数据

时间:2009-09-11 14:46:14

标签: asp.net nested-repeater

简单的问题,不确定是否有一个简单的答案!

所以这里是代码:(我已经简化了很多,以便更容易阅读)

<asp:Repeater runat="server>
    <ItemTemplate>
        <asp:Repeater runat="server">
            <HeaderTemplate>
                <h1>My header here for: <%# OuterContainer.DataItem.MyItemName %> </h1>
            </HeaderTemplate>
            <ItemTemplate>
                My items code here
            </ItemTemplate>
        </asp:Repeater>
    </ItemTemplate>
</asp:Repeater>

如何在HeaderTemplate中访问父转发器中的DataItem?

5 个答案:

答案 0 :(得分:90)

我实际上找到了答案:

使用:

<HeaderTemplate>
    <%# ((RepeaterItem)Container.Parent.Parent).DataItem %>
</HeaderTemplate>

答案 1 :(得分:39)

保罗给出的解决方案对我不起作用,但确实如此:

<%# DataBinder.Eval(Container.Parent.Parent, "DataItem.YourProperty")%> 

答案 2 :(得分:9)

这是一个旧线程,但似乎可以添加:

在我的情况下,我有2个嵌套的ASPxGridView控件(DevExpress),而Container.Parent.Parent不起作用。

要从子级访问父级数据项,这对我有用:

<%# DataBinder.Eval(Container.NamingContainer.NamingContainer, "DataItem.DbField")%>

答案 3 :(得分:4)

如果我想检索父转发器的属性,我通常会这样做:

<%# DataBinder.Eval(((RepeaterItem)Container.Parent.Parent).DataItem, "ThePropertyName")%>

答案 4 :(得分:0)

我使用了如下。 两个中继器充当父级和子级。下面如何获取子级中继器中ID列的父级值。

<%# DataBinder.Eval(((RepeaterItem)Container.Parent.Parent).DataItem, "ID") %>