Development Tip

HeaderTemplate에서 중첩 된 repeater의 상위 데이터에 액세스

yourdevel 2020. 12. 10. 21:21
반응형

HeaderTemplate에서 중첩 된 repeater의 상위 데이터에 액세스


간단한 질문, 간단한 답이 있는지 확실하지 않습니다!

그래서 여기에 코드가 있습니다. (읽기 쉽도록 많이 단순화했습니다)

<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에서 어떻게 부모 repeater의 DataItem에 액세스 할 수 있습니까?


실제로 답을 찾았습니다.

사용하다:

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

Paul이 제공 한 솔루션은 저에게 효과가 없었지만 효과가있었습니다.

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

이것은 오래된 스레드이지만 다음을 추가하는 것이 적절 해 보입니다.

제 경우에는 2 개의 중첩 된 ASPxGridView 컨트롤 (DevExpress)이 있고 Container.Parent.Parent가 작동하지 않았습니다.

자식에서 부모의 데이터 항목에 액세스하려면 다음과 같이하십시오.

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

상위 repeater의 속성을 검색하려면 일반적으로 다음을 수행합니다.

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

나는 아래와 같이 사용했습니다. 두 개의 Repeater가 Child repeater 내에서 ID Column의 Parent 값을 얻는 방법 아래에서 Parent 및 Child로 작동합니다.

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

참고 URL : https://stackoverflow.com/questions/1411336/accessing-parent-data-in-nested-repeater-in-the-headertemplate

반응형