牛骨文教育服务平台(让学习变的简单)
博文笔记

yii使用CArrayDataProvider进行数组分页

创建时间:2013-05-21 投稿人: 浏览次数:184

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

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

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。