2015-08-04 2 views
1

У меня есть одна страница с четырьмя сетками в одной странице. Когда я нажимаю на любую страницу страницы с разбивкой по страницам (например: 1,2,3,4,5,6), я без проблем перехожу на эту страницу [через ajax]. И заменяет новый html старым html. Но теперь, когда я нажимаю кнопку разбиения на страницы, он просто перенаправляет URL-адрес. Он не загружается через ajax. Вся страница обновляется.yiiGridView pagination не работает после первого вызова ajax

Он работает при нажатии одной кнопки страницы. Если я инициализирую через консоль. Например, когда я помещаю это и нажимаю enter в консоли, тогда он будет работать для следующего вызова страницы. И снова я должен инициализировать через консоль, чтобы заставить ее работать для нажатия следующей кнопки.

 $('#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 загруженный файл, но он не сработал. Не было вызвано предупреждение.

<script type='application/javascript'> 

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

</script> 

Я знаю, что они могут удалять все содержимое, кроме div gridview. Но то же самое работает и в другом проекте.

ответ

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>