|

- 帖子
- 138
- 精华
- 0
- 积分
- 109
- 专家分
- 8 EXP
- 来自
- 陕西商洛
- 注册时间
- 2010-7-9
|
1#
发表于 2010-7-12 16:15
| 只看该作者
先将pagination.php文件放到\_code\app\control 文件夹下
Pagination.php 内容如下:
<?php
class Control_Pagination extends QUI_Control_Abstract
{
function render()
{
$pagination = $this->pagination;
$udi = $this->get('udi', $this->_context->requestUDI());
$length = $this->get('length', 9);
$slider = $this->get('slider', 2);
$prev_label = $this->get('prev_label', '上一页');
$next_label = $this->get('prev_label', '下一页');
$url_args = $this->get('url_args');
$out = "<div class=\"pagination\">\n";
if ($this->get('show_count'))
{
$out .= "<p>共 {$pagination['record_count']} 个条目</p>\n";
}
$out .= '<ul id="' . h($this->id()) . "\">\n";
$url_args = (array)$url_args;
if ($pagination['current'] == $pagination['first'])
{
$out .= "<li class=\"disabled\">« {$prev_label}</li>\n";
}
else
{
$url_args['page'] = $pagination['prev'];
$url = url($udi, $url_args);
$out .= "<li><a href=\"{$url}\">« {$prev_label}</a></li>\n";
}
$base = $pagination['first'];
$current = $pagination['current'];
$mid = intval($length / 2);
if ($current < $pagination['first'])
{
$current = $pagination['first'];
}
if ($current > $pagination['last'])
{
$current = $pagination['last'];
}
$begin = $current - $mid;
if ($begin < $pagination['first'])
{
$begin = $pagination['first'];
}
$end = $begin + $length - 1;
if ($end >= $pagination['last'])
{
$end = $pagination['last'];
$begin = $end - $length + 1;
if ($begin < $pagination['first'])
{
$begin = $pagination['first'];
}
}
if ($begin > $pagination['first'])
{
for ($i = $pagination['first']; $i < $pagination['first'] + $slider && $i < $begin; $i ++)
{
$url_args['page'] = $i;
$in = $i + 1 - $base;
$url = url($udi, $url_args);
$out .= "<li><a href=\"{$url}\">{$in}</a></li>\n";
}
if ($i < $begin)
{
$out .= "<li class=\"none\">...</li>\n";
}
}
for ($i = $begin; $i <= $end; $i ++)
{
$url_args['page'] = $i;
$in = $i + 1 - $base;
if ($i == $pagination['current'])
{
$out .= "<li class=\"current\">{$in}</li>\n";
}
else
{
$url = url($udi, $url_args);
$out .= "<li><a href=\"{$url}\">{$in}</a></li>\n";
}
}
if ($pagination['last'] - $end > $slider)
{
$out .= "<li class=\"none\">...</li>\n";
$end = $pagination['last'] - $slider;
}
for ($i = $end + 1; $i <= $pagination['last']; $i ++)
{
$url_args['page'] = $i;
$in = $i + 1 - $base;
$url = url($udi, $url_args);
$out .= "<li><a href=\"{$url}\">{$in}</a></li>\n";
}
if ($pagination['current'] == $pagination['last'])
{
$out .= "<li class=\"disabled\">{$next_label} »</li>\n";
}
else
{
$url_args['page'] = $pagination['next'];
$url = url($udi, $url_args);
$out .= "<li><a href=\"{$url}\">{$next_label} »</a></li>\n";
}
$out .= "</ul></div>\n";
return $out;
}
}
编写控制器的动作方法:
function actionList()
{
$page = intval($this->_context->page);
if ($page < 1) $page = 1;
// 每页 10 个结果
$page_size = 10;
// 进行分页查询,并取得分页信息
$pagination = null;
$rs=Goodstype::find()->limitPage($page, $page_size)
->fetchPagination($pagination)
->get();
// 将查询结果和分页数据传递到视图
$this->_view['posts'] = $rs;
$this->_view['pagination'] = $pagination;
}
给视图中添加一行代码:显示出分页导航条
<?php $this->_control('pagination', 'my-pagination', array('pagination' => $pagination)); ?>再将样式表放到\css文件夹下:pagination.css
.pagination {
font-size: 12px;
font-weight: bold;
}
.pagination p {
float: left;
color: #666;
text-indent: 0;
padding: 2px 0 0 0;
margin: 0 2em 0 0;
}
.pagination ul {
list-style: none;
margin: 0px;
padding: 0px;
}
.pagination li {
list-style: none;
background-color: #fff;
margin: 0px;
display: block;
float: left;
margin-left: 2px;
margin-right: 2px;
line-height: 14px;
}
.pagination li.disabled {
border: 1px solid #DDDDDD;
padding: 2px 6px 2px 6px;
color: #ccc;
}
.pagination li.current {
border: 1px solid #2E6AB1;
padding: 2px 6px 2px 6px;
background-color: #2E6AB1;
color: #fff;
}
.pagination li.none {
border: 1px none;
padding: 2px 6px 2px 6px;
}
.pagination li a {
border: 1px solid #9AAFE5;
padding: 2px 6px 2px 6px;
display: block;
text-decoration: none;
}
.pagination li a:hover {
border: 1px solid #2E6AB1;
}
大功告成!,试试看,绝对让你感到惊喜!!!!!!!!!!!!1 不要忘记把CSS样式表导进去哦,不然绝对不会出现入门教程上的效果啊! |
|