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

これは古いスレッドですが、次を追加するのが適切なようです。

私の場合、ネストされたASPxGridViewコントロール(DevExpress)が2つあり、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

私は以下のように使用しました。2つのリピーターが親と子として機能します。以下では、子リピーター内のID列の親値を取得します。

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