Asp.net 同时使用ListView和Repeater

Asp.net 同时使用ListView和Repeater,asp.net,listview,c#-4.0,repeater,Asp.net,Listview,C# 4.0,Repeater,我想把中继器放在中继器里面。由于我的列表视图同时具有ItemTemplate和AlternateItemTemplate,我是否需要添加两个转发器并绑定这两个转发器 <asp:ListView ID="lvData" runat="server" onitemdatabound="lvData_ItemDataBound"> <layouttemplate> <div style="border:dotted 1px gray;">

我想把中继器放在中继器里面。由于我的列表视图同时具有ItemTemplate和AlternateItemTemplate,我是否需要添加两个转发器并绑定这两个转发器

<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>

-  

-

没有要显示的记录。
我很确定答案是肯定的

或者,不要使用AlternatingItemTemplate,而是在ItemTemplate中创建基于您自己的逻辑进行替换的标记。基本上,您只需要使div/@类有所不同

如果可以从ItemTemplate标记中以某种方式检索项目的索引/位置,则可以使用简单的2除法来确定项目是奇数还是偶数

idx%2>0
-->奇数;甚至

奇数:


甚至


然后,当然,你只能有一个孩子的中继器

<div class="ListViewAlternate">
<div class="ListView">