Zend_Paginator分页学习心得 - ZF Dream
Zend_Paginator分页学习心得
实例化一个分页类,$array是从数据表内读数据的类方法:
$paginator = new Zend_Paginator(new Zend_Paginator_Adapter_Array($array));
设置当前页码:
$paginator->setCurrentPageNumber($page);
从URL获取当前页码: (ZF Dream)
$paginator->setCurrentPageNumber($this->_getParam('page'));
把分页内容发到视图:
$this->view->paginator = $paginator;
当然视图那里必须有$this->paginator接收,象这样:
<html> <body> <h1>Example</h1> <?php if (count($this->paginator)): ?> <ul> <?php foreach ($this->paginator as $item): ?> <li><?php echo $item; ?></li> <?php endforeach; ?> </ul> <?php endif; ?> <?php echo $this->paginationControl($this->paginator, 'Sliding',//页码样式 'my_pagination_control.phtml'); //页码模板?> </body> </html>
下面是几种页码样式: (ZF Dream)
All:显示所有页;
Elastic:Google式,页码范围会根据用户当前页而扩展或缩小;
Jumping:页码最后页之后会显示第一页;
Sliding:Yahoo式,当前页会放在页码中间,这是默认样式。
当然,paginationControl也可以不在视图中设置,而是写在控制器中:
Zend_Paginator::setDefaultScrollingStyle('Sliding'); Zend_View_Helper_PaginationControl::setDefaultViewPartial( 'my_pagination_control.phtml' ); $paginator->setView($view);
官方手册提供了几种页码模板的视图写法,偷懒的人可以直接复制过来用:
(1)Search pagination,效果如下:
(2)Item pagination,效果如下:
(3)Dropdown pagination,效果就是个下拉框选页码
下面是页码模板视图中可以使用的一些占位符,你要写自己的页码模板时会有用,写法是$this->first:
值 | 类型 | 解释 |
first | integer | 第一页的页码 |
firstItemNumber | integer | 当前页上第一条记录是整个记录集的第几条 |
firstPageInRange | integer | 第一个显示出的页码(各页码样式不同) |
current | integer | 当前页码 |
currentItemCount | integer | 本页上的记录有几条 |
itemCountPerPage | integer | 每页上最多可以显示几条记录 |
last | integer | 最后一页的页码 |
lastItemNumber | integer | 当前页上最后一条记录是整个记录集的第几条 |
lastPageInRange | integer | 最后一个显示出的页码(各页码样式不同) |
next | integer | 下一页的页码 |
pageCount | integer | 一共多少页 |
pagesInRange | array | 显示在网页上的页码数组(各页码样式不同) |
previous | integer | 上一页的页码 |
totalItemCount | integer | 一共有几条记录 |
下面是Paginator类的一些方法: (ZF Dream)
1、设置当前页码(默认是1)
$paginator->setCurrentPageNumber($page);
2、设置每页显示的最大数量(默认是10)
$paginator->setItemCountPerPage($num);
3、设置页码里显示多少页(默认为10页)
$paginator->setPageRange($page);
注意:大多数时候这个数字会有用,但是不同的页码样式会有不同的效果,比如Elastic会把这个数字作为起始值
4、设置视图,方便调用
$paginator->setView($view);
这里$view就是当前视图的对象。
2009年11月05日 17:42
好文章,转载到 deving.cn 了,希望可以和更多人分享
2021年9月28日 16:51
In any business, the single most important factors to consider is the sum of revenue it will generate and also time get started on generating it all. When everyone start seeking out a online business, you may find that running your own private cleaning online business fits any bill wonderfully. It is certainly one business which can provide rather sound budgetary returns within a little while; and virtually no complications shall be encountered despite the fact that running this business.