jerome.celle@gmail.com
-
Posts
2 -
Joined
-
Last visited
Posts posted by jerome.celle@gmail.com
-
-
Hello,
I am using a CGridView with a CSqlDataProvider.
I would like to dynamically change the text displayed in the cells for some columns.
For instance:
- instead of displaying a name, I would like to display a link
- if a certain value is present, display this value in red
I mean I want to put HTML in my cells and expect this HTML to be parsed and rendered by the browser.
I don't want to change the class of the underlying <tr>, <td>...
For so doing I put some expressions in the 'columns' array:
'columns' => array( 'phase',
'app',
array( 'name' => 'version',
'value' => "preg_replace('/($today.+)/','<span style=\'color: red;\'>\$1</span>', \$data['version'])"
) ,
'comment',
'nb',
array( 'name' => 'deadline',
'value' => '"<a href=\'candidateRelease/view/id/\$data[\'id\']\'>\$data[\'deadline\']</a>)"'
) ,
'status'
),
Expression seems to be evaluated correctly but the text rendered in the cell shows the html tags (as if the result of the evaluation had gone through a call to htmlentities().
Does someone know how I could change this ?
Thanks and regards.
Cgridview : How Can I Customize Text In Cells On The Fly
in The Yii Book
Posted
Answer found after some reading...
In fact widgets are not really homogeneous...
For CGridView you must specify the html type like this:
array( 'name' => 'version',
'value' => "preg_replace('/($today.+)/','<span style=\'color: red;\'>\$1</span>', \$data['version'])",
'type' => 'html'
) ,