Yii实现分页的两种方法
Yii实现分页的两种方法,一种是用DAO实现,另外一种是在widget实现.
各有优点吧,第一种效率会高一点, 第二种可以使用自带的表格,方便一些.
一. DAO实现分页.
[Controller层]
2 {
3 $sql = "select remitdate, sum(rate) sumrate from td_delivery
4 group by remitdate
5 order by remitdate desc";
6 $criteria=new CDbCriteria();
7 $result = Yii::app()->db->createCommand($sql)->query();
8 $pages=new CPagination($result->rowCount);
9 $pages->pageSize=2;
10 $pages->applyLimit($criteria);
11 $result=Yii::app()->db->createCommand($sql." LIMIT :offset,:limit");
12 $result->bindValue(':offset', $pages->currentPage*$pages->pageSize);
13 $result->bindValue(':limit', $pages->pageSize);
14 $posts=$result->query();
15 $this->render('report',array(
16 'posts'=>$posts,
17 'pages'=>$pages,
18 ));
19 }
[View层]
2 <?php echo CHtml::link($row["remitdate"],array('delivery/view','remitdate'=>$row["sumrate"]));?>
3 <?php echo $row["sumrate"]."<br />" ?>
4 <?php endforeach;?>
5 <?php
6 //分页widget代码:
7 $this->widget('CLinkPager',array('pages'=>$pages));
8 ?>
优点: DAO效率高; 缺点: view层需要自己写一些样式,稍显麻烦一点
二. widget实现分页
[model层]
2 * @var string attribute : 日运费 (统计用)
3 * 需要对新增加的字段做个声明
4 */
5 public $dayrate;
6
7
8 /*
9 * 统计功能: 统计每日的运费
10 */
11 public function statistics()
12 {
13 $criteria = new CDbCriteria;
14 $criteria->select = 'remitdate, sum(rate) AS dayrate';
15 $criteria->group = 'remitdate';
16
17 return new CActiveDataProvider(get_class($this), array(
18 'criteria'=>$criteria,
19 'sort'=>array(
20 // 表头设置点击排序的字段
21 'attributes'=>array(
22 'remitdate',
23 'dayrate'=>array(
24 'asc'=>'dayrate',
25 'desc'=>'dayrate DESC',
26 )
27 ),
28 'defaultOrder'=>'remitdate desc',
29 ),
30 ));
31 }
[Controller层]
2 * 运单统计功能:
3 * 按日期统计
4 */
5 public function actionReport()
6 {
7 $model=new Delivery('statistics');
8 $model->unsetAttributes(); // clear any default values
9
10 $this->render('report',array(
11 'model'=>$model,
12 ));
13 }
[View层]
2 'id'=>'delivery-grid',
3 'dataProvider'=>$model->statistics(),
4 'filter'=>$model,
5 'columns'=>array(
6 'remitdate',
7 'dayrate',
8 array(
9 'class'=>'CButtonColumn',
10 ),
11 ),
12 )); ?>
优点: 可以使用自带的样式; 缺点: 效率略低.
Yii实现分页的两种方法相关推荐
- mongoDB分页的两种方法
http://www.cnblogs.com/xiaolai/p/3401289.html mongoDB的分页查询是通过limit(),skip(),sort()这三个函数组合进行分页查询的 下面这 ...
- Layui数据表格分页通过两种方法实现
SSM框架+Layui框架实现数据表格分页效果图如下所示: 具体实现方法: 方法一:(基于前台进行分页) 实现思路:主要是后台将全部数据返回到前台,之后前台通过Layui的parseData函数来实现 ...
- html按照字数分页,纯javascript实现分页(两种方法)
先给大家贴效果图: 网上确实有很多分页的插件以及开源代码,单本是一个后台开发猿,前台css等样式还驾驭不住,所以就开始自己去写了.其实这个分页原理很简单,就是用ajax往后台传值(当前页码),后台使用 ...
- php javascript分页,纯javascript实现分页(两种方法)
有的时候页面需要很多不同的表组成的数据,该怎么分页呢?使用数据库分页很简单,那么如何使用js实现分页呢?接下来,小编帮大家解决这个问题,需要的朋友一起来学习吧 先给大家贴效果图: 网上确实有很多分页的 ...
- Mysql中分页查询两个方法比较
mysql中分页查询有两种方式, 一种是使用COUNT(*)的方式,具体代码如下 1 2 3 SELECT COUNT(*) FROM foo WHERE b = 1; SELECT a FROM f ...
- MySQL数据库查询时间段的两种方法
MySQL数据库查询时间段的两种方法: 1. SELECT* FROMgroup_details model WHEREmodel.create_time BETWEEN TO_DAYS ( '201 ...
- delphi 读取excel 两种方法
两种方法,一是用ADO连接,问题是Excel文件内容要规则,二是用OLE打开,但操作就没有象 操作数据库那么方便了. 一.用ADO连接: 设置属性ConnetionString 选择 Microso ...
- php控制windows系统关机,window_winXP系统设置一键关机的两种方法,windows系统关机需要三步,对我 - phpStudy...
winXP系统设置一键关机的两种方法 windows系统关机需要三步,对我这样的懒人来说实在不方便.在网络上寻找了许多方法,最后用了一个.现在介绍给有需要的人.关机方法是鼠标一点关机或热键关机. 创建 ...
- vue实现分页的两种方式
vue实现分页的两种方式 (1)方法一:使用slice方法 一次调用后端接口返回所有数据tableData,然后使用tableData.slice((currentPage-1)*pageSize,c ...
最新文章
- Remoting系列(二)----建立第一个入门程序
- python3.6库参考手册_python3.5.2官方帮助文档参考手册(CHM版)
- Vue项目构建后通过Nginx/SpringBoot/Express/Egg发布
- 关于形如--error LNK2005: xxx 已经在 msvcrtd.lib ( MSVCR90D.dll ) 中定义--的问题分析解决
- python安装后如何使用-python如何安装下载后的模块
- 44.事件分发(示例)
- OGG 实现两台Oracle数据库的同步
- springboot 多线程_从零开始到架构,800页Java+并发+容器+多线程+高并发+Spring+SpringBoot源码...
- 强大的音频、视频嗅探式下载工具,还自带浏览器
- html 密码不小于六位怎么设置,192.168.1.1登录入口要六位密码是多少?
- Ubuntu打开wps文件缺少字体
- 随笔之大学四年生活有感
- 深入理解Arduino下的ESP8266_Non-OS_SDK API① Non-OS SDK
- clion_gcc报错
- logx求x怎么用计算机,logx(logx等于什么)
- 跑腿小程序系统,同城闪送、帮买帮送
- 迷你播放器--第一阶段(1)--检索媒体音乐并添加到List播放列表
- PLINK-GWAS学习3------数据质控之性别质控
- 转专业菜鸡的秋招总结
- crh寄存器_端口配置寄存器CRH怎么弄?
热门文章
- 1/3 常用符号:类型说明符
- html-edm(邮件营销)编写规则
- RHEL5.X 重启网卡出现./network-functions: line 78: .: ifcfg-eth0: file not found
- Vue nextTick 机制
- Python:课程期待
- 使用MyEclipse将HTML5移动项目迁移到PhoneGap(一)
- (转载)树、森林与二叉树的转换
- JavaScript 流程控制语句
- linux lvm 简介之二 扩充空间
- 正确获取硬盘序列号源码