Asp.net

ASP.NET 中繼器模板,每 N 個元素的條件程式碼

  • August 3, 2011

我正在使用 asp.net 中繼器來創建一堆圖像。圖像標記都是一樣的,所以標準<ItemTemplate>很好。

但是,我想將 K 圖像包裝在一個 div 中。假設我將 25+ 圖像綁定到中繼器,並且我想要每個 div 5 圖像。如何有條件地為 div 創建開始和結束標籤?

這是一個更適合 for 循環的案例嗎?

這應該對您有用,不需要後面的程式碼中的任何內容(除了綁定中繼器..):

<asp:Repeater ID="repImages" runat="server">
<HeaderTemplate><div></HeaderTemplate>

<ItemTemplate>
<%# (Container.ItemIndex != 0 && Container.ItemIndex % 5 == 0) ? @"</div><div>" : string.Empty %>
<asp:Image ID="imgGallery" runat="server" ImageUrl='<%# /* your code  here */ %>' />
</ItemTemplate>

<FooterTemplate></div></FooterTemplate>
</asp:Repeater>

這就是 Asp.Net WebForms 可以為您提供令人難以置信的 RAD 效率的地方。您可以使用新的 ListView 控制項,並設置每個“組”的項目數,這將允許您設置圍繞組的 HTML,以及每個單獨的項目。這樣,您可以使用條件標籤圍繞組。

<asp:ListView ID="ListView1" runat="server" DataKeyNames="id" DataSourceID="LinqDataSource1" GroupItemCount="3">
<LayoutTemplate>
   <div id="layout">
       <asp:PlaceHolder ID="groupPlaceholder" runat="server"></asp:PlaceHolder>
   </div>
</LayoutTemplate>
<GroupTemplate>
   <div class="group">
       <asp:PlaceHolder ID="itemPlaceholder" runat="server"></asp:PlaceHolder>
   </div>
</GroupTemplate>
<EmptyDataTemplate>
   <span>No data was returned.</span>
</EmptyDataTemplate>
<ItemTemplate>
   <div class="item">
       <img alt='<%# Eval("title") %>' title='<%# Eval("title") %>'
           src='<%# Eval("filename","photos/{0}") %>' />
   </div>
</ItemTemplate>
</asp:ListView>

引用自:https://stackoverflow.com/questions/560023