AspNetPager 常用的两种分页方式

官方已经给出了很多列子,我这里只是把最常用的2种列出来了,以后要用的时候,直接复制。

前台都采用

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>URL 查询并分页</title>
    <%@ Register Assembly="AspNetPager" Namespace="Wuqi.Webdiyer" TagPrefix="webdiyer" %>
</head>
<body>
      <form id="form1" runat="server">
    <div>

        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
        <asp:Button ID="Button1" runat="server" οnclick="Button1_Click" Text="Serach" />
      
    <asp:Repeater ID="Repeater1" runat="server" >
        <HeaderTemplate><table border="1" width="100%"><tr><td>客户编号</td><td>员工编号</td><td>订购日期</td><td>价格</td><td>地址</td></tr></HeaderTemplate>
        <ItemTemplate><tr><td><%#Eval("customerid")%></td>
        <td><%#Eval("employeeid")%></td>
        <td><%#Eval("orderdate")%></td>
        <td><%#Eval("freight")%></td>
        <td><%#Eval("shipaddress")%></td>   
        </tr></ItemTemplate>
        <FooterTemplate></table></FooterTemplate>
        </asp:Repeater>
   
        <webdiyer:aspnetpager id="AspNetPager1" runat="server" PageSize="10"
            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>
    </div>
    </form>
</body>
</html>

后台 带查询

using System.Data.SqlClient;

public partial class _Default : System.Web.UI.Page
{
    private string strselect = "";
    protected void Page_Load(object sender, EventArgs e)
    {
        string cmd = "select count(*) from orders";
        if (Request.QueryString["selectsql"] != null)
        {
            strselect = Server.UrlDecode(Request.QueryString["selectsql"].ToString());
            cmd = "select count(*) from orders where customerid like '%" + strselect + "%'";

        }
        AspNetPager1.RecordCount = (int)SqlHelper.ExecuteScalar(SqlHelper.ConnectionStringLocalTransaction,CommandType.Text, cmd);
    }

    protected void Button1_Click(object sender, EventArgs e)
    {
        if (this.TextBox1.Text.Trim() == "")
        {
            Response.Redirect("Default.aspx");
        }
        else
        {
            Response.Redirect("Default.aspx?selectsql=" + Server.UrlEncode(this.TextBox1.Text.Trim()));
        }
    }

    protected void AspNetPager1_PageChanged(object sender, EventArgs e)
    {
        string cmd ="select orderid,customerid,employeeid,orderdate,freight,shipaddress from orders";
        if (strselect != "")
        {
            cmd = "select orderid,customerid,employeeid,orderdate,freight,shipaddress from orders where customerid like '%" + strselect + "%'";
            this.TextBox1.Text = strselect;
        }

        DataView dv =SqlHelper.ExecuteDataset(SqlHelper.ConnectionStringLocalTransaction, CommandType.Text, cmd).Tables[0].DefaultView;
        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();
    }

}

后台 不带查询

using System.Data.SqlClient;

public partial class Default2 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            string cmd = "select count(*) from orders";
            int totalOrders = (int)SqlHelper.ExecuteScalar(SqlHelper.ConnectionStringLocalTransaction,CommandType.Text,cmd);
            AspNetPager1.RecordCount = totalOrders;
            bindData();
        }
    }

    void bindData()
    {
        Repeater1.DataSource = SqlHelper.ExecuteReader(SqlHelper.ConnectionStringLocalTransaction, CommandType.StoredProcedure, "P_GetPagedOrders2000",
            new SqlParameter("@startIndex", AspNetPager1.StartRecordIndex),
            new SqlParameter("@endIndex", AspNetPager1.EndRecordIndex));
        Repeater1.DataBind();
    }

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

存储过程


set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
create procedure [dbo].[P_GetPagedOrders2000]
(@startIndex int,
@endIndex int
)
as
set nocount on
declare @indextable table(id int identity(1,1),nid int)
set rowcount @endIndex
insert into @indextable(nid) select orderid from orders order by orderid desc
select orderid,customerid,employeeid,orderdate,freight,shipaddress from orders o inner join @indextable t on O.orderid=t.nid
where t.id between @startIndex and @endIndex order by t.id
set nocount off

RETURN

对于少量数据,不带查询

protected void Page_Load(object sender, EventArgs e)
{
            if (!IsPostBack)
            {
                Products pdao = new Products();
                AspNetPager1.RecordCount = int.Parse(pdao.getproductcount());
            }

}

void bindData()
{
            Products pdao = new Products();
            AspNetPager1.RecordCount = int.Parse(pdao.getproductcount());
            PagedDataSource pds = new PagedDataSource();
            pds.DataSource = pdao.getproducts().Tables[0].DefaultView;
            pds.AllowPaging = true;
            pds.CurrentPageIndex = AspNetPager1.CurrentPageIndex - 1;
            pds.PageSize = AspNetPager1.PageSize;
            Repproduct.DataSource = pds;
            Repproduct.DataBind();
}

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

转载于:https://www.cnblogs.com/qinhaijun/archive/2011/08/26/2154355.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表中的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据库中的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表中的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据库中的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值