Yii2 PJAX - MODAL RELOAD BUG - PullRequest
       77

Yii2 PJAX - MODAL RELOAD BUG

0 голосов
/ 22 сентября 2018

Нужна помощь.

На моей странице просмотра у меня есть какой-то блок рендеринга.

 <?= $this->render("_manageLocationsModal", ['availableLocations' => $availableLocations]);?>

Мой модал выглядит так.

  <div class="modal fade" style="display: none">
    <div class="modal-dialog">
       <div class="modal-content">
               <?php Pjax::begin();?>
                    <?=GridView::widget([
                            'dataProvider' => $dataProvider,
                            'filterModel'  => $searchModel,
                  ........
       </div>
     </div>
  </div>

В модальном порядкеработает нормально, но после поиска страница перезагружается.

Как я могу это исправить?Спасибо.

1 Ответ

0 голосов
/ 24 сентября 2018

Вы не должны использовать Pjax внутри модала, есть что-то, что вы не можете контролировать.У меня есть идея для вашего случая:

  • По вашему мнению, создайте модальный с пустым содержимым, когда нажмите кнопку, покажите модальный и вызовите ajax для контроллера, чтобы загрузить представление сетки и вызвать ответ насодержимое модальных.
  • В вашем контроллере создайте действие load-grid-view и renderAjax для _grid.php
  • В файле _grid.php, echo GridView :: widget (...), и переопределить фильтр сетки и сортировать, как показано ниже:

    $('#<list-id>').on('beforeFilter', function (e) {
    
        // Call ajax with serialize() filters input and replace content in modal
        return false;
    });
    
    $('#<list-id>').on('click', '.pagination a, th a[data-sort]', function(e) 
    {
        var url = $(this).attr('href');
        // Call ajax with serialize() filters input and replace content in modal
        return false;      
    });
    
...