Fork me on GitHub

AspNetPager 示例 - Repeater分页示例

该示例演示如何使用AspNetPager分页控件对Repeater控件进行分页。
订单编号订单日期公司名称客户编号雇员姓名
10957 1998/3/18 HILARION-Abastos HILAA Laura Callahan
10956 1998/3/17 Blauer See Delikatessen BLAUS Michael Suyama
10955 1998/3/17 Folk och fä HB FOLKO Laura Callahan
10954 1998/3/17 LINO-Delicateses LINOD Steven Buchanan
10953 1998/3/16 Around the Horn AROUT Anne Dodsworth
10952 1998/3/16 Alfreds Futterkiste ALFKI Nancy Davolio
10951 1998/3/16 Richter Supermarkt RICSU Anne Dodsworth
10950 1998/3/16 Magazzini Alimentari Riuniti MAGAA Nancy Davolio
10949 1998/3/13 Bottom-Dollar Markets BOTTM Andrew Fuller
10948 1998/3/13 Godos Cocina Típica GODOS Janet Leverling
10947 1998/3/13 B's Beverages BSBEV Janet Leverling
10946 1998/3/12 Vaffeljernet VAFFE Nancy Davolio

PagedRepeater.aspx:

<%@ Page Language="C#" AutoEventWireup="true"  MetaDescription="该示例演示如何使用AspNetPager分页控件对Repeater控件进行分页。" Inherits="PagedRepeater_Default" MasterPageFile="AspNetPager.master" Title="Repeater分页示例" Codebehind="PagedRepeater.aspx.cs" %>

<asp:Content runat="server" ContentPlaceHolderID="main">
        <asp:Repeater ID="Repeater1" runat="server">
        <HeaderTemplate>
        <table width="100%" class="table table-bordered table-striped table-hover">
        <tr><th style="width:15%">订单编号</th><th style="width:15%">订单日期</th><th style="width:30%">公司名称</th><th style="width:20%">客户编号</th><th style="width:20%">雇员姓名</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>
    
    <div class="pull-right">
        <webdiyer:AspNetPager ID="AspNetPager1" runat="server" Width="100%" UrlPaging="true" CssClass="pagination" LayoutType="Ul" PagingButtonLayoutType="UnorderedList" PagingButtonSpacing="0" CurrentPageButtonClass="active" PageSize="12" OnPageChanged="AspNetPager1_PageChanged">
        </webdiyer:AspNetPager></div>
</asp:Content>

PagedRepeater.aspx.cs:

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

public partial class PagedRepeater_Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            int totalOrders = (int)SqlHelper.ExecuteScalar(CommandType.StoredProcedure, "P_GetOrderNumber");
            AspNetPager1.RecordCount = totalOrders;
            //bindData(); //使用url分页,只需在分页事件处理程序中绑定数据即可,无需在Page_Load中绑定,否则会导致数据被绑定两次
        }
    }

    void bindData()
    {
        Repeater1.DataSource = SqlHelper.ExecuteReader(CommandType.StoredProcedure, ConfigurationManager.AppSettings["pagedSPName"],
            new SqlParameter("@startIndex", AspNetPager1.StartRecordIndex),
            new SqlParameter("@endIndex", AspNetPager1.EndRecordIndex));
        Repeater1.DataBind();
    }

    protected void AspNetPager1_PageChanged(object src, EventArgs e)
    {
        bindData();
    }
}