如何在Yii 1.1.14中进行CGridView更新后选择保留选定的过滤器选项下拉列表?

时间:2017-05-04 00:39:30

标签: yii

我在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会更新正确的结果,但是下拉列表中的所选选项会消失,我的意思是它不会保持选中状态。如何保持选择?

2 个答案:

答案 0 :(得分:2)

您必须将所选值传递给dropDownList。如下所示

  CHtml::dropDownList('MyModel[status]', MyModel->status, array(
                '' => '',
                '0' => 'Approved',
                '1' => 'Pending',
                '2' => 'Rejected'
        )),

我已经给出了默认的“已批准”状态。即dropDownList函数的第二个参数。

答案 1 :(得分:0)

每当你的gridview重新加载时,首先调用你的控制器操作,你必须声明你模型的变量/对象,所以在你的控制器动作中你可以将这个变量设置为你的模型:

$myModel->status = $_GET['status'];

当呼叫返回到您的视图时,您可以检查该值,该值设置为该“状态”变量。