2012-01-26 20 views
0

リピーターをリピーターの中に入れたいと思います。私のリストビューはItemTemplateとAlternateItemTemplateの両方を持っているので、2つのリピーターを追加して両方のリピーターをバインドする必要がありますか?リストビューとリピーターを併用する

<asp:ListView ID="lvData" runat="server" onitemdatabound="lvData_ItemDataBound"> 
    <layouttemplate> 
     <div style="border:dotted 1px gray;"> 
      <asp:PlaceHolder ID="itemPlaceholder" runat="server" /> 
     </div> 
    </layouttemplate> 
    <itemtemplate> 
     <div class="ListView"> 
      <h5><%# Eval("CourseCode") %> - <%# Eval("CourseName") %></h5> 
      <asp:Repeater ID="rptComments" runat="server"> 
       <ItemTemplate> 
        <p> 
         <%# DataBinder.Eval(Container.DataItem, "Comment") %></p> 
       </ItemTemplate> 
       <FooterTemplate> 
        <asp:Label ID="lblEmpty" Text="No comments to display..." runat="server" Visible='<%#bool.Parse((rptComments.Items.Count==0).ToString())%>'></asp:Label> 
       </FooterTemplate> 
      </asp:Repeater> 
     </div> 
    </itemtemplate> 
    <alternatingitemtemplate> 
     <div class="ListViewAlternate"> 
      <h5><%# Eval("CourseCode") %> - <%# Eval("CourseName") %></h5>   
      <asp:Repeater ID="rptComments2" runat="server"> 
       <ItemTemplate> 
        <p> 
         <%# DataBinder.Eval(Container.DataItem, "Comment") %></p> 
       </ItemTemplate> 
       <FooterTemplate> 
        <asp:Label ID="lblEmpty" Text="No comments to display..." runat="server" Visible='<%#bool.Parse((rptComments.Items.Count==0).ToString())%>'></asp:Label> 
       </FooterTemplate> 
      </asp:Repeater> 
     </div> 
    </alternatingitemtemplate> 
    <emptydatatemplate> 
    No records to display. 
</emptydatatemplate> 
</asp:ListView> 

答えて

1

私は答えがはいであると確信しています。

また、AlternatingItemTemplateを使用しないでください。代わりに、ItemTemplate内で独自のロジックに基づいて交互に変更するマークアップを作成してください。基本的には、div/@クラスを異なるものにするだけです。

ItemTemplateのマークアップから項目のインデックス/位置を何とか取得できれば、2で単純な除算を使用して項目が奇数か偶数かを判断できます。

idx % 2 > 0 - > oddです。他にも、

奇数:

<div class="ListViewAlternate"> 

でも

<div class="ListView"> 

その後、もちろん、あなたはそこだけ1子リピータを持つことができます。

関連する問題