CArrayDataProvider类手册:

http://www.yiichina.com/api/CArrayDataProvider

在yii中无论是CListView还是CGridView,对应数据的传值都是从后台完成的,有时候我们不是从数据库读取,而是自定义一些数组来作为表格的数据。其实Yii在后台对应数组处理有2个好函数的,一个是CActiveDataProvider,另外一个是CArrayDataProvider。从英文的字面意思很容易理解,CActiveDataProvider是用来给从数据库读取的那些数据然后转换成数组;CArrayDataProvider是把自定义的数组转换为可以在ClistView可以使用的格式。

贴上代码,不解释了。忙项目。

在controller里面

[php] view plaincopy
$data = array(
0=>array('id'=>1,'name'=>'合格率'),
1=>array('id'=>2,'name'=>'不合格率'),
); [php] view plaincopy
$repdp = new CArrayDataProvider($data,array(
'keyField'=>'id',
'sort'=>array(
'attributes'=>array('id','name'),
//'defaultOrder'=>array('id' => false),
), )); return $repdp; 在VIEW里面
[php] view plaincopy
<?php
$this->widget('zii.widgets.CListView', array(
'id'=>'AllDayAnalysisPercent-grid',
'dataProvider'=>$AllDayAnalysisPercent,
'itemView'=>'DayAnalysis_view', ));?>
我这里使用了一个itemView的模板。模板如下:
[php] view plaincopy
<tr>
<th><?php echo CHtml::encode($data['name']); ?></th>
</tr>
这里要特别注意!我一开始是用$data->name这样的格式,其实这个格式是复制yii自带模板的格式,但是系统会出错,我后来搜索了很大国外的资料,发下我这个itemView的模板里面其实写错了,应该是$data['name']这样的格式!因为是自定义的数组,应该是php原生数组的格式,而不是yii的那种格式,这个跟从数据库读取出来的方式不同。要特别注意的。
最后CGridView的使用自定义数组作为数据的方式也跟这个是一样的。如果你不懂CGridView的自定义数组作为数据方式,留言,我下次专门贴出。 这篇文字国内暂时没有中文的,我也是搜索了很多国外的英文资料才整理出来。请各位转载的时候注明出处。

From: http://blog.csdn.net/panxiong91/article/details/10510281

