Cómo Utlizar El Cssclassexpression


(Patty Rv2) #1

Hola, que tal

Espero alguien pueda ayudarme, quiero poner una columna en negrita, o en negro y gris dependendiendo de un valor en la tabla que me indica si ya fue leído o no, pero no he podido, ojalá alguien pueda ayudar y ver cual es mi error, dejo la parte de código que estoy poniendo.

$this->widget(‘zii.widgets.grid.CGridView’, array(

    'id'=>'procedimientos-grid',


    'dataProvider'=>$dataProvider->search(),


    'filter'=>$dataProvider,


    'columns'=>array(


        array(


            'name'=>'nombre',


            'type'=>'raw',


            'value'=>'$data->nombre',


            'cssClassExpression'=> '($data->leido =="S") ?  "red" : "green"',


        ),


     ),


));

de antemano gracias :D


(Ricobregon) #2

La intención está bien, creo que el problema es más de conceptualización.


'cssClassExpression'=> '(($data->leido =="S") ? "red" : "green")',

El paréntesis adicional es porque este tipo de expresiones hay que verlas como si tuvieran un "return" primero… así que considerando lo anterior, sin el paréntesis adicional, se está retornando un valor booleano en lugar de la cadena de la condición.

Espero le sirva.

Saludos


(Patty Rv2) #3

Hola :( , gracias por tu comentario, agregué el paréntesis que me comentas y nada sigue sin funcionar, creo que debo de tener algo que no es correcto pero ni idea de que.


(Sengirgfg) #4

Estás usando [color=#1C2837][size=2]CGridView y si no me equivoco debes usar "[/size][/color][size="2"][color="#1c2837"]rowCssClassExpression" para cambiar la clase de la fila entera, no hay "cssClassExpression" a secas.[/color][/size]

[size="2"][color="#1c2837"]

[/color][/size]

[size="2"][color="#1c2837"]Además la expresión iría antes del array "columns" ya que es una opción del widget.[/color][/size]

[size="2"][color="#1c2837"]

[/color][/size]

[size="2"][color="#1c2837"]Si quieres poner un color distinto a una columna, no una fila, debes poner una clase específica a la columna.[/color][/size]


(Ricobregon) #5

@SengirLa clase "cssClassExpression" sí existe para CGridColumn, es decir, para cada columna del CGridView.

Ahora lo único que se me ocurre es que la propiedad/atributo exista en el modelo.

Adicionalmente sería bueno activar los mensajes de depuración de yii y de PHP para verificar que todo se esté mostrando y corriendo apropiadamente.