我是Yii的新手。我有一个带搜索框的gridview。其中一个搜索框必须由下拉列表替换。根据下拉列表值,应替换gridview单元格中的值。
假设我使用(0-> No Activity, 1->Pending, 2->Approved, 3-> Rejected)
。我需要在Gridview单元格和下拉列表中分别替换0表示No Activity,1表示待处理,2表示已批准,3表示已拒绝。
我应该在数组的值
中提及什么array(
'name' => 'Test',
'value' =>
'filter' => array('0' => 'No Activity', '1' => 'Pending','2' => 'Approved', '3' => 'Rejected',''=>'All'),
'htmlOptions' => array('style' => 'width: 500px;'),
),
我正在使用PHP 5.2
和Yii 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;'),
),
答案 0 :(得分: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)'
),
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];
}
}
答案 1 :(得分:0)
数组中的值字段是可见的,
Daniel Vaquero是如何确定要显示的内容的,但是您是否想要使用下拉列表或文本字段过滤此列,您应该像这样过滤
'filter' => CHtml::dropDownList( array( ... ))
希望这有帮助, 欢呼声