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 &gt;'),'prevPageLabel'=>Yii::t('app', '&lt; 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);    

 

posted @ 2015-08-18 14:02  林小豆  阅读(1021)  评论(0编辑  收藏  举报