要实现这样的一个列表分页的功能 如下图片:
分页需要在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
原文:http://blog.csdn.net/liangpz521/article/details/19985387