2009-12-22 2 views
6

ASP : ListView 전체 개체를 현재 개체의 단일 속성뿐만 아니라 ItemTemplate 내의 자식 컨트롤에 전달하려고합니다. "몸"문서의 속성 인 반면,asp : ListView의 현재 항목에 대한 Eval()

<asp:ListView ID="answers" runat="server"> 
    <LayoutTemplate> 
     <div id="itemPlaceholder" runat="server" /> 
    </LayoutTemplate> 
    <ItemTemplate> 
     <div> 
      <uc2:DocumentHeader runat="server" Document="Eval(%# Eval("this") %> /> 
       <p><%# Eval("Body") %></p> 
     </div> 
    </ItemTemplate> 
</asp:ListView> 

DocumentHeader의 문서 속성은 전체 문서 객체를 기대 : 여기

내가 작업 할 코드입니다.

분명히 Document 내에서 새 속성을 만들거나 LINQ 쿼리를 사용하여 원하는 속성으로 새 클래스를 생성 할 수 있습니다. 원하는 것을 얻는 쉽고 직접적인 방법이 있는지 알고 싶습니다. .

답변

9

< % # Container.DataItem %>을 (를) 사용하여 컨텍스트 개체를 바인딩 할 수 있습니다. 아마도 "문서"가 기대하는 바에 그것을 캐스팅해야 할 것입니다.

<asp:ListView ID="answers" runat="server"> 
    <LayoutTemplate> 
     <div id="itemPlaceholder" runat="server" /> 
    </LayoutTemplate> 
    <ItemTemplate> 
     <div> 
      <uc2:DocumentHeader runat="server" Document="<%# Container.DataItem %>" /> 
      <p><%# Eval("Body") %></p> 
     </div> 
    </ItemTemplate> 
</asp:ListView> 
+2

그렇습니다. 나는 아이템을 던질 필요가 없으며, 자동으로 행해졌 다. – spaetzel

관련 문제