基于yii中的数据在CGridView中设置样式列

时间:2015-01-22 10:09:41

标签: php yii cgridview

是否可以根据数据设置CGridView的样式? 例如,这两种情况:

enter image description here

或者我必须使用其他选项?

3 个答案:

答案 0 :(得分:3)

是的,您可以按数据指定css类。使用cssClassExpression选项。

$this->widget('zii.widgets.grid.CGridView', array(
    'dataProvider'=>$dataProvider,
    'columns'=>array(
        // ...
        array(
            'name'=>'Delta',
            'value' => $data->value,
            'cssClassExpression' => '$data->delta > 0 ? "up" : "down"',
        ),
        // ...
    ),
));

答案 1 :(得分:1)

从其他答案可以清楚地看出cssClassExpression可以用于此目的。我认为会有很多if语句,因此您无法为cssClassExpression使用内联if语句。
我会这样做。
1.首先在模型中定义一个方法,如

public function checkColour()
{
if('value'<10)
{
return 'green quarter'
}
if('value'>10)
{
return 'yellow half'
}
}

基本上,此方法返回您已创建并希望用于特定条件的类名 那我就像用

一样使用它
'columns'=>array(

        array(
            'name'=>'nozare',
            'cssClassExpression' => '$data->checkColour()'
        ),

    ),

答案 2 :(得分:0)

您可以使用cssClassExpression

来实现

阵列(     &#39;名称&#39; =&GT; &#39;状态&#39 ;,     &#39;值&#39; =&GT; &#39; $ DATA-&GT; status0-&GT;标题&#39 ;,     &#39; cssClassExpression&#39; =&GT;调用函数或通过表达式执行, ),

通过这种方式,您可以为不同的行设置不同的类,并为该

编写相应的css