相关疑难解决方法(0)

智能分页算法

我正在寻找智能分页的示例算法.通过智能,我的意思是我只想显示例如当前页面的2个相邻页面,所以不是以一个可笑的长页面列表结束,而是截断它.

这是一个让它更清晰的快速示例......这就是我现在所拥有的:

Pages: 1 2 3 4 [5] 6 7 8 9 10 11
Run Code Online (Sandbox Code Playgroud)

这就是我想要的结果:

Pages: ... 3 4 [5] 6 7 ...
Run Code Online (Sandbox Code Playgroud)

(在这个例子中,我只显示当前页面的2个相邻页面)

我在PHP/Mysql中实现它,并且"基本"分页(没有trucating)已经编码,我只是在寻找一个优化它的例子......它可以是任何语言的一个例子,只要它给了我一个如何实现它的想法......

php pagination

32
推荐指数
3
解决办法
4万
查看次数

使用SQL Server 2005中的ROW_NUMBER()OVER()在不同列上进行排序的分页查询

假设我正在使用Northwind数据库,并且我希望通过包含以下参数的存储过程运行查询:

  • @Offset 指示分页开始的位置,
  • @Limit 表示页面大小,
  • @SortColumn 表示用于分类目的的列,
  • @SortDirection,表示上升或后代排序.

我的想法是对数据库进行分页,因为结果集包含数千行,因此缓存不是一个选项(并且使用VIEWSTATE甚至不被视为IMO,很糟糕).

您可能知道SQL Server 2005提供了函数ROW_NUMBER,它返回结果集的分区中的行的序号,从1开始,每个分区的第一行.

我们需要对每个返回的列进行排序(本例中为5),动态SQL不是一个选项,因此我们有两种可能:使用大量的IF ... ELSE ...10个查询,这是一个难以维护的地狱,或者具有如下查询:

WITH PaginatedOrders AS (
    SELECT
        CASE (@SortColumn + ':' + @SortDirection)
            WHEN 'OrderID:A' THEN ROW_NUMBER() OVER (ORDER BY Orders.OrderID ASC)
            WHEN 'OrderID:D' THEN ROW_NUMBER() OVER (ORDER BY Orders.OrderID DESC)
            WHEN 'CustomerID:A' THEN ROW_NUMBER() OVER (ORDER BY Orders.CustomerID ASC)
            WHEN 'CustomerID:D' THEN ROW_NUMBER() OVER (ORDER BY Orders.CustomerID DESC)
            WHEN 'EmployeeID:A' THEN ROW_NUMBER() OVER (ORDER BY Orders.EmployeeID ASC)
            WHEN …
Run Code Online (Sandbox Code Playgroud)

pagination sql-server-2005

8
推荐指数
1
解决办法
6658
查看次数

没有SQL的PHP​​动态分页

我有一个动态调用并显示目录图像的脚本,这对于分页是最好的方法吗?我希望能够通过脚本中的变量控制每页显示的图像数量.我正在考虑使用URL varriables(即http://domain.com/page.php?page=1),但我不确定如何解决这个问题.

谢谢您的帮助.

php pagination

7
推荐指数
2
解决办法
4398
查看次数

标签 统计

pagination ×3

php ×2

sql-server-2005 ×1