yii使用CArrayDataProvider进行数组分页

本文介绍如何在YII框架中利用CArrayDataProvider实现数组数据的分页功能,并通过CGridView进行数据显示。

我们的数据未必都是存储在数据库中,很多时候是用数组来组织的。所以获取数组数据,进行分页是比较常见的编程要求。

在YII中我们可以利用CArrayDataProvider,可以对一个数组里面的数据进行分页
php代码如下
 

[php]  view plain copy
  1. public function actionPage(){  
  2.            $rawData = array(  
  3.                array('id'=>1,'username'=>'aa','password'=>'aaaaaa'),  
  4.                array('id'=>2,'username'=>'bb','password'=>'aaaaaa'),  
  5.                array('id'=>3,'username'=>'cc','password'=>'aaaaaa'),  
  6.                array('id'=>4,'username'=>'dd','password'=>'aaaaaa'),  
  7.                array('id'=>5,'username'=>'ee','password'=>'aaaaaa'),  
  8.                array('id'=>6,'username'=>'ff','password'=>'aaaaaa'),  
  9.                array('id'=>7,'username'=>'gg','password'=>'aaaaaa'),  
  10.                array('id'=>8,'username'=>'hh','password'=>'aaaaaa'),  
  11.                array('id'=>9,'username'=>'jj','password'=>'aaaaaa'),  
  12.                array('id'=>10,'username'=>'qq','password'=>'aaaaaa'),  
  13.                array('id'=>11,'username'=>'www','password'=>'aaaaaa'),  
  14.                array('id'=>12,'username'=>'xx','password'=>'aaaaaa'),  
  15.                array('id'=>13,'username'=>'zz','password'=>'aaaaaa'),  
  16.            );  
  17.              
  18.            $dataProvider=new CArrayDataProvider($rawDataarray(  
  19.                'id'=>'user',  
  20.                'sort'=>array(  
  21.                    'attributes'=>array(  
  22.                         'id''username''password',  
  23.                    ),  
  24.                ),  
  25.                'pagination'=>array(  
  26.                    'pageSize'=>10,  
  27.                ),  
  28.            ));  
  29.            $this->render('page',array('dataProvider'=>$dataProvider));  
  30.        }  


在页面展示的时候使用CGridView进行数据显示
 
[html]  view plain copy
  1. $this->widget('zii.widgets.grid.CGridView',array(  
  2.          'id'=>'effectivepolicy-grid',  
  3.          'dataProvider'=>$dataProvider,  
  4.          'emptyText'=>'没有找到数据.',  
  5.          'nullDisplay'=>'-',  
  6.          'columns'=>array(  
  7.               
  8.              array(  
  9.                'name'=>'用户名',  
  10.                'value'=>'$data["username"]',  
  11.                'htmlOptions'=>array('style'=>'width:55px;')  
  12.              ),  
  13.                                array(  
  14.                'name'=>'密码',  
  15.                'value'=>'$data["password"]',  
  16.                'htmlOptions'=>array('style'=>'width:55px;')  
  17.              ),  
  18.           ),  
  19.        ));  
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值