Yii Framework Forum: Cómo Utlizar El Cssclassexpression - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Cómo Utlizar El Cssclassexpression Rate Topic: -----

#1 User is offline   Ariana 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 16
  • Joined: 15-June 12

Posted 28 November 2012 - 01:27 AM

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
0

#2 User is offline   robregonm 

  • Experienced Yii Developer
  • PipPipPipPip
  • Yii
  • Group: Members
  • Posts: 651
  • Joined: 30-July 09
  • Location:Colombia

Posted 28 November 2012 - 07:34 AM

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
Rick

Support me on Patreon: https://www.patreon.com/yiiframework


Promover Yii Framework en Español en Patreon: https://www.patreon....yiiframework_es

YiiFramework en Español: http://yiiframework.es/ - Canal de YouTube - Facebook
Follow me: @robregonm.
0

#3 User is offline   Ariana 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 16
  • Joined: 15-June 12

Posted 28 November 2012 - 09:26 AM

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.
0

#4 User is offline   Sengir 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 2
  • Joined: 11-April 12
  • Location:Spain

Posted 28 November 2012 - 12:52 PM

Estás usando CGridView y si no me equivoco debes usar "rowCssClassExpression" para cambiar la clase de la fila entera, no hay "cssClassExpression" a secas.


Además la expresión iría antes del array "columns" ya que es una opción del widget.


Si quieres poner un color distinto a una columna, no una fila, debes poner una clase específica a la columna.
0

#5 User is offline   robregonm 

  • Experienced Yii Developer
  • PipPipPipPip
  • Yii
  • Group: Members
  • Posts: 651
  • Joined: 30-July 09
  • Location:Colombia

Posted 29 November 2012 - 09:48 AM

@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.


Rick

Support me on Patreon: https://www.patreon.com/yiiframework


Promover Yii Framework en Español en Patreon: https://www.patreon....yiiframework_es

YiiFramework en Español: http://yiiframework.es/ - Canal de YouTube - Facebook
Follow me: @robregonm.
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users