ListView Alternating Group Template
The ListView have no such thing as alternating the group templates and still is so much needed.
The usage:
It produces:
public class aiListView : ListView
{
int groupDisplayIndex = 1; /*update on June 16, 2010*/
private ITemplate _alternatingGroupTemplate;
public virtual ITemplate AlternatingGroupTemplate
{
get { return _alternatingGroupTemplate; }
set { _alternatingGroupTemplate = value; }
}
protected override void InstantiateGroupTemplate(System.Web.UI.Control container)
{
ITemplate template = this._alternatingGroupTemplate;
if (_alternatingGroupTemplate != null && GroupItemCount > 0 && groupDisplayIndex % 2 == 0 /*update on June 16, 2010*/)
{
template = this._alternatingGroupTemplate;
}
else
{
template = this.GroupTemplate;
}
template.InstantiateIn(container);
groupDisplayIndex++;
}
}
The usage:
<ai:aiListView ID="lvProducts" runat="server" GroupItemCount="3">
<LayoutTemplate>
<asp:PlaceHolder ID="groupPlaceholder" runat="server">
</asp:PlaceHolder>
</LayoutTemplate>
<GroupTemplate>
<div class="row">
<asp:PlaceHolder ID="itemPlaceholder" runat="server">
</asp:PlaceHolder>
</div>
</GroupTemplate>
<AlternatingGroupTemplate>
<div class="row alternate">
<asp:PlaceHolder ID="itemPlaceholder" runat="server">
</asp:PlaceHolder>
</div>
</AlternatingGroupTemplate>
<ItemTemplate>
<div>
</div>
</ItemTemplate>
</ai:aiListView>
It produces:
<div class="row">
<div></div>
<div></div>
<div></div>
</div>
<div class="row alternate">
<div></div>
<div></div>
<div></div>
</div>
<div class="row">
<div></div>
<div></div>
<div></div>
</div>
<div class="row alternate">
<div></div>
<div></div>
<div></div>
</div>
..
Comments
Post a Comment