2012-04-11 3 views
1

좋아 중첩 목록보기 내에서 상위 목록보기에 액세스하는 것에 대해 많은 질문을 보았지만 아무도 내 질문에 대답하지 않았습니다.중첩 목록보기

첫 번째 목록보기의 일부 기능에 액세스하여 두 번째 항목으로 보낼 수없는 이유는 무엇입니까? 나는 많은 다른 속성을 시도했지만 아무 것도 작동하지 않습니다. ItemPlaceHolder 또는 User_Category는 어떻습니까? 내 생각은 두 개의 ObjectDataSoureces를 사용하여 부모 목록 뷰의 DataKeyName을 두 번째 ObjectDataSource로 보냅니다. 그러나 나는 당신이 전달하고 싶은,

<asp:ListView ID="ListView1" runat="server" 
    DataSourceID="srcGetOrderForm" 
    DataKeyNames=User_Category 
    ItemPlaceholderID="lvItemPlaceHolder"> 

    <LayoutTemplate> 
     <asp:PlaceHolder runat="server" ID="lvItemPlaceHolder" /> 
    </LayoutTemplate> 

    <ItemTemplate> 
     <asp:Panel runat="server" ID="panelCustomerInfo" 
       cssclass="collapsePanelHeaderForFilter"> 
       <%# Eval("User_Category")%> 
     </asp:Panel>  
     <asp:panel runat="server" ID="panelCustomerDetails" 
       cssclass="collapsePanelForFilter"> 

     <asp:ListView ID="ListView2" runat="server" 
      DataSourceID="srcGetOrderForm2" 
      ItemPlaceholderID="lvOrdersItemPlaceHolder"> 

      <LayoutTemplate> 
      <ul> 
       <asp:PlaceHolder runat="server" 
        ID="lvOrdersItemPlaceHolder" /> 
      </ul> 
      </LayoutTemplate> 

      <ItemTemplate> 
      <li> 
       Description: <%# Eval("Description")%> 
      </li> 
      </ItemTemplate> 
      </asp:ListView> 

     </asp:panel> 
</ItemTemplate> 
</asp:ListView> 

    <asp:ObjectDataSource 
     ID="srcGetOrderForm" 
     TypeName = "ABC.Products" 
     SelectMethod = "NewGetOrderFormCategories" 
     runat="server" > 
     <SelectParameters> 
      <asp:ProfileParameter Name="User" PropertyName="User_ID" /> 
     </SelectParameters> 
    </asp:ObjectDataSource> 

    <asp:ObjectDataSource 
     ID="srcGetOrderForm2" 
     TypeName = "ABC.Products" 
     SelectMethod = "NewGetOrderFormCategoryItems" 
     runat="server" > 
     <SelectParameters> 
      <asp:ProfileParameter Name="User" PropertyName="User_ID" /> 
      <asp:ControlParameter ControlID="ListView1" Name="User_Category" PropertyName=???? /> 
     </SelectParameters> 
    </asp:ObjectDataSource> 
+0

전혀 둥지를 틀 필요가 있습니까? ListView 템플릿, 마스터 세부 정보는 어떻습니까? – IrishChieftain

+1

모든 것이 끝나고 나면 세 가지 그룹화가 필요합니다. 내가 본 모든 예제는 중첩 된 listview를 사용합니다. 그러나 나는 그것을 조사 할 것이다. –

답변

0

그것은 할 수 있지만, 모두가 "통과"에 의해 당신이 무슨 뜻인지에 따라 달라집니다 DataKeyName을 얻을합니다 (???? 아래 참조)하는 방법을 모른다 , 그리고 언제 값을 전달하고 싶습니다.

기본 목록보기의 정보를 하위 목록보기로 전달하려는 경우 기본 목록보기의 ItemCreated 이벤트를 무시할 수 있습니다. 이 경우 Container.DataItem에 액세스 할 수 있으며 상위 목록 뷰의 행이 바인딩 된 현재 개체를 제공합니다. 그런 다음 FindControl 함수를 사용하여 내부 목록 뷰를 찾고 적절하게 상호 작용할 수 있습니다. 하지만 ObjectDataSource을 사용하지 못할 수도 있습니다. 두 번째 listview의 데이터 소스를 직접 바인딩해야 할 수도 있습니다.

+0

그게 내 문제 야? http://stackoverflow.com/questions/15077897/grab-item-id-from-parent-listview – jackncoke