Yii load动态添加(使用ajax)GridView TypeError:设置未定义

时间:2014-09-03 10:53:57

标签: javascript php ajax gridview yii

我使用ajax并动态加载内容GridView。

它工作,但没有加载gridview js(jquery.yiigridview.js)和yiiGridView($ options);“
和,当我使用$.fn.yiiGridView时会产生错误。

如果我不使用ajax所有正常工作 enter image description here

所以,如果我使用ajax动态加载内容,我就无法重新加载它。$。fn.yiiGridView.update('mygrid'); 错误
TypeError:设置未定义 $ grid.addClass(s​​ettings.loadingClass) enter image description here

这是我的代码: 索引javaScipt代码(调用控制器和加载内容)

sendAjaxCall = function(url){

        request = $.ajax({
            url : url,
            type: 'GET',
            dataType: 'html',           
            success : function(data){
                var newContent = $(data).find('#content>.container').html();

                // adding only main contant
                if(newContent === null || !newContent ) {
                    $(container).html(data);
                } else {
                    $(container).html(newContent);
                }
            },
            error : function(error){
                console.log(error);
            }
        });
    }

控制器:

public function actionMyFunction(){

        $condition='...'
        $dataProvider = new CActiveDataProvider('MtTable', array(
            'criteria' => array(
                'condition' => $condition,
                'order' => '',
            ),
        ));

        if(Yii::app()->request->isAjaxRequest){

            $this->renderPartial('my_view', array(
                'model' => $dataProvider,false,true
            ));


        } else {
            $this->render('my_view', array(
                'model' => $dataProvider,
            ));
        }

    }

查看

<span class="h1"> <?php echo ModuleSettings::t( 'Usersettings', 'Manage Keys' ); ?></span>
<div class="wrapperlong">
    <?php
    $this->widget('bootstrap.widgets.TbExtendedGridView',array(
        'id'=>'key-grid',
        'fixedHeader' => true,        
        'responsiveTable' => false,
        'template' => "{items}{pager}{summary}",
        'ajaxUpdate'=>true,
        'ajaxUrl'=> Yii::app()->request->getUrl(),
        'afterAjaxUpdate' => 'completeAjax',
        'dataProvider'=>$model,
        'columns'=>array(
            'title',
            'key',
        )

    )); ?>
</div>

请帮助解决这个问题。

1 个答案:

答案 0 :(得分:1)

尝试这是否有帮助:

// controller
if(Yii::app()->request->isAjaxRequest){

    Yii::app()->clientScript->corePackages = array(); //new insert

    $this->renderPartial('my_view', array(
        'model' => $dataProvider,false,true
    ));
}