For a new project I started working with Sitecore again.
I needed to create a listing of items with paging. I implemented a Listview with a ObjectDataSource and the DataPager control.
<asp:ListView ID="lvListing" runat="server" DataSourceID="odsListing" onitemdatabound="lvListing_ItemDataBound">
<ItemTemplate>
<li class="clearfix">
<a class="thumb" ID="thumnailLink" runat="server" >
<sc:Image Field="Thumbnail" ID="thumbnailImage" MaxWidth="120" runat="server" />
</a>
<h2><asp:HyperLink runat="server" ID="hlTitle" /></a></h2>
<span class="date"> <sc:Date ID="listingDate" runat="server" Format="dd-MM-yyyy" /> <asp:Literal Visible="false" runat="server" ID="litDateField" /></span>
<%# Eval("Fields[\"IntroText\"]") %>
<asp:HyperLink runat="server" CssClass="url" ID="hlNavigationUrl" />
</li>
</ItemTemplate>
<EmptyDataTemplate>
Geen artikelen
</EmptyDataTemplate>
<LayoutTemplate>
<ul ID="itemPlaceholderContainer" runat="server" style="">
<li ID="itemPlaceholder" runat="server" />
</ul>
</LayoutTemplate>
<ItemSeparatorTemplate>
<br />
</ItemSeparatorTemplate>
</asp:ListView>
<ul>
<li class="paging">
<asp:DataPager ID="DataPager1" PagedControlID="lvListing" runat="server" PageSize="10" >
<Fields>
<asp:nextpreviouspagerfield ButtonCssClass="paging-previous" PreviousPageText="Vorige" ButtonType="Link" ShowPreviousPageButton="True" ShowNextPageButton="False"/>
<asp:nextpreviouspagerfield ButtonCssClass="paging-next" NextPageText="Volgende" ButtonType="Link" ShowPreviousPageButton="False" ShowNextPageButton="True" />
<asp:NumericPagerField ButtonType="Link" NextPageText="VOLGENDE" PreviousPageText="VORIGE" RenderNonBreakingSpacesBetweenControls="true" />
</Fields>
</asp:DataPager>
</li>
</ul>
<asp:ObjectDataSource ID="odsListing" runat="server" SelectMethod="GetItems"
TypeName="MyNameSpace.MyUsercontrol"
DataObjectTypeName="Sitecore.Collections.ChildList">
</asp:ObjectDataSource>
In the code behind I created the public method GetItems which returns a ChildListCollection.
namespace MyNameSpace
{
public partial class MyUsercontrol: System.Web.UI.UserControl
{
public Sitecore.Collections.ChildList GetItems()
{
return Sitecore.Context.Item.GetChildren();
}
}
}
The PagedControlID property of the datapager control is set to the ID of the Listview.