Yii 分页方法
说明:这里介绍两种分页方法案例
1、CListView
2、CLinkPager
第一种CListView分页方法的使用说明:
yii框架链接:http://www.php100.com/manual/yii/CListView.html
源代码:framework/zii/widgets/CListView.php
格式如下代码:
$dataProvider=new CActiveDataProvider('Post'); $this->widget('zii.widgets.CListView', array( 'dataProvider'=>$dataProvider, 'itemView'=>'_post', // refers to the partial view named '_post' 'sortableAttributes'=>array( 'title', 'create_time'=>'Post Time', ), ));
参数说明:
dataProvider----------视图需要显示的数据源
itemView-----------视图用于显示每个数据项
itemsCssClass------显示各条数据的容器的CSS类。默认为‘items’
ajaxUpdate--------template----------要使用的模板来控制各种组件的布局在列表视图中
pager------------pager 的配置信息。默认为array('class'=>'CLinkPager')
.
我的案例:view层
<?php $this->widget('zii.widgets.CListView', array( 'dataProvider'=>$dataProvider, 'itemView'=>'_new_view', 'itemsCssClass' => '', 'ajaxUpdate'=>false, 'template'=>'{items}{pager}', 'pager' => array('class' =>'CLinkPager','cssFile'=>false,'header'=>'','nextPageLabel' =>Yii::t('app', 'Next >'),'prevPageLabel'=>Yii::t('app', '< Previous'),'id'=>'page',), )); ?>
我的案例:controller层
(1)
$dataProvider=new CActiveDataProvider('EnPublication', array( 'criteria'=>array( 'order'=>'publication_id DESC', ), 'pagination'=>array( 'pageSize'=> 6, ), ));
(2)
$this->render('new_index',array( 'dataProvider'=>$dataProvider ));
第二种CLinkPager分页方法的使用说明:
CLinkPager:用于显示分页的超链接列表;
:http://www.php100.com/manual/yii/CLinkPager.html
源代码:framework/web/widgets/pagers/CLinkPager.php
案例如下:
我的案例:view层
<?php $this->widget('CLinkPager',array( 'pages'=>$pager, 'header'=>'', 'prevPageLabel'=>'上一页', 'nextPageLabel'=>'下一页', )); ?>
参数说明:
pages-------------返回此pager所用的分页信息
header-----------分页按钮前面显示的文本。默认是’Go to page: ‘
nextPageLabel------“下一页”按钮的文本。默认‘Next >’
prevPageLabel----“上一页”按钮的文本。默认‘< Previous’
我的案例:controller层
$enweekly = EnWeekly::model(); //实例化对象 //分页 //1.实例化数据对象(容器) $criteria = new CDbCriteria(); //2.计算记录总数 $count = $enweekly->count($criteria); //3.实例化分页类 $pager = new CPagination($count); //4.指定页大小 $pager->pageSize = 30; //排序 $criteria->order = 'end_date desc' ;//排序条件 //5.产生limit参数 $pager->applyLimit($criteria); //6.执行查询 $right = $enweekly->findAll($criteria);