我在Yii 1.1.14中的CGridView中的一个过滤器选项有这个
array(
'header' => 'Status',
'name' => 'status',
'filter' => CHtml::dropDownList('MyModel[status]','status', array(
'' => '',
'0' => 'Approved',
'1' => 'Pending',
'2' => 'Rejected'
)),
'type' => 'raw',
'value' => 'MyHelper::model()->getStatus($data->status)',
'htmlOptions' => array('width' => '8%')
),
我的问题是,每当我从下拉过滤器中选择一个时,CGridView会更新正确的结果,但是下拉列表中的所选选项会消失,我的意思是它不会保持选中状态。如何保持选择?
答案 0 :(得分:2)
您必须将所选值传递给dropDownList。如下所示
CHtml::dropDownList('MyModel[status]', MyModel->status, array(
'' => '',
'0' => 'Approved',
'1' => 'Pending',
'2' => 'Rejected'
)),
我已经给出了默认的“已批准”状态。即dropDownList函数的第二个参数。
答案 1 :(得分:0)
每当你的gridview重新加载时,首先调用你的控制器操作,你必须声明你模型的变量/对象,所以在你的控制器动作中你可以将这个变量设置为你的模型:
$myModel->status = $_GET['status'];
当呼叫返回到您的视图时,您可以检查该值,该值设置为该“状态”变量。