我们的数据未必都是存储在数据库中,很多时候是用数组来组织的。所以获取数组数据,进行分页是比较常见的编程要求。
在YII中我们可以利用CArrayDataProvider,可以对一个数组里面的数据进行分页
php代码如下
- public function actionPage(){
- $rawData = array(
- array('id'=>1,'username'=>'aa','password'=>'aaaaaa'),
- array('id'=>2,'username'=>'bb','password'=>'aaaaaa'),
- array('id'=>3,'username'=>'cc','password'=>'aaaaaa'),
- array('id'=>4,'username'=>'dd','password'=>'aaaaaa'),
- array('id'=>5,'username'=>'ee','password'=>'aaaaaa'),
- array('id'=>6,'username'=>'ff','password'=>'aaaaaa'),
- array('id'=>7,'username'=>'gg','password'=>'aaaaaa'),
- array('id'=>8,'username'=>'hh','password'=>'aaaaaa'),
- array('id'=>9,'username'=>'jj','password'=>'aaaaaa'),
- array('id'=>10,'username'=>'qq','password'=>'aaaaaa'),
- array('id'=>11,'username'=>'www','password'=>'aaaaaa'),
- array('id'=>12,'username'=>'xx','password'=>'aaaaaa'),
- array('id'=>13,'username'=>'zz','password'=>'aaaaaa'),
- );
- $dataProvider=new CArrayDataProvider($rawData, array(
- 'id'=>'user',
- 'sort'=>array(
- 'attributes'=>array(
- 'id', 'username', 'password',
- ),
- ),
- 'pagination'=>array(
- 'pageSize'=>10,
- ),
- ));
- $this->render('page',array('dataProvider'=>$dataProvider));
- }
在页面展示的时候使用CGridView进行数据显示
- $this->widget('zii.widgets.grid.CGridView',array(
- 'id'=>'effectivepolicy-grid',
- 'dataProvider'=>$dataProvider,
- 'emptyText'=>'没有找到数据.',
- 'nullDisplay'=>'-',
- 'columns'=>array(
- array(
- 'name'=>'用户名',
- 'value'=>'$data["username"]',
- 'htmlOptions'=>array('style'=>'width:55px;')
- ),
- array(
- 'name'=>'密码',
- 'value'=>'$data["password"]',
- 'htmlOptions'=>array('style'=>'width:55px;')
- ),
- ),
- ));
本文介绍如何在YII框架中利用CArrayDataProvider实现数组数据的分页功能,并通过CGridView进行数据显示。
787

被折叠的 条评论
为什么被折叠?



