第一次ajax调用后yiiGridView分页不起作用

时间:2015-08-04 16:01:53

标签: javascript php jquery ajax yii

我有一个页面,一页有四个网格视图。当我点击任何分页页面按钮(例如:1,2,3,4,5,6)它带我到那个页面没有任何问题[通过ajax]。并用旧的HTML替换新的HTML。但现在当我点击分页按钮时,它只是重定向到网址。它不会通过ajax加载。整个页面都刷新了。

单击一个页面按钮时可以正常工作。如果我通过控制台初始化。就像当我把它放入控制台然后按回车键然后它将适用于下一页调用。而且我必须通过控制台进行初始化,以使其适用于下一页按钮按下。

        $('#answer-grid').yiiGridView({'ajaxUpdate':['answer-grid'],'ajaxVar':'ajax','pagerClass':'pager','loadingClass':'grid-view-loading','filterClass':'filters','tableClass':'table table-responsive','selectableRows':1,'pageVar':'saved_card_id_page'});

我尝试在ajax加载的copntent中添加脚本,但它没有用。事件警报已被取消。

<script type='application/javascript'>

    alert("This is also not getting executed. When it comes from ajax content.")

</script>

我知道可能会删除除gridview div之外的所有内容。但同样的事情也适用于其他项目。

1 个答案:

答案 0 :(得分:0)

我使用afterAjaxUpdate参数执行此操作。

        'afterAjaxUpdate'=>"function(id, data){

             var newHtml = $('<div></div>');
             newHtml.append(data);

             var scriptExecute = newHtml.find('#scriptExecute');

             $('body').append(scriptExecute);

        }",

所以现在我的脚本正在执行,因为我将它附加到正文。这是我附加到身体的脚本,因为我只能这样做这不是正确的方式,但它的工作原理..

<?php

$true = Yii::app()->request->isAjaxRequest;
if($true)
{

?>

<script type="application/javascript"  id="scriptExecute" >

        //alert("Execute this");

        jQuery('#share-grid').yiiGridView({'ajaxUpdate':['share-grid'],'ajaxVar':'ajax','pagerClass':'pager','loadingClass':'grid-view-loading','filterClass':'filters','tableClass':'table table-responsive','selectableRows':1,'pageVar':'CardShare_page','afterAjaxUpdate':function(id, data){

            var newHtml = $('<div></div>');
            newHtml.append(data);

            var scriptExecute = newHtml.find('#scriptExecute');


            $('body').append(scriptExecute);


        }});
        jQuery('#rate-grid').yiiGridView({'ajaxUpdate':['rate-grid'],'ajaxVar':'ajax','pagerClass':'pager','loadingClass':'grid-view-loading','filterClass':'filters','tableClass':'table table-responsive','selectableRows':1,'pageVar':'RatingLike_page','afterAjaxUpdate':function(id, data){

            var newHtml = $('<div></div>');
            newHtml.append(data);

            var scriptExecute = newHtml.find('#scriptExecute');

            $('body').append(scriptExecute);

        }});
        jQuery('#saved-card-grid').yiiGridView({'ajaxUpdate':['saved-card-grid'],'ajaxVar':'ajax','pagerClass':'pager','loadingClass':'grid-view-loading','filterClass':'filters','tableClass':'table table-responsive','selectableRows':1,'pageVar':'SavedCard_page','afterAjaxUpdate':function(id, data){

            var newHtml = $('<div></div>');
            newHtml.append(data);

            var scriptExecute = newHtml.find('#scriptExecute');

            $('body').append(scriptExecute);

        }});
        jQuery('#answer-grid').yiiGridView({'ajaxUpdate':['answer-grid'],'ajaxVar':'ajax','pagerClass':'pager','loadingClass':'grid-view-loading','filterClass':'filters','tableClass':'table table-responsive','selectableRows':1,'pageVar':'saved_card_id_page','afterAjaxUpdate':function(id, data){

            var newHtml = $('<div></div>');
            newHtml.append(data);

            var scriptExecute = newHtml.find('#scriptExecute');

            $('body').append(scriptExecute);

        }});

</script>