9

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

例如,我有三列,id,name,status。现在,如果状态的值为 Inactive 或 0,我应该用某种颜色突出显示该行。

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

谢谢, 乌杰瓦尔

4

2 回答 2

20

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

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

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

于 2012-06-18T07:37:06.683 回答
1

为您的功能使用 rowCssClass 和 rowCssClassExpression。我没有测试此代码,但您可以使用该技巧来获得解决方案。

$this->widget('zii.widgets.grid.CGridView', array(
    'dataProvider'=>$dataProvider,
    'rowCssClass'=>array('odd','even'),
    'rowCssClassExpression'=>($data->status==0)?even:odd,
    'columns'=>array(
    ),
));
于 2012-06-18T05:44:20.510 回答