建筑分页

时间:2012-02-17 11:14:24

标签: pagination

虽然已经多次询问过这个问题,但我真的无法从中找到任何线索。

我正在开发一个客户端项目,其中的页码编号如下:

[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]等......

因此,如果有100页,这些数字将计为...... [100]。

以下是我正在使用的代码:

{foreach var=$page from=$pages counter=$counter}
<li><a href="$page.page_url">$counter</a>
{/foreach}

我希望对它们进行分页,这样每页最多只能显示10个页码。

任何帮助都将受到高度赞赏。

提前致谢。

2 个答案:

答案 0 :(得分:0)

首先,您必须记住当前页面的页码。然后决定分页的行为。当前页面示例,接下来的四页,前三页,第一页和最后一页

因此对于第9页,它看起来像这样: [1] ...... [6] [7] [8] [粗体9] [10] [11] [12] [13] ...... [100]

接下来(最难的)就是定义一种有效的算法。

例如:

  1. 定义一个空列表
  2. 将当前页面放在列表中。
  3. 在当前页面之前添加所需数量的元素(例如,当前页面左侧的第一个元素和m个元素)
  4. 在当前页面之后添加所需数量的元素(例如,页面右侧的n个元素和最后一个元素)
  5. 遍历列表以产生分页。
  6. 迭代示例:

    foreach element on list:
        if element.value == current_page
            print_bold [element.value]
        else
            print [element.value]
        nextElement = list.nextElement
        if nextElement.value - element.value > 1:
            print "..."
    

答案 1 :(得分:0)

对于大量页面,请考虑此处描述的“对数”分页(包括PHP代码):

How to do page navigation for many, many pages? Logarithmic page navigation