Fork me on GitHub

AspNetPager demo - Paging for OjbectDataSource

This sample demonstrates how to use AspNetPager control to page through the OjbectDataSource.


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
Page 1 of 32

ObjectDataSource.aspx:

  <asp:ObjectDataSource ID="ObjectDataSource1" runat="server" EnablePaging="True" SelectCountMethod="GetOrderCount" 
    SelectMethod="GetPagedOrders" StartRowIndexParameterName="startIndex" MaximumRowsParameterName="pageSize" 
    TypeName="OrderInfo" OnSelecting="ODS_Selecting">
    <SelectParameters>
    <asp:ControlParameter ControlID="AspNetPager1" PropertyName="StartRecordIndex" DefaultValue="1" Name="startIndex" Type="Int32" />
    <asp:ControlParameter ControlID="AspNetPager1" PropertyName="PageSize" DefaultValue="10" Name="pageSize" Type="Int32" />
    </SelectParameters>    
    </asp:ObjectDataSource>
    <br />
  <asp:Repeater ID="Repeater1" runat="server" DataSourceID="ObjectDataSource1">
        <HeaderTemplate>
        <table width="100%" class="table table-bordered">
        <tr style="backGround-color:#CCCCFF"><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="AspNetPager1" runat="server" AlwaysShow="True" ShowCustomInfoSection="Left"></webdiyer:aspnetpager>

ObjectDataSource.aspx.cs:

using System;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class ObjectDataSource_Default : Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            AspNetPager1.RecordCount = OrderInfo.GetOrderCount();
        }
    }

    protected void ODS_Selecting(object src, ObjectDataSourceSelectingEventArgs e)
    {
        if (!e.ExecutingSelectCount)
        {
            e.Arguments.StartRowIndex = AspNetPager1.StartRecordIndex;
            e.Arguments.MaximumRows = AspNetPager1.PageSize;
        }
    }

}