2012-06-18 7 views
9

В Yii CGridView имеет собственный цвет фона в строке. Но я хочу выделить конкретную строку, основанную на значении одного из столбцов.Изменение цвета строки на основе значения столбца в CGridView

Для экземпляра, у меня есть три столбца, идентификатор, имя, статус. Теперь, если значение статуса неактивно или 0, я должен выделить строку с некоторым цветом.

Я кратко прочитал ссылку на класс и искал этот сайт. Но не удалось найти соответствующее решение. Если бы какой-то пример или какое-то направление к правильному решению, это было бы высоко оценено.

Спасибо, Ujjwal

ответ

20

CGridView 'rowCssClassExpression' это способ получить то, что вы хотите.

$this->widget('zii.widgets.grid.CGridView', array(
    'dataProvider'=>$dataProvider, 
    'rowCssClassExpression'=>'($data->myFlag==0)?"normal":"especial"', 
    'columns'=>array(
    ... 
    ), 
)); 

Вы также можете вызвать пользовательскую функцию php и передать ей переменную $ data. Эта функция должна возвращать имя класса для данной строки :)

+0

Спасибо, он работает !! –

+0

@UjjwalPrajapati приветствую :) – sucotronic

+0

Я был curs yii/zii, в то время как я искал для этого. Извините за «право!» комментарий, но я особенно благодарен за легкое исправление. – tedders

1

Использование rowCssClass и rowCssClassExpression для функциональности. Я не тестировал этот код, но трюк, который вы можете использовать, чтобы получить свое решение.

$this->widget('zii.widgets.grid.CGridView', array(
    'dataProvider'=>$dataProvider, 
    'rowCssClass'=>array('odd','even'), 
    'rowCssClassExpression'=>($data->status==0)?even:odd, 
    'columns'=>array(
    ), 
)); 
+0

«rowCssClass» и «rowCssClassExpression» [взаимоисключающие] (http://code.google.com/p/yii/source/browse/tags/1.1 .10/framework/zii/widgets/grid/CGridView.php # 505) :( – sucotronic

+0

А также, когда я пытаюсь использовать значение rowCssClassExpression без кавычек, он не работает. Условие всегда неверно. Таким образом, суботроник прав ! –

+0

Я сказал, что я не тестировал этот код, но трюк будет работать. –

Смежные вопросы