无法调用未定义的Cgridcview方法'更新'

时间:2013-04-12 07:11:34

标签: php yii

$.fn.yiiGridView.update('sopodetail-grid'+itemcd); 这个功能没有运行。

它在控制台中显示Cannot call method 'update' of undefined

通过ajax gridview插入数据时我遇到问题而没有刷新。

我使用foreach循环渲染多个网格视图,并通过连接item_cd使每个网格视图成为唯一ID。

 function validateDetailForm()
    {
        var jForm   = $('#sopodetail-form');                                                    
        var data    = jForm.serialize();
        var itemcd  = $('#cmbitemcd').val();

        $.ajax({
            type: 'POST',
            url : jForm.attr('action'),
            data: data,
            dataType:'html',
            success:function(data) 
            {

                $(".info").animate({opacity: 1.0}, 3000).fadeOut("slow");
                $.fn.yiiGridView.update('sopodetail-grid'+itemcd);
            },
            error: function(data) { // if error occured
                alert('Error occured.please try again');
                $('#detail-content').html(data);
            },
        });
    }

这是我如何渲染多个gridview我联合id ...

foreach($modelSoDet as $modelSoDetObj):
    $this->widget('zii.widgets.CDetailView', array(
            'data'=>$modelSoDetObj,
            'attributes'=>array(
                'item_cd',
                'item.item_name',
                'item.item_desc',
                'qty',
                'qty_purchased'
            )
    ));

    $modelSoPoDetail = new Sopodetail();
    $modelSoPoDetail->unsetAttributes();
    $modelSoPoDetail->so_cd   = $modelSoDetObj->so_cd;
    $modelSoPoDetail->item_cd = $modelSoDetObj->item_cd;
    $gridid           = 'sopodetail-grid'.$modelSoPoDetail->item_cd; 

    $this->widget('zii.widgets.grid.CGridView', array(
            'dataProvider'=>$modelSoPoDetail->search(),
            'summaryText' => '',
            'id'=>$gridid,
            'columns'=>array(
                'type',
                'po_cd',
                'qty'
            )
    ));
            endforeach;

2 个答案:

答案 0 :(得分:0)

您应该尝试使用正确的语法:

$('sopodetail-grid'+itemcd).yiiGridView('update');

答案 1 :(得分:0)

$.param.querystring来自yiiGridView.update,位于jquery.ba-bbq.js

检查您的HTML源代码是否包含jquery.ba-bbq.js ...

如果包含jquery.ba-bbq.js,那么您可能会在jquery.ba-bbq.js之后重新创建jQuery对象。例如。 jQuery被加载了不止一次......

来源:http://www.yiiframework.com/forum/index.php/topic/9387-cgridview-update/