Yii cgridview更新取决于下拉列表


yii cgridview update depending on dropdownlist

我是新手。我有一个带有自定义数据提供程序的CGridview,它采用参数$select:

$this->widget('zii.widgets.grid.CGridView', array(
'id' => 'beneficiary-grid',
'dataProvider' => $model->searchForVoucherAssignment($select),
'filter' => $model,
'columns' => array(
            'id',
    'registration_code',
    'ar_name',
            'en_name',
            'family_member',
            'main_income_source',
            'combine_household',
            array( 'class'=>'CCheckBoxColumn', 'value'=>'$data->id', 'selectableRows'=> '2', 'header' => 'check', 
            ),
),
));

参数$selectdropdownlist的值:

$data = CHtml::listData(Distribution::model()->findAll(array("condition"=>"status_id =  2")), 'id', 'code');
$select = key($data);
echo CHtml::dropDownList(
    'distribution_id',
    $select,            // selected item from the $data
    $data,       
    array(
    )
);

所以我定义了一个脚本来更新CGridview取决于下拉列表

的值
Yii::app()->clientScript->registerScript('sel_status', "
        $('#selStatus').change(function() {
            $.fn.yiiGridView.update('beneficiary-grid', {
                    data: $(this).serialize()
            });            
            return false;
        });
    ");

我的模型:

public function searchForVoucherAssignment ($distribution_id = 0) {
            $criteria = new CDbCriteria;
            if ($distribution_id != 0) {
                $criteria->condition = "Custom Query...!!";
            }
            $criteria->compare('id', $this->id);
            //Custom Criteria
             return new CActiveDataProvider($this, array(
                'criteria' => $criteria,
                'pagination' => array(
                                    'pageSize' => 20,
                                ),
            ));
        }

问题是,CGridview没有改变的地方,dropdownlist的值改变了…

我认为您选择了错误的更改事件Id。Id应该是

$('#distribution_id').change(function() {