Fork me on GitHub

AspNetPager 示例 - Url重写

该示例演示在使用AspNetPager的url分页方式时重写url。
需要设置的相关属性有:EnableUrlRewriting="true" UrlRewritePattern="urlrewriting/page_{0}.aspx"
注意:设置EnableUrlRewriting="true"将自动设置UrlPaging="true"(默认为false),无需再单独设置该属性的值。
订单编号:11077     订单日期:1998/5/6
公司名称:Rattlesnake Canyon Grocery
雇员姓名:Nancy Davolio

订单编号:11076     订单日期:1998/5/6
公司名称:Bon app'
雇员姓名:Margaret Peacock

订单编号:11075     订单日期:1998/5/6
公司名称:Richter Supermarkt
雇员姓名:Laura Callahan

订单编号:11074     订单日期:1998/5/6
公司名称:Simons bistro
雇员姓名:Robert King

订单编号:11073     订单日期:1998/5/5
公司名称:Pericles Comidas clásicas
雇员姓名:Andrew Fuller

订单编号:11072     订单日期:1998/5/5
公司名称:Ernst Handel
雇员姓名:Margaret Peacock

订单编号:11071     订单日期:1998/5/5
公司名称:LILA-Supermercado
雇员姓名:Nancy Davolio

订单编号:11070     订单日期:1998/5/5
公司名称:Lehmanns Marktstand
雇员姓名:Andrew Fuller

订单编号:11069     订单日期:1998/5/4
公司名称:Tortuga Restaurante
雇员姓名:Nancy Davolio

订单编号:11068     订单日期:1998/5/4
公司名称:Queen Cozinha
雇员姓名:Laura Callahan

UrlRewriting.aspx:

<%@ Page Language="C#" AutoEventWireup="true"  MetaDescription="该示例演示在使用AspNetPager的url分页方式时重写url。" Inherits="UrlRewriting_Default" MasterPageFile="AspNetPager.master" Title="Url重写" Codebehind="UrlRewriting.aspx.cs" %>
<asp:Content runat="server" ContentPlaceHolderID="desc">
    需要设置的相关属性有:<strong>EnableUrlRewriting="true" UrlRewritePattern="urlrewriting/page_{0}.aspx"</strong>。
<div class="text-danger">注意:设置EnableUrlRewriting="true"将自动设置UrlPaging="true"(默认为false),无需再单独设置该属性的值。</div>
</asp:Content>
<asp:Content runat="server" ID="content1" ContentPlaceHolderID="main">
        <asp:DataList ID="DataList1" runat="server"  RepeatDirection="Horizontal" RepeatColumns="2" Width="100%">
        <ItemStyle Width="50%"/>
<ItemTemplate>
订单编号:<%#DataBinder.Eval(Container.DataItem,"orderid")%>&nbsp;&nbsp;&nbsp;&nbsp;
订单日期:<font color="red"><%#DataBinder.Eval(Container.DataItem,"orderdate","{0:d}")%></font><br>
公司名称:<%#DataBinder.Eval(Container.DataItem,"companyname")%><br>
雇员姓名:<%#DataBinder.Eval(Container.DataItem,"employeename")%><br>
<hr>
</ItemTemplate>
        </asp:DataList>
        <webdiyer:aspnetpager id="AspNetPager1" runat="server" horizontalalign="Center" width="100%" ShowPageIndexBox="Always"
        EnableUrlRewriting="true" UrlRewritePattern="urlrewriting/page_{0}.aspx" FirstPageUrlRewritePattern="urlrewriting.aspx" OnPageChanged="AspNetPager1_PageChanged" NumericButtonTextFormatString="-{0}-"></webdiyer:aspnetpager>
    
</asp:Content>

UrlRewriting.aspx.cs:

using System;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Web.UI;

public partial class UrlRewriting_Default : 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)
    {
        DataList1.DataSource = SqlHelper.ExecuteReader(CommandType.StoredProcedure, ConfigurationManager.AppSettings["pagedSPName"],
            new SqlParameter("@startIndex", AspNetPager1.StartRecordIndex),
            new SqlParameter("@endIndex", AspNetPager1.EndRecordIndex));
        DataList1.DataBind();
    }
}