Asp.net
ASP.NET 中繼器模板,每 N 個元素的條件程式碼
我正在使用 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>