1

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

Cannot call method 'update' of undefined在控制台中说。

通过ajax插入数据gridview不刷新时出现问题。

我使用 foreach 循环渲染多个网格视图,并使用 concatenating 使它们中的每一个都是唯一的 id item_cd

 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;
4

2 回答 2

0

$.param.querystring从 中调用yiiGridView.update并且位于 中jquery.ba-bbq.js

如果您有包含的内容,请检查您的 HTML 源代码jquery.ba-bbq.js...

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

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

于 2014-07-01T00:25:05.770 回答
0

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

$('sopodetail-grid'+itemcd).yiiGridView('update');
于 2013-04-12T09:24:04.547 回答