• 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);    
  • 相关阅读:
    Winform中怎样设置ContextMenuStrip右键菜单的选项ToolStripMenuItem添加照片
    JavaScript垃圾回收机制
    前端如何处理内存泄漏
    前端缓存
    深入理解vue-router之keep-alive
    (淘宝无限适配)手机端rem布局详解
    mysql不会使用索引,导致全表扫描情况
    MYSQL性能优化的最佳20+条经验
    深拷贝与浅拷贝的区别,实现深拷贝的几种方法
    vue组件通信方式总结
  • 原文地址:https://www.cnblogs.com/lccjob/p/4739242.html
Copyright © 2020-2023  润新知