2011-10-12 2 views
1

나는 목록보기 "CategoriesList"가 나는 리피터 목록보기 "CategoriesList"내부 "NewsRepeater" 부모로부터 ListView를 자식에게 전달하는 방법 Repeater 부모의 내부 ListView?

<asp:ListView ID="CategoriesList" runat="server" DataKeyNames="CatID" DataSourceID="CategoriesListODS" 
    EnableModelValidation="True">  
    <EmptyDataTemplate> 
     No data was returned. 
    </EmptyDataTemplate>  
    <ItemSeparatorTemplate> 
     <div class="clear"> 
     </div> 
    </ItemSeparatorTemplate> 
    <ItemTemplate> 
     <div class="head-Kuwait-University-news"> 
      <h2> 
       <%# Eval("CatTitleAr")%> 
      </h2> 
      <asp:Literal ID="CatIDLtl" runat="server" Visible="false" Text='<%# Eval("CatID")%>' /> 
     </div> 
     <!--End head Kuwait-University-newst--> 
     <asp:Repeater ID="NewsRepeater" runat="server" DataSourceID="NewsRepeaterODS"> 
      <ItemTemplate> 
       <div class="content-Kuwait-University-news"> 
        <div class="photo-Kuwait-University-news"> 
         <a href="Items.aspx?ItemID=<%# Eval("ItemID")%>"> 
          <img src="admin/ImageUpload/Items/<%# Eval("PictureID") %>.jpg" alt="" style="max-height: 141px; 
           max-width: 152px" /> 
         </a> 
        </div> 
        <!--End photo-Kuwait-University-news--> 
        <div class="title-Kuwait-University-news"> 
         <p> 
          <%# Eval("ItemTitleAr")%> 
         </p> 
        </div> 
        <!--End title-Kuwait-University-news--> 
        <div class="News-Kuwait-University-news"> 
         <p> 
          <%# Eval("SDescriptionAr")%> 
         </p> 
        </div> 
        <!--End news-Kuwait-University-news--> 
        <div class="clear"> 
        </div> 
        <div class="more-Kuwait-University-news"> 
         <a href='Item.aspx?ItemID=<%# Eval("ItemID")%>'> 
          <img src="images/more.jpg" alt="" /> 
         </a> 
        </div> 
        <!--End more-Kuwait-University-news--> 
        <div class="clear"> 
        </div> 
       </div> 
       <!--Endcontent-Kuwait-University-news--> 
       <!--End category--> 
      </ItemTemplate> 
     </asp:Repeater> 
     <asp:ObjectDataSource ID="NewsRepeaterODS" runat="server" OldValuesParameterFormatString="{0}" 
      SelectMethod="Read" TypeName="Items"> 
      <SelectParameters> 
       <asp:Parameter DefaultValue="3.5" Name="ActionCode" Type="String" /> 
       <asp:Parameter Name="CatID" Type="Int64" DefaultValue='<%# Eval("CatID")%>' /> 
       <%--<asp:ControlParameter ControlID="CategoriesList" Name="CatID" PropertyName="UniqueID" Type="Int64" />--%> 
       <asp:Parameter Name="ItemsID" Type="Int64" /> 
       <asp:Parameter Name="Searchtext" Type="String" /> 
      </SelectParameters> 
     </asp:ObjectDataSource> 
     <!--End category--> 
    </ItemTemplate> 
    <LayoutTemplate> 
     <ul id="itemPlaceholderContainer" runat="server" style=""> 
      <li runat="server" id="itemPlaceholder" /> 
     </ul> 
     <div style=""> 
      <asp:DataPager ID="DataPager1" runat="server"> 
       <Fields> 
        <asp:NextPreviousPagerField ButtonType="Button" ShowFirstPageButton="True" ShowNextPageButton="False" 
         ShowPreviousPageButton="False" /> 
        <asp:NumericPagerField /> 
        <asp:NextPreviousPagerField ButtonType="Button" ShowLastPageButton="True" ShowNextPageButton="False" 
         ShowPreviousPageButton="False" /> 
       </Fields> 
      </asp:DataPager> 
     </div> 
    </LayoutTemplate>  
</asp:ListView> 
<asp:ObjectDataSource ID="CategoriesListODS" runat="server" OldValuesParameterFormatString="{0}" 
    SelectMethod="Read" TypeName="Categories"> 
    <SelectParameters> 
     <asp:Parameter DefaultValue="3" Name="ActionCode" Type="String" /> 
     <asp:Parameter Name="CatID" Type="Int64" /> 
     <asp:Parameter Name="Searchtext" Type="String" /> 
    </SelectParameters> 
</asp:ObjectDataSource> 

방법 목록보기에서 CATID를 전달하고 "NewsRepeaterODS"ObjectDataSource를에서 SelectParameters로 만들 수 있나요?

감사

+0

당신이이 질문을보고 했습니까? : http://stackoverflow.com/questions/491537/nested-repeaters-and-sqldatasource-parameters –

+0

안녕하세요, 고마워요, 그게 내가 무엇을 찾고 있었는지입니다. – HAJJAJ

답변

0
Protected Sub CategoriesList_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.ListViewItemEventArgs) Handles CategoriesList.ItemDataBound 
    ' Find the Inner DataSource control in this Row. 
    Dim NewsRepeaterODS As ObjectDataSource = DirectCast(e.Item.FindControl("NewsRepeaterODS"), ObjectDataSource) 

    ' Set the SelectParameter for this DataSource control 
    ' by re-evaluating the field that is to be passed. 
    Dim CatIDLtl As Literal = e.Item.FindControl("CatIDLtl") 
    NewsRepeaterODS.SelectParameters("CatID").DefaultValue = CatIDLtl.Text 
End Sub 
관련 문제