如何在Cgridview中用文本替换值

时间:2013-09-02 11:00:54

标签: php yii

在admin.php中,我有一个gridview,我在其中创建了一个下拉列表。我有以下数值,即0->没有活动             1→待定             2→批准             3→被拒绝。           如何在下面的代码中指定并在gridview单元格中显示相应的数值。

array(
                'name' => 'Test',
            'value' =>?
                    'visible' => ($approval=="1")?true:false,
                'filter' => array('0' => 'No Activity', '1' => 'Pending','2' => 'Approved', '3' => 'Rejected',''=>'All'),                    
//                    'headerHtmlOptions' => array('style'=>'text-align:center; vertical-align: middle;font-size: 15px !important;'),
            'htmlOptions' => array('style' => 'width: 500px;'),
            ),

1 个答案:

答案 0 :(得分:1)

使用控制器上的下拉列表值声明数组:

$list = array('0' => 'No Activity', '1' => 'Pending','2' => 'Approved', '3' => 'Rejected', ''=>'All');

并将其发送到视图。

在CgridView中使用这个数组$ list如下:

    array(            // display 'author.username' using an expression
            'name'=>'Test',
            'value'=>function ($data, $row) use ($list){ return $data->field? $list[$data->field] : 'All'; },
            'visible' => ($approval=="1")? true : false,
//                    'headerHtmlOptions' => array('style'=>'text-align:center; vertical-align: middle;font-size: 15px !important;'),
            'htmlOptions' => array('style' => 'width: 500px;'),
        ),

其中$ data->字段是行字段名称。