Yii Cgridview更新功能不起作用

时间:2014-06-23 14:53:43

标签: javascript php yii

我已经为此工作了很长时间,而且我无法理解我做错了什么(yii初学者所以请耐心等待我)。

我在我的视图代码中有这段代码

echo CHtml::dropDownList('symptomCategory',
                                         '',            // selected item from the $data
                                     $this->getSymptomCategories(), 
                                        array(
                                              'id'=>'categorySelectDropDown',
                                              'prompt'=>"Select Symptom Category",
                                              )); 





    $this->widget('zii.widgets.grid.CGridView', array(
            'id'=>'symptoms-grid',
            'selectableRows'=>1, //ability to select one symptom at a time
            'dataProvider'=>$model2->search(),
            //'htmlOptions'=>array('id'=>'symptomsSelectGrid'),
            'columns'=>array(
                'symptomCode',
                'title',
                'inclusions',
                'exclusions',
                'symptomCategory',

            ),
    ));

我的js功能是这样的:

$('#categorySelectDropDown').change(function()
        {
            var symptomCategory = $('#categorySelectDropDown').val();

            $('#symptoms-grid').yiiGridView('update', 
            {
                data: symptomCategory.serialize()
            });
            return false;
        });

我已尝试使用$(this).serialize()。反正。

根据我在网上发现的例子,这应该有用,但是没有,它不会更新cgridview。 $ this-> getSymptomCategories()返回一个数组数组(' A' =>' A'' B' =>' B& #39;等等。)

BTW我正在创建一个模型2 =新的症状;在由不同模型的控制器呈现的视图内部,因为我想使用gridview中的选项来填充其他模型的形式。任何帮助,文档(避免在网上找到任何有用的),建议等都将非常感激。谢谢oyur时间

1 个答案:

答案 0 :(得分:1)

尝试这种更新yiiGridView

的方式
 $.fn.yiiGridView.update('symptoms-grid', { 
      data: $('#symptomCategory').serialize() // your form id
 });

yiiGridView似乎没有更新可能有很多原因,其中一个原因是AJAX请求没有被发送,另一个常见原因是搜索条件逻辑不正确,或者请求的操作没有通过将数据发布到模型,导致返回相同的数据,使其看起来没有更新。

查看AJAX请求是否从firebug / console等发送到服务器。如果它正在运行,那么检查发布数据是否正确,最后检查模型+控制器逻辑是否正确,CActiveDataProvider的标准是反映您的搜索条件