Fork me on GitHub

AspNetPager 示例 - 克隆属性和事件

该示例演示如何克隆AspNetPager分页控件的属性和事件处理程序。
只需设置一个AspNetPager分页控件的属性及事件处理程序,另一分页控件使用CloneFrom属性克隆此控件的属性及事件处理程序而无需重复设置属性及事件处理程序。

相关属性设置:CloneFrom="要克隆的AspNetPager分页控件的ID"

Page 26 of 32  Orders 251-260
订单编号订单日期公司名称雇员姓名
108271998/1/12Bon app'Nancy Davolio
108261998/1/12Blondesddsl père et filsMichael Suyama
108251998/1/9Drachenblut DelikatessenNancy Davolio
108241998/1/9Folk och fä HBLaura Callahan
108231998/1/9LILA-SupermercadoSteven Buchanan
108221998/1/8Trail's Head Gourmet ProvisionersMichael Suyama
108211998/1/8Split Rail Beer & AleNancy Davolio
108201998/1/7Rattlesnake Canyon GroceryJanet Leverling
108191998/1/7Cactus Comidas para llevarAndrew Fuller
108181998/1/7Magazzini Alimentari RiunitiRobert King
Page 26 of 32  Orders 251-260

Clone.aspx:

<%@ Page Language="C#" MasterPageFile="AspNetPager.master" AutoEventWireup="true" MetaDescription="该示例演示如何克隆AspNetPager分页控件的属性和事件处理程序。" Inherits="Clone_Default" Title="克隆属性和事件" Codebehind="Clone.aspx.cs" %>
<asp:Content runat="server" ContentPlaceHolderID="desc">
    只需设置一个AspNetPager分页控件的属性及事件处理程序,另一分页控件使用CloneFrom属性克隆此控件的属性及事件处理程序而无需重复设置属性及事件处理程序。<p>相关属性设置:<strong>CloneFrom="要克隆的AspNetPager分页控件的ID"</strong></p>
</asp:Content>
<asp:Content ID="Content1" ContentPlaceHolderID="main" Runat="Server">
        <webdiyer:aspnetpager id="AspNetPager1" runat="server" horizontalalign="Center" PagingButtonSpacing="8px" onpagechanged="AspNetPager1_PageChanged"
            showcustominfosection="Left" urlpaging="True" width="100%" ShowNavigationToolTip="true" UrlPageIndexName="pageindex"></webdiyer:aspnetpager>
        <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 runat="server" ID="AspNetPager2" CloneFrom="aspnetpager1"></webdiyer:AspNetPager>
</asp:Content>

Clone.aspx.cs:

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

public partial class Clone_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)
    {
        GridView1.DataSource = SqlHelper.ExecuteReader(CommandType.StoredProcedure, ConfigurationManager.AppSettings["pagedSPName"],
            new SqlParameter("@startIndex", AspNetPager1.StartRecordIndex),
            new SqlParameter("@endIndex", AspNetPager1.EndRecordIndex));
        GridView1.DataBind();
        AspNetPager1.CustomInfoHTML = "Page  <font color=\"red\"><b>" + AspNetPager1.CurrentPageIndex + "</b></font> of  " + AspNetPager1.PageCount;
        AspNetPager1.CustomInfoHTML += "&nbsp;&nbsp;Orders " + AspNetPager1.StartRecordIndex + "-" + AspNetPager1.EndRecordIndex;
    }
}