Edson,
Da para você usar o rowCssClassExpression.
Rêf.: http://www.yiiframework.com/forum/index.php/topic/7512-cgridview-rowcssclassexpression/
Rêf.: http://www.yiiframework.com/doc/api/1.1/CGridView#rowCssClassExpression-detail
Quando eu trabalho com cores para cada status eu uso o rowCssClassExpression, só que ao inves de usar if/else na expressão, eu coloco a cor do status como class.
Faz mais ou menos assim:
*Controller.php
public function actionIndex(){
...
$status = Status::model()->findAll();
...
$this->render('index', array(
'model' => $model,
'status' => $status
));
}
index.php
foreach($status as $st){
echo CHtml::css("tr.status-{$st->cor} {background-color: #{$st->cor}}");
}
$this->widget('zii.widgets.grid.CGridView', array(
'id' => 'table-grid',
'dataProvider' => $model->search(),
'filter' => $model,
'selectableRows' => 2,
'rowCssClassExpression' => '"status-".$data->cor',
'columns' => array(
array(
'name' => 'id',
'class' => 'CCheckBoxColumn',
),
),
));
Opinião:
[i]Defini as cores do status, com um campo de cor no formulário de status, usando a extensão http://www.yiiframework.com/extension/colorpicker/.
Se possível usa cores pasteis, com tonalidade clara, para não fica desagradavel as misturança de cores fortes.
Uma paleta de cores pasteis que uso para definir status:
Usa o complemento ColorZilla do Firefox para pegar as cores.[/i]