Yii zii.widgets.grid.cgridview类型为html渲染失败

时间:2011-11-15 17:35:02

标签: php yii

我使用此网格查看包含数据的表:

查看部分:

<?php $this->widget('zii.widgets.grid.CGridView', array(
    'id'=>'news-grid',
    'dataProvider'=>$model->search(),
    'filter'=>$model,
    'columns'=>array(       
        array(
            'name'=>'enable',
            'type'=>'html',
            'value'=>'$data->stateHtmlIcon',
        ),      
    ),
)); ?>

在我的模特中:

public function getStateHtmlIcon() {
        if ($this->enable == AbstractModel::ENABLE) {
            return '<font class="icon-enable"></font>';
        } else {
            return '<font class="icon-disable"></font>';
        }
    }

它不起作用,当显示具有stateHtmlIcon的列时,渲染停止。

当我在网格(视图部分)中评论'type'=&gt;'html'时,它可以正常工作但是在列中html没有正确呈现

<font class="icon-enable"></font>

而不是用css样式显示的图标。

所以我认为我没有正确使用'type'=&gt;'html?

2 个答案:

答案 0 :(得分:3)

我最近用过

array(
  'type' => 'raw',
  'value' => 'CHtml::link([...])',
),

完成这项工作。

另见

http://www.yiiframework.com/doc/api/1.1/CDataColumn#type-detail

http://www.yiiframework.com/doc/api/1.1/CFormatter

答案 1 :(得分:2)

你应该使用'raw'作为类型。见CFormatter

raw:属性值根本不会改变。