I'd like to get my items who are in my repeater get between a div and after 5 elements in a new div.
So what i currently got is this:
View:
<ItemTemplate>
<asp:HiddenField runat="server" ID="eventID" />
<p><asp:CheckBox runat="server" ID="eventDateCheckbox" /></p>
</div>
</ItemTemplate>
Code behind:
protected void DatesRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
{
var data = (Components.Models.GetDatesModel)e.Item.DataItem;
var chk = (CheckBox)e.Item.FindControl("eventDateCheckbox");
chk.Text = data.EventTimeBegin.ToString();
var hfd = (HiddenField)e.Item.FindControl("eventID");
hfd.Value = data.eventID.ToString();
}
}
And i'd like to display it like this on the view:
<div class="column">
<asp:HiddenField runat="server" ID="eventID" />
<p><asp:CheckBox runat="server" ID="eventDateCheckbox" /></p>
<asp:HiddenField runat="server" ID="eventID" />
<p><asp:CheckBox runat="server" ID="eventDateCheckbox" /></p>
<asp:HiddenField runat="server" ID="eventID" />
<p><asp:CheckBox runat="server" ID="eventDateCheckbox" /></p>
<asp:HiddenField runat="server" ID="eventID" />
<p><asp:CheckBox runat="server" ID="eventDateCheckbox" /></p>
<asp:HiddenField runat="server" ID="eventID" />
<p><asp:CheckBox runat="server" ID="eventDateCheckbox" /></p>
</div>
<div class="column">
<asp:HiddenField runat="server" ID="eventID" />
<p><asp:CheckBox runat="server" ID="eventDateCheckbox" /></p>
<asp:HiddenField runat="server" ID="eventID" />
<p><asp:CheckBox runat="server" ID="eventDateCheckbox" /></p>
<asp:HiddenField runat="server" ID="eventID" />
<p><asp:CheckBox runat="server" ID="eventDateCheckbox" /></p>
<asp:HiddenField runat="server" ID="eventID" />
<p><asp:CheckBox runat="server" ID="eventDateCheckbox" /></p>
<asp:HiddenField runat="server" ID="eventID" />
<p><asp:CheckBox runat="server" ID="eventDateCheckbox" /></p>
</div>
<div class="column">
<asp:HiddenField runat="server" ID="eventID" />
<p><asp:CheckBox runat="server" ID="eventDateCheckbox" /></p>
<asp:HiddenField runat="server" ID="eventID" />
<p><asp:CheckBox runat="server" ID="eventDateCheckbox" /></p>
<asp:HiddenField runat="server" ID="eventID" />
<p><asp:CheckBox runat="server" ID="eventDateCheckbox" /></p>
<asp:HiddenField runat="server" ID="eventID" />
<p><asp:CheckBox runat="server" ID="eventDateCheckbox" /></p>
<asp:HiddenField runat="server" ID="eventID" />
<p><asp:CheckBox runat="server" ID="eventDateCheckbox" /></p>
<asp:HiddenField runat="server" ID="eventID" />
<p><asp:CheckBox runat="server" ID="eventDateCheckbox" /></p>
</div>
How can i achieve this? Thanks in advance!
Use a combination of Literal, Repeater PreRender event, and % Operator.
Here's how the aspx code should look like:
The expected result is the following:
ltDivPrefix
will be<div class="column">
for nth item where n % 5 equals 0, otherwise it will be empty.ltDivSuffix
will be</div>
for nth item where n % 5 equals 4, or n is the last index, otherwise it will be empty.The total number of items can be obtained in
PreRender
event, so do a looping through the Repeater items and set the text ofltDivPrefix
andltDivSuffix
according to the item index: