Fork me on GitHub

AspNetPager demo - Repeater paging

This sample demonstrates how to use AspNetPager control to add paging functionality to the Repeater control.

<<<12345678910...>>>  Go To Page:
Order IDOrder DateCompany NameCustomer IDEmployee Name
11074 5/6/1998 Simons bistro SIMOB Robert King
11075 5/6/1998 Richter Supermarkt RICSU Laura Callahan
11076 5/6/1998 Bon app' BONAP Margaret Peacock
11077 5/6/1998 Rattlesnake Canyon Grocery RATTC Nancy Davolio
11070 5/5/1998 Lehmanns Marktstand LEHMS Andrew Fuller
11071 5/5/1998 LILA-Supermercado LILAS Nancy Davolio
11072 5/5/1998 Ernst Handel ERNSH Margaret Peacock
11073 5/5/1998 Pericles Comidas clásicas PERIC Andrew Fuller
11067 5/4/1998 Drachenblut Delikatessen DRACD Nancy Davolio
11068 5/4/1998 Queen Cozinha QUEEN Laura Callahan
11069 5/4/1998 Tortuga Restaurante TORTU Nancy Davolio
11064 5/1/1998 Save-a-lot Markets SAVEA Nancy Davolio
<<<12345678910...>>>  Go To Page:

PagedRepeater.aspx:

<webdiyer:AspNetPager ID="AspNetPager1" runat="server" Width="100%" UrlPaging="true" ShowPageIndexBox="Always" PageIndexBoxType="DropDownList" TextBeforePageIndexBox="Go To Page: " HorizontalAlign="right" PageSize="12" OnPageChanged="AspNetPager1_PageChanged" EnableTheming="true">
</webdiyer:AspNetPager>
<asp:Repeater ID="Repeater1" runat="server">
    <headertemplate>
        <table width="100%" class="table table-bordered">
            <tr><th style="width:15%">Order ID</th><th style="width:15%">Order Date</th><th style="width:30%">Company Name</th><th style="width:20%">Customer ID</th><th style="width:20%">Employee Name</th></tr>
    </headertemplate>
    <itemtemplate>
        <tr>
            <td><%#DataBinder.Eval(Container.DataItem,"orderid")%></td>
            <td><%#DataBinder.Eval(Container.DataItem,"orderdate","{0:d}")%></td>
            <td><%#DataBinder.Eval(Container.DataItem, "companyname")%></td>
            <td><%#DataBinder.Eval(Container.DataItem,"customerid")%></td>
            <td><%#DataBinder.Eval(Container.DataItem,"employeename")%></td>
        </tr>
    </itemtemplate>
    <footertemplate>
        </table>
    </footertemplate>
</asp:Repeater>
<webdiyer:AspNetPager ID="AspNetPager2" runat="server" CloneFrom="AspNetPager1">
</webdiyer:AspNetPager>

PagedRepeater.aspx.cs:

using System;
using System.Data;
using System.Configuration;
using System.Data.SqlClient;

public partial class PagedRepeater_Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            int totalOrders = (int)SqlHelper.ExecuteScalar(CommandType.StoredProcedure, "P_GetOrderNumber");
            AspNetPager1.RecordCount = totalOrders;
            //bindData(); //do not bind data in Page_Load method when in url paging mode,otherwise data will be bound twice
        }
    }

    void bindData()
    {
        Repeater1.DataSource = SqlHelper.ExecuteReader(CommandType.StoredProcedure, ConfigurationManager.AppSettings["pagedSPName"],
            new SqlParameter("@startIndex", AspNetPager1.StartRecordIndex),
            new SqlParameter("@endIndex", AspNetPager1.EndRecordIndex));
        Repeater1.DataBind();
    }

    protected void AspNetPager1_PageChanged(object src, EventArgs e)
    {
        bindData();
    }
}