0

我是 Yii 的新手。我有一个带有搜索框的网格视图。这些搜索框之一必须由下拉列表替换。根据下拉列表值,应替换 gridview 单元格中的值。

假设,我使用(0-> No Activity, 1->Pending, 2->Approved, 3-> Rejected). 我需要分别在 Gridview 单元格和下拉列表中将值 0 替换为 No Activity,将 1 替换为 Pending,将 2 替换为 Approved,将 3 替换为 Rejected。

我应该在数组的值中提到什么

array(
            'name' => 'Test',
            'value' =>                  
            'filter' => array('0' => 'No Activity', '1' => 'Pending','2' => 'Approved', '3' => 'Rejected',''=>'All'),                        
            'htmlOptions' => array('style' => 'width: 500px;'),
            ),

我正在使用PHP 5.2Yii version 1.13

我编辑了下面的代码,这对我来说很好

EDIT :

function getTestType($test)
{
    $testTypesList = array('0'=> 'No Activity', '1'=>'Pending', '2'=>'Approved', '3'=> 'Rejected',''=>'All');
    if(is_null($test)){
        return 'All';
    }else{
        return $test=$testTypesList[$test];
    }

}

并且在视野中

array(
            'name' => 'Test',
            'value' =>'getTestType($data->textfield)'                  
            'filter' => array('0' => 'No Activity', '1' => 'Pending','2' => 'Approved', '3' => 'Rejected',''=>'All'),                        
            'htmlOptions' => array('style' => 'width: 500px;'),
            ),
4

2 回答 2

0

数组中的值字段是可见的,

Daniel Vaquero 是正确的如何确定要显示的内容,但是您是否还想用下拉菜单或文本字段过滤此列,您应该像这样过滤

'filter' => CHtml::dropDownList( array( ... ))

希望这会有所帮助,干杯

于 2013-09-12T06:54:32.273 回答
0

控制器:

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

将此发送到查看文件:

$this->render('index',array(
        'model'=>$model,
        'arrayList'=>$arrayList, // Send array to view file
    ));

,并在视图文件中:

array(           
                'name'=>'Test',
                'value'=>function ($data, $row) use ($arrayList){ return $data->name_field? $arrayList[$data->name_field] : 'All' ; },
        ),

编辑:PHP 5.2

看法:

    array(
         'name'=>'Test',
         'header'=>'Test',
         'type'=>'raw',
         'value'=>'Test::getTestType($data->test)'
   ),

测试型号:

public static $testTypesList = array('0'=> 'No Activity', '1'=>'Pending', '2'=>'Approved', '3'=> 'Rejected',''=>'All');
public function getTestType($test)
{
    if(is_null($test)){
        return 'All';
    }else{
        return self::$testTypesList[$test];
    }

}
于 2013-09-12T05:45:07.760 回答