61

简单的问题,不知道有没有简单的答案!

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

<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 吗?

4

5 回答 5

93

我实际上找到了答案:

利用:

<HeaderTemplate>
    <%# ((RepeaterItem)Container.Parent.Parent).DataItem %>
</HeaderTemplate>
于 2009-09-11T14:54:00.413 回答
41

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

<%# DataBinder.Eval(Container.Parent.Parent, "DataItem.YourProperty")%> 
于 2012-01-13T20:49:23.053 回答
10

这是一个旧线程,但添加似乎是合适的:

在我的情况下,我有 2 个嵌套的 ASPxGridView 控件(DevExpress)并且 Container.Parent.Parent 没有工作。

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

<%# DataBinder.Eval(Container.NamingContainer.NamingContainer, "DataItem.DbField")%>
于 2012-05-16T13:42:15.150 回答
4

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

<%# DataBinder.Eval(((RepeaterItem)Container.Parent.Parent).DataItem, "ThePropertyName")%>
于 2014-06-11T17:29:50.977 回答
0

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

<%# DataBinder.Eval(((RepeaterItem)Container.Parent.Parent).DataItem, "ID") %>
于 2018-09-02T12:17:29.547 回答