私は学生で、実用的なプロジェクトに取り組んでいます。キーワードの Google ランキングを追跡し、表として表示する Web アプリケーションです。現在のランキングが前のランキングよりも優れている場合はすべての行を緑に、ランキングが下がった場合は赤にします。CGridView を使用して Yii でこれを実装するにはどうすればよいですか? 現在、私は次の解決策を持っています。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」を取得することです。私は自分の間違いを見つけることができません:-(誰かが私を助けて正しい方向に向けることができれば、本当に感謝しています.