yii使用CArrayDataProvider进行数组分页

时间:2022-04-02 22:07:27

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

在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;')
             ),
          ),
       ));


相关文章