Fork me on GitHub

AspNetPager 示例 - 动态查询示例

该示例演示如何使用AspNetPager分页控件对动态查询的结果进行分页。
订单编号:  
订单编号订单日期公司名称客户编号雇员姓名
11077 1998/5/6 Rattlesnake Canyon Grocery RATTC Nancy Davolio
11076 1998/5/6 Bon app' BONAP Margaret Peacock
11075 1998/5/6 Richter Supermarkt RICSU Laura Callahan
11074 1998/5/6 Simons bistro SIMOB Robert King
11073 1998/5/5 Pericles Comidas clásicas PERIC Andrew Fuller
11072 1998/5/5 Ernst Handel ERNSH Margaret Peacock
11071 1998/5/5 LILA-Supermercado LILAS Nancy Davolio
11070 1998/5/5 Lehmanns Marktstand LEHMS Andrew Fuller
11069 1998/5/4 Tortuga Restaurante TORTU Nancy Davolio
11068 1998/5/4 Queen Cozinha QUEEN Laura Callahan
11067 1998/5/4 Drachenblut Delikatessen DRACD Nancy Davolio
11066 1998/5/1 White Clover Markets WHITC Robert King
1页,共27页,每页显示12条记录
<<<12345678910...>>>  

Search.aspx:

<%@ Page Language="C#" AutoEventWireup="true"  MetaDescription="该示例演示如何使用AspNetPager分页控件对动态查询的结果进行分页。" Inherits="Search_Default" MasterPageFile="AspNetPager.master" Title="动态查询示例" Codebehind="Search.aspx.cs" %>

<asp:Content runat="server" ID="content1" ContentPlaceHolderID="main">
<div>订单编号:<asp:DropDownList ID="DropDownList1" runat="server">
        <asp:ListItem>&gt;=</asp:ListItem>
        <asp:ListItem>&lt;=</asp:ListItem>
        <asp:ListItem>=</asp:ListItem>
    </asp:DropDownList><asp:TextBox ID="tb_orderid" runat="server" Width="90px">11000</asp:TextBox>
    <asp:Button ID="btn_search" runat="server" OnClick="btn_search_Click" Text="查询" />
    <asp:Button ID="btn_all" runat="server" OnClick="btn_all_Click" Text="显示所有" Enabled="false"/>
    <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="tb_orderid"
        Display="Dynamic" ErrorMessage="RequiredFieldValidator">必需</asp:RequiredFieldValidator>&nbsp;
    <asp:CompareValidator ID="CompareValidator1" runat="server" ControlToValidate="tb_orderid"
        Display="Dynamic" ErrorMessage="CompareValidator" Operator="DataTypeCheck" SetFocusOnError="True"
        Type="Integer">必须是整数</asp:CompareValidator>
    <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:SqlConnection %>">
    </asp:SqlDataSource>
</div>

   <asp:Repeater ID="Repeater1" runat="server" >
        <HeaderTemplate>
        <table width="100%" class="table table-bordered table-striped">
        <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>
    <webdiyer:aspnetpager id="AspNetPager1" runat="server" PageSize="12" AlwaysShow="True" OnPageChanged="AspNetPager1_PageChanged" ShowCustomInfoSection="Left" ShowPageIndexBox="always" PageIndexBoxType="DropDownList"
    CustomInfoHTML="第<font color='red'><b>%currentPageIndex%</b></font>页,共%PageCount%页,每页显示%PageSize%条记录"></webdiyer:aspnetpager>

</asp:Content>

Search.aspx.cs:

using System;
using System.Data;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class Search_Default : Page
{
    const string vsKey = "searchCriteria"; //ViewState key
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            searchOrders(string.Empty);
        }
    }

    protected void btn_search_Click(object sender, EventArgs e)
    {
        AspNetPager1.CurrentPageIndex = 1;
        btn_all.Enabled = true;
        string s = " where orderid " + DropDownList1.SelectedValue + tb_orderid.Text;
        ViewState[vsKey] = s;
        searchOrders(s);
    }

    void searchOrders(string sWhere)
    {
        SqlDataSource1.SelectCommand = "select O.orderid,O.orderdate,O.customerid,C.CompanyName,E.FirstName+' '+E.LastName as EmployeeName from orders O left outer join Customers C on O.CustomerID=C.CustomerID left outer join Employees E on O.EmployeeID=E.EmployeeID " + sWhere + " order by orderid desc";
        DataView dv = (DataView)SqlDataSource1.Select(DataSourceSelectArguments.Empty);
        AspNetPager1.RecordCount = dv.Count;

        PagedDataSource pds = new PagedDataSource();
        pds.DataSource = dv;
        pds.AllowPaging = true;
        pds.CurrentPageIndex = AspNetPager1.CurrentPageIndex - 1;
        pds.PageSize = AspNetPager1.PageSize;
        Repeater1.DataSource = pds;
        Repeater1.DataBind();
    }

    protected void AspNetPager1_PageChanged(object src, EventArgs e)
    {
        searchOrders((string)ViewState[vsKey]);
    }
    protected void btn_all_Click(object sender, EventArgs e)
    {
        ViewState[vsKey] = null;
        btn_all.Enabled = false;
        AspNetPager1.CurrentPageIndex = 1;
        searchOrders(null);
    }
}