【问题标题】:yiiGridView pagination is not working after first ajax callyiiGridView 分页在第一次 ajax 调用后不起作用
【发布时间】:2015-08-04 16:01:53
【问题描述】:

我有一页,一页中有四个网格视图。当我单击任何分页页面按钮(例如:1、2、3、4、5、6)时,它会将我带到该页面而没有任何问题[通过 ajax]。并用旧的html替换新的html。但是现在当我点击分页按钮时,它只会重定向到 url。它不会通过 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 之外的所有内容。但同样的事情在其他项目中也适用。

【问题讨论】:

    标签: javascript php jquery ajax yii


    【解决方案1】:

    我使用 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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-19
      • 1970-01-01
      • 2013-04-03
      相关资源
      最近更新 更多