asp.net nested-repeater

asp.net - Accediendo a los datos principales en el repetidor anidado, en HeaderTemplate



nested-repeater (4)

Encontré la respuesta en realidad:

Utilizar:

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

¡Pregunta simple, no estoy seguro de que haya una respuesta simple!

Así que aquí está el código: (Lo he simplificado mucho para que sea más fácil de leer)

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

¿Cómo, en HeaderTemplate, puedo acceder al DataItem en el repetidor padre?


La solución dada por Pablo no funcionó para mí, pero esto hizo:

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


Este es un hilo viejo, pero parece apropiado agregar:

En mi caso tengo 2 controles anidados ASPxGridView (DevExpress) y Container.Parent.Parent no funcionó.

Para acceder al elemento de datos del padre desde el niño, esto es lo que funcionó para mí:

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


Si quiero recuperar una propiedad de un repetidor padre, generalmente hago esto:

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