web-dev-qa-db-ja.com

HeaderTemplate内のネストされたリピーターの親データへのアクセス

簡単な質問、簡単な答えがあるかどうかわからない!

コードは次のとおりです(読みやすくするために大幅に簡略化しました)。

<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にアクセスできますか?

58
Paul

私は実際に答えを見つけました:

使用する:

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

ポールから与えられた解決策は私にはうまくいきませんでしたが、これはうまくいきました:

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

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

私の場合、2つのネストされたASPxGridViewコントロール(DevExpress)があり、Container.Parent.Parentは機能しませんでした。

子から親のデータ項目にアクセスするために、これは私のために働いたものです:

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

親リピーターのプロパティを取得したい場合、通常これを行います:

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

以下のように使用しました。 2つのリピーターがParentおよびChild.belowとして機能し、子リピーター内でID列の親値を取得する方法を示します。

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