一起使用ListView和Repeater

时间:2012-01-26 10:11:07

标签: asp.net listview c#-4.0 repeater

我想将Repeater放在Repeater中。由于我的列表视图同时具有ItemTemplate和Alternate ItemTemplate,我是否需要添加两个中继器并绑定两个中继器?

<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 个答案:

答案 0 :(得分:1)

我很确定答案是肯定的。

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

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

idx % 2 > 0 - &gt;奇;否则甚至

奇:

<div class="ListViewAlternate">

甚至

<div class="ListView">

然后,当然,那里只能有一个儿童中转器。