基于 yii 中数据的 CGridView 中的样式列

Style columns in CGridView based on data in yii

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

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

可以,可以通过数据指定cssclass。使用 cssClassExpression 选项。

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

您可以使用 cssClassExpression

数组( 'name' => 'status', 'value' => '$data->status0->title', 'cssClassExpression' => 调用函数或通过表达式执行, ),

这样你就可以为不同的行设置不同的class并为那个写相应的css

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

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

基本上此方法会返回 class 个您已创建并希望用于特定条件的名称。
2. 然后我会像

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

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

    ),