簡単な質問、簡単な答えがあるかどうかわからない!
コードは次のとおりです(読みやすくするために大幅に簡略化しました)。
<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にアクセスできますか?
私は実際に答えを見つけました:
使用する:
<HeaderTemplate>
<%# ((RepeaterItem)Container.Parent.Parent).DataItem %>
</HeaderTemplate>
ポールから与えられた解決策は私にはうまくいきませんでしたが、これはうまくいきました:
<%# DataBinder.Eval(Container.Parent.Parent, "DataItem.YourProperty")%>
これは古いスレッドですが、追加するのが適切なようです:
私の場合、2つのネストされたASPxGridViewコントロール(DevExpress)があり、Container.Parent.Parentは機能しませんでした。
子から親のデータ項目にアクセスするために、これは私のために働いたものです:
<%# DataBinder.Eval(Container.NamingContainer.NamingContainer, "DataItem.DbField")%>
親リピーターのプロパティを取得したい場合、通常これを行います:
<%# DataBinder.Eval(((RepeaterItem)Container.Parent.Parent).DataItem, "ThePropertyName")%>
以下のように使用しました。 2つのリピーターがParentおよびChild.belowとして機能し、子リピーター内でID列の親値を取得する方法を示します。
<%# DataBinder.Eval(((RepeaterItem)Container.Parent.Parent).DataItem, "ID") %>