是否可以根据数据设置CGridView的样式? 例如,这两种情况:
或者我必须使用其他选项?
答案 0 :(得分:3)
是的,您可以按数据指定css
类。使用cssClassExpression选项。
$this->widget('zii.widgets.grid.CGridView', array(
'dataProvider'=>$dataProvider,
'columns'=>array(
// ...
array(
'name'=>'Delta',
'value' => $data->value,
'cssClassExpression' => '$data->delta > 0 ? "up" : "down"',
),
// ...
),
));
答案 1 :(得分:1)
从其他答案可以清楚地看出cssClassExpression
可以用于此目的。我认为会有很多if
语句,因此您无法为cssClassExpression使用内联if
语句。
我会这样做。
1.首先在模型中定义一个方法,如
public function checkColour()
{
if('value'<10)
{
return 'green quarter'
}
if('value'>10)
{
return 'yellow half'
}
}
基本上,此方法返回您已创建并希望用于特定条件的类名 那我就像用
一样使用它'columns'=>array(
array(
'name'=>'nozare',
'cssClassExpression' => '$data->checkColour()'
),
),
答案 2 :(得分:0)
您可以使用cssClassExpression
来实现阵列( &#39;名称&#39; =&GT; &#39;状态&#39 ;, &#39;值&#39; =&GT; &#39; $ DATA-&GT; status0-&GT;标题&#39 ;, &#39; cssClassExpression&#39; =&GT;调用函数或通过表达式执行, ),
通过这种方式,您可以为不同的行设置不同的类,并为该
编写相应的css