Yii CGridView columns利用数组或变量传值

继续Yii框架的学习与使用,CGridView对于网站后台而言十分有用处,可以很快速地实现数据列表显示,并集成排序,搜索等功能,很巧妙。
今天,在项目中遇到了状态显示问题,在controller中定义了数组:

    public $_status_text = array(
        0 => '待发送',
        1 => '已发送',
        2 => '收到回复',
        3 => '确认成功',
        4 => '确认失败',
    );

想把这个$this->_status_text直接用在CGridView中,但发现不可能,显示错误undefined variable.
惟有寻求其他解决办法,及看代码,知道了怎么传值,得到的解决办法,是controller中定义一个方法:
 public function get_status_text($data,$row){
    return $this->_status_text[$data->status]; }

看介绍,上面的$data 代表行数据,而$row代表行号。
而在CGridView的status列,则需要调用这个方法了:

array('name'=>'status','type'=>'raw','value'=>array($this,'get_status_text')),

上面的意思是调用$this下面的方法get_status_text,$this就是controller了。
至此,我们可以知道怎样方便地使用CGridView显示并操作列数据了。

时间: 2024-10-04 16:28:57

Yii CGridView columns利用数组或变量传值的相关文章

Yii CGridView用法实例详解_php实例

本文实例讲述了Yii CGridView用法.分享给大家供大家参考,具体如下: CGridView的功能是用来显示的数据列表.它支持排序,分页,和AJAX数据请求. CGridView最好使用 data provider,最好是 CActiveDataProvider . 简单代码如下: $dataProvider=new CActiveDataProvider('Post'); $this->widget('zii.widgets.grid.CGridView', array( 'dataPr

Yii CGridView用法实例详解

本文实例讲述了Yii CGridView用法.分享给大家供大家参考,具体如下: CGridView的功能是用来显示的数据列表.它支持排序,分页,和AJAX数据请求. CGridView最好使用 data provider,最好是 CActiveDataProvider . 简单代码如下: $dataProvider=new CActiveDataProvider('Post'); $this->widget('zii.widgets.grid.CGridView', array( 'dataPr

C/C++中利用数组名/指针进行排序实例

在c/c++中利用数组名作为函数参数传递排序和用指针进行排序的例子. 以下两个例子要非常注意,函数传递的不是数组中数组元素的真实值而是数组在内存中的实际地址. #include <stdio.h>void main(void){void reversal();static int a[10] = {0,1,2,3,4,5,6,7,8,9}; /* 建立一个数组并初始化 */int i;for (i=0;i<10;i++){printf("%d ",a);}printf

利用数组,实现回文数的判断

任务:利用数组,实现回文数的判断 #include<iostream> using namespace std; bool isPalindrome(int); int main() { int m,n; cout<<"求多少以内的回文数?"<<endl; cin>>m; for(n=1;n<=m;++n) if(isPalindrome(n)) cout<<n<<" "; return

asp中利用数组实现数据库记录的批量录入方法

数据|数据库|数组 asp中利用数组实现数据库记录的批量录入方法(原创) 演示:http://www.zwtd.com/1/yanek/n/needdj2.asp <% rem 文章题目 asp中利用数组实现数据库记录的批量录入方法(原创)作者:yanek联系email:aspboy@263.net%> 包括两个文件 1.allneeddj.asp:实现表单的生成 2. allneeddjresult.asp 处理表单批量录入 3.hbedu.mdb :数据库文件 其数据库结构如下 provi

asp中利用数组实现数据库记录的批量录入方法(原创),有演示,建议入精华

精华|数据|数据库|数组|原创 asp中利用数组实现数据库记录的批量录入方法(原创)演示:http://www.zwtd.com/1/yanek/n/needdj2.asp<%rem 文章题目 asp中利用数组实现数据库记录的批量录入方法(原创)作者:yanek联系email:aspboy@263.net%> 包括两个文件1.allneeddj.asp:实现表单的生成2. allneeddjresult.asp 处理表单批量录入3.hbedu.mdb :数据库文件其数据库结构如下provinc

js利用数组length属性清空和截短数组的小例子

 这篇文章主要介绍了js利用数组length属性清空和截短数组的小例子,有需要的朋友可以参考一下 1.使用length清空数组:    代码如下: <script>     var arr1 = ['aaa','bbbb','http://www.jb51.net'];     alert(arr1);     arr1.length = 0;     alert(arr1); //数组为空 </script>     2.使用length截短数组:    代码如下: <sc

利用try-catch判断变量是已声明未声明还是未赋值

这篇文章主要介绍了利用try-catch判断变量是已声明未赋值还是未声明,需要的朋友可以参考下 目的是如果一个变量是已声明未赋值,就可以直接赋值:并且不能改变变量的作用域    如果未声明的话,就重新声明,    在网上搜了下,常见的方法是if(typeof(a)=='undefined'){var a='ss';},    但是这种方法对未声明或已声明未赋值的变量都会返回true.而且如果是这样:   代码如下: var a;  function f(){  if(typeof(a)=='un

二维数组-String数组之间如何传值

问题描述 String数组之间如何传值 package com.excel.action; import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.text.DecimalFormat; import java.text.