Fork me on GitHub

AspNetPager demo - Get page size from url

This sample demonstrates how to enable url paging and get the page size from the url parameter.

Properties and values to be set:UrlPaging="True" UrlPageSizeName="page size parameter name in url"
Order IDOrder DateCompany NameEmployee Name
110745/6/1998Simons bistroRobert King
110755/6/1998Richter SupermarktLaura Callahan
110765/6/1998Bon app'Margaret Peacock
110775/6/1998Rattlesnake Canyon GroceryNancy Davolio
110705/5/1998Lehmanns MarktstandAndrew Fuller
110715/5/1998LILA-SupermercadoNancy Davolio
110725/5/1998Ernst HandelMargaret Peacock
110735/5/1998Pericles Comidas clásicasAndrew Fuller
110675/4/1998Drachenblut DelikatessenNancy Davolio
110685/4/1998Queen CozinhaLaura Callahan
<<<12345678910...>>>  
Page size:10   20   50

UrlPageSizeName.aspx:

Properties and values to be set:<font color="red"><b>UrlPaging="True" UrlPageSizeName="page size parameter name in url"</b></font>
    <br />
        <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" Width="100%" CssClass="table table-bordered">
            <Columns>
                <asp:BoundField DataField="orderid" HeaderText="Order ID" />
                <asp:BoundField DataField="orderdate" HeaderText="Order Date" DataFormatString="{0:d}" />
                <asp:BoundField DataField="companyname" HeaderText="Company Name" />
                <asp:BoundField DataField="employeename" HeaderText="Employee Name" />
            </Columns>
        </asp:GridView>
        <webdiyer:aspnetpager id="AspNetPager1" runat="server" horizontalalign="Center" PagingButtonSpacing="8px" onpagechanged="AspNetPager1_PageChanged"
        urlpaging="True" UrlPageSizeName="pagesize" UrlPageIndexName="pageindex" width="100%" LayoutType="Table" ShowNavigationToolTip="true"></webdiyer:aspnetpager>
        
        <div style="width:100%;text-align:right">
        Page size:<a href="Default.aspx?pagesize=10">10</a>  
        <a href="Default.aspx?pagesize=20">20</a>  
        <a href="Default.aspx?pagesize=50">50</a>
        </div>

UrlPageSizeName.aspx.cs:

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

public partial class UrlPageSizeName_Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            //cache the number of total records to improve performance
            object obj = Cache[GetType() + "totalOrders"];
            if (obj == null)
            {
                int totalOrders = (int)SqlHelper.ExecuteScalar(CommandType.StoredProcedure, "P_GetOrderNumber");
                Cache[GetType() + "totalOrders"] = totalOrders;
                AspNetPager1.RecordCount = totalOrders;
            }
            else
            {
                AspNetPager1.RecordCount = (int)obj;
            }
        }
    }


    protected void AspNetPager1_PageChanged(object src, EventArgs e)
    {
        GridView1.DataSource = SqlHelper.ExecuteReader(CommandType.StoredProcedure, ConfigurationManager.AppSettings["pagedSPName"],
            new SqlParameter("@startIndex", AspNetPager1.StartRecordIndex),
            new SqlParameter("@endIndex", AspNetPager1.EndRecordIndex));
        GridView1.DataBind();
    }
}