ASP.net Repeater:嵌套布局的最佳实践

时间:2011-03-22 11:00:02

标签: asp.net html nested-repeater

基本上,我要求最好的方法来执行以下操作: 我有这样的布局

<div class="outer">
    <div class="inner"><!-- content --></div>
    <div class="inner"><!-- content --></div>
    <div class="inner"><!-- content --></div>
    <div class="inner"><!-- content --></div>
</div>
<div class="outer">
    <div class="inner"><!-- content --></div>
    <div class="inner"><!-- content --></div>
    <div class="inner"><!-- content --></div>
    <div class="inner"><!-- content --></div>
</div>
<div class="outer">
    <div class="inner"><!-- content --></div>
    <div class="inner"><!-- content --></div>
    <div class="inner"><!-- content --></div>
    <div class="inner"><!-- content --></div>
</div>

因此,外部div将重复三次,每个内部div重复四次。我在ASP.net中这样做,信息来自数据库(可能通过Linq)......

我问的是,使用嵌套转发器和勺子通过for / foreach循环一次为每个转发器提供4条记录,或者将外部div作为文字输出更好吗?

EDITED

<asp:Repeater ID="MyOuterRepeater" runat="server">
    <ItemTemplate>
        <div class="outer">
        <asp:Repeater ID="MyInnerRepeater" runat="server">
            <ItemTemplate>
                <div class="inner">
                <!-- content -->
                </div>
            </ItemTemplate>
        </asp:Repeater>
        </div>
    </ItemTemplate>
</asp:Repeater>

或者只有一个,在顶部和底部有开头/结尾文字,只在需要时才能看到它们?

编辑:有没有人举例说明如何做^^^

1 个答案:

答案 0 :(得分:0)

您的转发器定义不会创建您在问题中提供的结果HTML。它应该是:

<asp:Repeater ID="MyOuterRepeater" runat="server">
    <ItemTemplate>
        <div class="outer">
            <asp:Repeater ID="MyInnerRepeater" runat="server">
                <ItemTemplate>
                    <div class="inner">
                    <!-- content -->
                    </div>
                </ItemTemplate>
            </asp:Repeater>
        </div>
    </ItemTemplate>
</asp:Repeater>

否则,outer div只会呈现一次,所有inner div都会包含在同一个外div中。

嵌套转发器?

如果您的inner元素是动态的,具体取决于数据,您当然应该使用嵌套转发器,但如果每个outer将包含四个inner,那么我看不到任何好处有嵌套的中继器。它实际上会执行得更慢并消耗更多资源。那是你不想要的东西,是吗?