首页 > 其他 > 详细

Yii 分页链接定制(复合条件分页) [整理学习]

时间:2014-02-27 17:15:49      阅读:491      评论:0      收藏:0      [点我收藏+]

要实现这样的一个列表分页的功能 如下图片:

bubuko.com,布布扣

分页需要在controller里面实例化CPagination对象,这个对象有一个public属性-----route,这个属性默认是为空的,也就是分页的链接是以当前请求的url为准的。

我们可以给他赋值,yii就会以我们想要的地址去写分页链接的地址了。

//controller
$pager = new CPagination;
$pager->route = ‘site/userlist‘;
//最终生成的地址会是:*******index.php?r=site/userlist
//或者可以这样加上参数
$url = ‘&id=5&action=search‘;
$pager->route = ‘site/userlist‘ . $url;
//最终生成的地址会是:*******index.php?r=site/userlist&id=5&action=search

//view层不需要做任何改变

还有一种方法:

//controller
$_GET[‘action‘] = ‘search‘;//或 $action = Yii::app()->request->getParam(‘action‘,‘search‘);
$_GET[‘username‘] = ‘test‘;
$pager = new CPagination;
//假如你当前请求的地址是*****index.php?r=r=site/userlist
//那么最终生成的url会是*****index.php?r=r=site/userlist&action=search&username=test

//view层不需要做任何改变

这样像那种搜索结果的分页,需要保持搜索条件的情况下就会有用到了



我实际中用到的代码如下所示:

    public function actionIndex() {
        $criteria = new CDbCriteria();
        $grade = $this->_gets->getParam(‘grade‘,0);
        if ($grade) {
            $criteria->addCondition(‘view_flag=‘.$grade);
        }
        $cid = $this->_gets->getParam(‘cid‘,0);
        $count = UpFile::model()->count($criteria);
        $pager = new CPagination($count);
        $pager->pageSize = 5;  //每页显示的个数
        $pager->route = ‘‘;
        $pager->applyLimit($criteria);
        $criteria->select = ‘file_id,file_title‘;
        $info = UpFile::model()->findAll($criteria);
        $this->render(‘index‘,array(‘info‘=>$info,‘pager‘=>$pager,
        ‘pcid‘=>$cid,‘pgrade‘=>$grade,

        ));
    }


Yii 分页链接定制(复合条件分页) [整理学习],布布扣,bubuko.com

Yii 分页链接定制(复合条件分页) [整理学习]

原文:http://blog.csdn.net/liangpz521/article/details/19985387

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!