我是一名学生,正在从事我的实际项目。它是一个网络应用程序,它跟踪谷歌关键词的排名并将它们显示为一个表格。现在我想把每一行都涂成绿色,如果当前排名比以前好,红色如果排名下降等等。我如何在 Yii 中用 CGridView 实现这个?目前我有以下解决方案。在 ControllerClass 我有一个功能
public function getCssClass($data)
{
$cssClass;
if('($data->current_pos>$data->prev_pos) || ($data->current_pos===null && $data->prev_pos!==null)')
{
$cssClass='rdown';
}
elseif('$data->current_pos<$data->prev_pos')
{
$cssClass='rup';
}
else
{
$cssClass='requal';
}
return $cssClass;
}
在视图中,我将这个函数称为“rowCssClassExpression”:
<?php $this->widget('zii.widgets.grid.CGridView', array(
'id'=>'keyword-grid',
'dataProvider'=>$keywordDataProvider,
'rowCssClassExpression' => $this->getCssClass($data),
'columns'=>array(
'keyword_name',
array(
'name'=>'current_pos',
'htmlOptions'=>array('style'=>'text-align: center'),
),
array(
'name'=>'prev_pos',
'htmlOptions'=>array('style'=>'text-align: center'),
),
array(
'name'=>'top_pos',
'htmlOptions'=>array('style'=>'text-align: center'),
),
'url',
array(
'class'=>'CButtonColumn',
'template'=>'{view}{delete}',
'viewButtonUrl'=>'Yii::app()->createUrl("/keyword/view", array("id"=>$data->id))',
'deleteButtonUrl'=>'Yii::app()->createUrl("/keyword/delete", array("id"=>$data->id))',
),
),
'nullDisplay'=>'-',
)); ?>
这是我的桌子:
关键字 当前 上一个
关键字 1 7 7
关键字 2 8 10
关键字3 26 20
但是 html 结果是每一行都获得了“rdown”类。我找不到我的错误:-(如果有人可以帮助我并指出正确的方向,我将不胜感激。