Fork me on GitHub

AspNetPager 示例 - 通过url参数获取每页显示记录数

该示例演示如何通过url参数来指定AspNetPager分页控件每页显示的记录数。
相关属性设置:UrlPaging="True" UrlPageSizeName="Url中用于传递每页显示的记录数的参数名"
每页显示记录数: 5条  10条   20条
订单编号订单日期公司名称雇员姓名
109571998/3/18HILARION-AbastosLaura Callahan
109561998/3/17Blauer See DelikatessenMichael Suyama
109551998/3/17Folk och fä HBLaura Callahan
109541998/3/17LINO-DelicatesesSteven Buchanan
109531998/3/16Around the HornAnne Dodsworth
109521998/3/16Alfreds FutterkisteNancy Davolio
109511998/3/16Richter SupermarktAnne Dodsworth
109501998/3/16Magazzini Alimentari RiunitiNancy Davolio
109491998/3/13Bottom-Dollar MarketsAndrew Fuller
109481998/3/13Godos Cocina TípicaJanet Leverling
109471998/3/13B's BeveragesJanet Leverling
109461998/3/12VaffeljernetNancy Davolio
109451998/3/12Morgenstern GesundkostMargaret Peacock
109441998/3/12Bottom-Dollar MarketsMichael Suyama
109431998/3/11B's BeveragesMargaret Peacock
109421998/3/11Reggiani CaseificiAnne Dodsworth
109411998/3/11Save-a-lot MarketsRobert King
109401998/3/11Bon app'Laura Callahan
109391998/3/10Magazzini Alimentari RiunitiAndrew Fuller
109381998/3/10QUICK-StopJanet Leverling
<<<12345678910...>>>

UrlPageSizeName.aspx:

<%@ Page Title="通过url参数获取每页显示记录数" MetaDescription="该示例演示如何通过url参数来指定AspNetPager分页控件每页显示的记录数。"  Language="C#" MasterPageFile="AspNetPager.master" AutoEventWireup="true" Inherits="UrlPageSizeName_Default" Codebehind="UrlPageSizeName.aspx.cs" %>

<asp:Content runat="server" ContentPlaceHolderID="desc">相关属性设置:<strong>UrlPaging="True" UrlPageSizeName="Url中用于传递每页显示的记录数的参数名"</strong></asp:Content>
<asp:Content ID="Content1" runat="server" ContentPlaceHolderID="main">
        <div>
        每页显示记录数:
        <a href="urlpagesizename.aspx?pagesize=5">5条</a>&nbsp;&nbsp;<a href="urlpagesizename.aspx?pagesize=10">10条</a>&nbsp;&nbsp;
        <a href="urlpagesizename.aspx?pagesize=20">20条</a>
        </div>
        <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" Width="100%" CssClass="table table-bordered table-striped">
            <Columns>
                <asp:BoundField DataField="orderid" HeaderText="订单编号" />
                <asp:BoundField DataField="orderdate" HeaderText="订单日期" DataFormatString="{0:d}" />
                <asp:BoundField DataField="companyname" HeaderText="公司名称" />
                <asp:BoundField DataField="employeename" HeaderText="雇员姓名" />
            </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>
        
            
    </asp:Content>

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();
    }
}