根据CGridView中的Column值更改行颜色

时间:2012-06-18 05:25:59

标签: yii

在Yii中,CGridView在行中有自己的背景颜色。但我想要做的是根据列之一的值突出显示特定行。

对于Instance,我有三列,id,name,status。现在,如果状态的值为Inactive或0,我应该用一些颜色突出显示该行。

我简要阅读了课程参考资料并搜索了这个网站。但找不到相关的解决方案。如果有一些示例或某个方向朝向正确的解决方案,那将非常感激。

谢谢, Ujjwal

2 个答案:

答案 0 :(得分:20)

CGridView 'rowCssClassExpression'是获得你想要的东西的方式。

$this->widget('zii.widgets.grid.CGridView', array(
    'dataProvider'=>$dataProvider,
    'rowCssClassExpression'=>'($data->myFlag==0)?"normal":"especial"',
    'columns'=>array(
    ...
    ),
));

您还可以调用自定义php函数,并将$ data变量传递给它。该函数应该返回给定行的类名:)

答案 1 :(得分:1)

使用rowCssClass和rowCssClassExpression作为您的功能。我没有测试过这段代码,但你可以用它来获得你的解决方案。

$this->widget('zii.widgets.grid.CGridView', array(
    'dataProvider'=>$dataProvider,
    'rowCssClass'=>array('odd','even'),
    'rowCssClassExpression'=>($data->status==0)?even:odd,
    'columns'=>array(
    ),
));