CGridView里面自定义datacolumns [ 新手入门 ]
前两天没事的时候翻了下yiiframework.com的wiki页面,看到一个非常强大到技巧,在CGridView里面自定义显示columns,简单点:
array(
'name'=>'category_id',
'value'=>'$data->category_id?$data->category->title:"没有分类"',
'filter'=>false,
'htmlOptions'=>array('width'=>'130px')
),
这是显示文章所属分类的一个columns,通过定义表之间的关系我们通常是上面那样写的,发现还可以这样写:
array(//'$data->category_id?$data->category->title:"没有分类"',
'name'=>'category_id',
'value'=>array($this,'getcatoryname'),
'filter'=>false,
'htmlOptions'=>array('width'=>'130px')
),
调用当前控制器里面的getcatoryname方法,getcatoryname在控制器里面就像这样:
public function getcatoryname($data,$row){
if ($data->category_id){
return $data->category->title.$row;
}else{
return '没有数据'.$row;
}
}
方法参数里面$data指的是在CGridView中传入的$model,$row是表示当前为多少行,第一行为0,比如说当前第四条数据没有关联的cateroy,他会显示“没有数据3”,很强大吧? 既然可以调用当前控制器的方法,那么在方法中调用试图不是就可能了么? 所以,这个技巧很强大! 原文地址在:http://www.yiiframework.com/wiki/278/cgridview-render-customized-complex-datacolumns 欢迎拍砖
共 0 条回复
没有找到数据。
samubra
注册时间:2011-07-28
最后登录:2014-04-09
在线时长:0小时0分
最后登录:2014-04-09
在线时长:0小时0分
- 粉丝1
- 金钱1200
- 威望0
- 积分1200