CGridView显示列

时间:2014-09-24 10:57:54

标签: yii cgridview

我有一个状态字段,应该以绿色或红色突出显示,具体取决于0或1的位置。我有以下代码,但它不起作用,单个颜色绘制中的所有单元格。告诉我怎么做这样的事情?

array(
            'name' => 'status',
            'htmlOptions' => array('class' => $model->status == 0 ? "non_payed_status" : "payed_status"),
            'filter' => false,
        ),

4 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

您可以使用回调功能执行此操作。

在视图中 - CGridView列

array(
		'name' => 'status',
		'value' => array($this,'status_color'), // status_color is callback method
		'htmlOptions' => array('class' => $model->status == 0 ? "non_payed_status" : "payed_status"),
		'filter' => false,
	),

在控制器类中

public function status_color($data)
	{
		if($data->status)
		{
			echo '<div class="payed_status">Active</div>';
		}else{
			echo '<div class="non_payed_status">Inactive</div>';
		}
		 return false;
	}

试试这个,希望它能帮到你。

答案 2 :(得分:0)

array(
            'name' => 'status',
            'htmlOptions' => array('class' => $data->status == 0 ? "non_payed_status" : "payed_status"),
            'filter' => false,
        ),

只需将$model->status更改为$data->status即可。让我知道它的工作原理。

答案 3 :(得分:-1)

尝试添加

&#39;类型&#39; = GT;&#39;原料&#39;

array(
            'name' => 'status',
            'htmlOptions' => array('class' => $model->status == 0 ? "non_payed_status" :"payed_status"),
            'filter' => false,
    'type'=>'raw'
        ),