Reputation: 6533
So I have a repeater as follows :
<asp:Repeater ID="footerMenuRepeater" runat="server" onitemdatabound="FooterMenuRepeaterItemDataBound">
<HeaderTemplate>
<ul id="mainMenuList">
</HeaderTemplate>
<ItemTemplate>
<li class="footerParentSubLists <%# ((FooterMenuItem)Container.DataItem).MenuTitleBoldClass %> <%# Container.ItemIndex == 5 ? "liClearLeft" : string.Empty %>">
<div id="footerMenuDiv">
<a class="footerMenuHeader" href='<%# ((FooterMenuItem)Container.DataItem).CallToActionLink %>'><%# ((FooterMenuItem)Container.DataItem).Title %></a>
</div>
<asp:Repeater ID="subItemRepeater" runat="server">
<HeaderTemplate>
<ul class="footerChildSubList">
</HeaderTemplate>
<ItemTemplate>
<li><a class="footerMenuItems <%# ((FooterMenuItem)Container.DataItem).ArrowClass %>" href="<%# ((FooterMenuItem)Container.DataItem).CallToActionLink %>"><%# ((FooterMenuItem)Container.DataItem).Title %></a>
</li>
</ItemTemplate>
<FooterTemplate>
</ul>
</FooterTemplate>
</asp:Repeater>
</li>
</ItemTemplate>
<FooterTemplate>
</ul>
</FooterTemplate>
</asp:Repeater>
What I am looking to do is for each 5 items in this repeater is to create a new row, so my mark up would be as follows
HTML
<ul id="mainMenuList">
<li> <!-- row 1 -->
<ul>
<li class="footerParentSubLists">
<div>
<a class="footerMenuHeader">Header 1</a>
</div>
<ul class="footerChildSubList">
<li>
<a>Sub 1.1</a>
</li>
<li>
<a>Sub 1.2</a>
</li>
<li>
<a>Sub 1.3</a>
</li>
</ul>
</li>
<li class="footerParentSubLists">
<div>
<a class="footerMenuHeader">Header 2</a>
</div>
<ul class="footerChildSubList">
<li>
<a>Sub 2.1</a>
</li>
<li>
<a>Sub 2.2</a>
</li>
</ul>
</li>
<li class="footerParentSubLists">
<div>
<a class="footerMenuHeader">Header 3</a>
</div>
</li>
<li class="footerParentSubLists">
<div>
<a class="footerMenuHeader">Header 4</a>
</div>
</li>
<li class="footerParentSubLists">
<div>
<a class="footerMenuHeader">Header 5</a>
</div>
<ul class="footerChildSubList">
<li>
<a>Sub 5.1</a>
</li>
<li>
<a>Sub 5.2</a>
</li>
</ul>
</li>
</ul>
</li>
<li> <!-- row 2 -->
<ul>
<li class="footerParentSubLists">
<div>
<a class="footerMenuHeader">Header 6</a>
</div>
<ul class="footerChildSubList">
<li>
<a>Sub 6.1</a>
</li>
<li>
<a>Sub 6.2</a>
</li>
<li>
<a>Sub 6.3</a>
</li>
</ul>
</li>
<li class="footerParentSubLists">
<div>
<a class="footerMenuHeader">Header 7</a>
</div>
<ul class="footerChildSubList">
<li>
<a>Sub 7.1</a>
</li>
<li>
<a>Sub 7.2</a>
</li>
<li>
<a>Sub 7.3</a>
</li>
</ul>
</li>
</ul>
</li>
</ul>
Just wondering how I can add this logic to the repeater
Upvotes: 0
Views: 2290
Reputation: 1
Use OnItemDtabound Event to check count of repeater item bounds , when it count reaches five , create new row for next five repeater items Simple.
Upvotes: 0
Reputation: 6249
Add a panel control to the item template with visibility set to "False". Increment a page-level integer variable with each OnItemDataBound
event. When you reach a multiplier of 5, set the panel's visibility to "True".
Let me know if you need some code to help out.
Upvotes: 2