Fork me on GitHub

AspNetPager 示例 - 动态查询示例

该示例演示如何使用AspNetPager分页控件对动态查询的结果进行Url分页。
订单编号 >=  
订单编号订单日期公司名称客户编号雇员姓名
11041 1998/4/22 Chop-suey Chinese CHOPS Janet Leverling
11040 1998/4/22 Great Lakes Food Market GREAL Margaret Peacock
11039 1998/4/21 LINO-Delicateses LINOD Nancy Davolio
11038 1998/4/21 Suprêmes délices SUPRD Nancy Davolio
11037 1998/4/21 Godos Cocina Típica GODOS Robert King
11036 1998/4/20 Drachenblut Delikatessen DRACD Laura Callahan
11035 1998/4/20 Suprêmes délices SUPRD Andrew Fuller
11034 1998/4/20 Old World Delicatessen OLDWO Laura Callahan
11033 1998/4/17 Richter Supermarkt RICSU Robert King
11032 1998/4/17 White Clover Markets WHITC Andrew Fuller
11031 1998/4/17 Save-a-lot Markets SAVEA Michael Suyama
11030 1998/4/17 Save-a-lot Markets SAVEA Robert King
Page:4/27 12/Page  Order:37-48 of 318
<<<12345678910...>>>  

UrlSearch.aspx:

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

<asp:Content ID="Content1" ContentPlaceHolderID="main" Runat="Server">
<div>订单编号 >= <asp:TextBox ID="tb_orderid" runat="server" Width="90px"></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" ShowCustomInfoSection="Left" ShowDisabledButtons="false" ShowPageIndexBox="always" PageIndexBoxType="DropDownList"
    CustomInfoHTML="Page:<font color='red'><b>%currentPageIndex%</b></font>/%PageCount%&nbsp;%PageSize%/Page&nbsp;&nbsp;Order:%StartRecordIndex%-%EndRecordIndex% of %RecordCount%" UrlPaging="true" OnPageChanged="AspNetPager1_PageChanged"></webdiyer:aspnetpager>
</asp:Content>

UrlSearch.aspx.cs:

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

public partial class UrlSearch_Default : Page
{
    private int minId=0;
    protected void Page_Load(object sender, EventArgs e)
    {
        string cmd = "select count(*) from orders";
        if (int.TryParse(Request.QueryString["minid"], out minId) && minId > 0)
        {
            cmd = "select count(*) from orders where orderid>=" + minId;
            btn_all.Enabled = true;
        }
        else
            btn_all.Enabled = false;
        AspNetPager1.RecordCount = (int) SqlHelper.ExecuteScalar(CommandType.Text, cmd);
    }

    protected void btn_search_Click(object sender, EventArgs e)
    {
        Response.Redirect("default.aspx?minid="+tb_orderid.Text);
    }


    protected void btn_all_Click(object sender, EventArgs e)
    {
        Response.Redirect("default.aspx");
    }
    protected void AspNetPager1_PageChanged(object sender, EventArgs e)
    {
        string cmd =
            "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 order by orderid desc";
        if (minId > 0)
        {
            cmd =
                "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 where O.orderid>=" +
                minId + " order by orderid desc";
            tb_orderid.Text = minId.ToString();
        }
        SqlDataSource1.SelectCommand = cmd;
        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();
    }
}