yii CListView中使用CArrayDataProvider自定义数组作为数据的更多相关文章

  1. 集合(一)-Java中Arrays.sort()自定义数组的升序和降序排序

    默认升序 package peng; import java.util.Arrays;  public class Testexample { public static void main(Stri ...

  2. Java中的自定义数组队列

    在Java中,作为所有数据结构中存储和获取速度最快的一种,数组凭借其这种简单易用的优势在各个方面都能大显神威.但是数组也有自身的局限性.数组的长度必须是固定的一旦定义之后就无法动态的更改,这就会造成这 ...

  3. python3.4中自定义数组类(即重写数组类)

    '''自定义数组类,实现数组中数字之间的四则运算,内积运算,大小比较,数组元素访问修改及成员测试等功能''' class MyArray: '''保证输入值为数字元素(整型,浮点型,复数)''' de ...

  4. YII框架中可以使用foreach遍历对象以及可以使用数组形式直接访问对象的原因

    YII框架中可以使用foreach遍历对象以及可以使用数组形式直接访问对象的原因在YII框架的使用过程中,我们可以使用foreach直接遍历findAll等方法返回的对象的属性为什么呢?其实这与CMo ...

  5. HTML5 UI框架Kendo UI Web中如何创建自定义组件(二)

    在前面的文章<HTML5 UI框架Kendo UI Web自定义组件(一)>中,对在Kendo UI Web中如何创建自定义组件作出了一些基础讲解,下面将继续前面的内容. 使用一个数据源 ...

  6. Yii框架中集成phprpc、hprose

    在项目开发的过程中有时候会涉及到对外提供接口供第三方程序调用或者是不同程序间需要相互通信,那么最通用的做法是用传统的SOAP方式来实现,用XML的文档格式来作为传输载体.但是这种方式不灵活,支持的数据 ...

  7. 使用Yii框架中遇到的三个问题

    以下由我们在信易网络公司开发项目的时候终结出的一些经验 使用Yii框架中遇到的三个问题 1.main.php文件中欲引入全局变量的问题 还原一下此问题:在Yii框架中,main.php一般会作为整个应 ...

  8. Yii框架zii.widgets.grid自定义按钮,ajax触发事件并提示

    相关类手册: http://www.yiichina.com/api/CButtonColumn   buttons 属性 public array $buttons; the configurati ...

  9. 类模板、Stack的类模板实现(自定义链栈方式,自定义数组方式)

    一.类模板 类模板:将类定义中的数据类型参数化 类模板实际上是函数模板的推广,可以用相同的类模板来组建任意类型的对象集合 (一).类模板的定义 template  <类型形参表> clas ...

随机推荐

  1. 【收集整理】Linux下的目录讲解

    Linux下的目录介绍:在Linux系统中,一切东西都是存放在一个唯一的“虚拟文件系统”中的,这个“虚拟文件系统”是树状的结构以一个根目录开始.以文件来表示所有逻辑实体和非逻辑实体,逻辑实体指文件和目 ...

  2. js获取任意元素到页面的距离

    function getPos(obj){ var pos={left:0,top:0} while(obj){ pos.left+=obj.offsetLeft; pos.top+=obj.offs ...

  3. 表格td、th强制换行

    表格td.th强制换行 <table style="table-layout:fixed" width="100%"> <tr>< ...

  4. corosync+pacemaker and drbd实现mysql高可用集群

    DRBD:Distributed Replicated Block Device 分布式复制块设备,原理图如下 DRBD 有主双架构和双主架构的,当处于主从架构时,这个设备一定只有一个节点是可以读写的 ...

  5. js+jquery检测用户浏览器型号(包括对360浏览器的检测)

    做网站,js检测用户浏览器的版本,是经常要使用到,今天自己写了一个js,完成了对于一些常见浏览器的检测,但是,偏偏对于360浏览器的检测没有任 何办法,研究了一会儿,无果.无论是360安全浏览器,还是 ...

  6. “T”必须是具有公共的无参数构造函数的非抽象类型,才能用作泛型类型或方法

    最近在项目中,使用EF编程时,在使用泛型类型的过程中,写了一上午,结果生成时,编译不通过,报出如下错误: “T”必须是具有公共的无参数构造函数的非抽象类型,才能用作泛型类型或方法.如图: 找了好久,终 ...

  7. .NET笔试题(关于迭代的:遍历XML中的FileName)

    一.使用迭代算法,遍历XML文件中所有的文件名 写一个函数返回文件名集合 在主函数中调用该方法: 以后有关迭代的都写到这儿

  8. C++语言十进制数,CDecimal(未完成)

    在C#和Java中都有存在decimal类似的十进制数字,C++中尚未发现,春节假期忙里抽闲写了一个玩玩,时间紧迫没有测试,只能保证编译通过.抛砖引玉,欢迎大家多提建议 当前缺陷: 1. 除法功能没有 ...

  9. 一周一话题之四(JavaScript、Dom、jQuery全面复习总结<jQuery篇>)

    -->目录导航 一. 初探Jquery 1. 介绍 2. 基础 二. Jquery操作 1. jQuery页面加载 2. 选择器 3. 操作Dom 三. Jquery进阶 1. 隐式迭代与链式编 ...

  10. Rotate

    hdu4998:http://acm.hdu.edu.cn/showproblem.php?pid=4998 题意:给你n个点,以及绕每个点旋转的弧度.然后,问你经过这n次旋转,平面中的点总的效果是相 ...