Стиль столбцов в CGridView на основе данных в yii

Можно ли стилизовать CGridView на основе данных?
Например, эти два случая:

введите описание изображения здесь

Или я должен использовать другие варианты?

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"',
),
// ...
),
));
3

Другие решения

как видно из других ответов, cssClassExpression может быть использован для этой цели. Я думаю, что будет много if заявления, так что вы не можете использовать встроенный if операторы для cssClassExpression.
Я бы сделал это таким образом.
1. Сначала определите метод в вашей модели, как

public function checkColour()
{
if('value'<10)
{
return 'green quarter'
}
if('value'>10)
{
return 'yellow half'
}
}

По сути, этот метод возвращает имена классов, которые вы создали и хотите использовать для определенных условий.
2. Тогда я бы использовал это как

'columns'=>array(

array(
'name'=>'nozare',
'cssClassExpression' => '$data->checkColour()'
),

),
1

Вы можете сделать это с помощью cssClassExpression

массив (
‘name’ => ‘status’,
‘value’ => ‘$ data-> status0-> title’,
‘cssClassExpression’ => вызвать функцию или сделать по выражению,
),

Таким образом, вы можете установить другой класс для другой строки и написать соответствующий CSS для этого

0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector