用asp.net实现数字分页

时间:2009-11-06 05:37:33

标签: c# asp.net pagination

海派,         我的网站上有近20页....每个页面都有一个gridview,有数千条记录绑定到它...现在我想对所有这些网格实现自定义分页....人们可以给一个人分页可以重复使用所有这些页面的类

2 个答案:

答案 0 :(得分:2)

你真的不会得到一个适合所有类的人,这就是为什么它被称为自定义分页。

关于我过去如何实现这一点的简单指南。

将当前页码存储在某处Querystring / Session / Wherever

当您调用数据方法/存储过程以询问每页所需的页码数和记录数时的数据传递。

修改存储过程/数据方法只返回这些边界中的记录,它还需要返回总记录的计数,以便应用程序知道有多少页面。

以下是使用SQL2005 / 2008如何在存储过程中实现分页的简单示例(稍微多于2000年)

CREATE PROCEDURE GetTowns
(
@OutTotalRecCount INT OUTPUT,
@CurrentPage INT,
@PageSize INT
)
AS

    SELECT * FROM     
     (
     SELECT 
      ROW_NUMBER() OVER (ORDER BY TownName) AS Row, 
      TownId,
      TownName
     FROM Towns
     ) AS TownsWithRowNumbers
    WHERE  Row >= (@CurrentPage - 1) * @PageSize + 1 AND Row <= @CurrentPage*@PageSize

    SELECT @OutTotalRecCount = COUNT(*) FROM Towns

答案 1 :(得分:0)

不确定“课程”,但这里有几个链接:

.NET 3.5

.NET 2.0

P.S。如果您使用DataSet作为数据源,则支持开箱即用的分页和排序。