2016-01-06 79 views
0

我是Yii的新手,我發現了類似的問題,但仍然無法使用它。我在index頁面上有一個GridView,每行有view按鈕。我展示這些觀點在bootstrap ModalBootstrap Modal不能在GridView中使用Pjax,Yii2

<?php 
     Modal::begin([ 
      'header' => Yii::t('app','Feedback'), 
      'id' => 'feedbackModalId', 
      'class' =>'modal', 
      'size' => 'modal-md', 
     ]);  
     echo "<div class='modalContent'></div>"; 

     Modal::end(); 

     ?> 
<?php Pjax::begin(); 

echo GridView::widget([ 
     'dataProvider' => $dataProvider, 
     'filterModel' => $searchModel, 
     'columns' => [ 
     //... 

     ['class' => 'yii\grid\ActionColumn', 'template'=>'{custom_view}{custom_update}', 
      'buttons' => 
      [ 
       'custom_view' => function ($url, $model) { 
        return 
          Html::a(Yii::t('app','View'), ['view', 'id'=>$model->id],['class' => 'btn-xs btn-primary modalButton']); 

       },  
       'custom_update' => function ($url, $model) {     
          return       
           Html::a(Yii::t('app','Update'), ['update', 'id'=>$model->id],['class' => 'btn-xs btn-primary modalButton']); 

        }, 

      ] 
     ] 
    ], 
]); 
Pjax::end();?> 

和模態火的:

$(".modalButton").click(function(){  
     $(".modal").modal("show") 
        .find(".modalContent") 
        .load($(this).attr('href')); 
     return false; 
    }); 

我加Pjax爲AJAX搜索和分頁之前它好工作,但現在當我點擊view按鈕,我看到在頁面上呈現的視圖而不是彈出式視圖。 我發現了一個解決方案,它將data-pjax = 1添加到表單屬性中,但在我的情況下,我沒有post表單。

我會很感激任何意見。

+0

您是否在您的'custom_view'中添加了'data-pjax' => 1 –

+0

我試過了,沒有幫助 –

回答

1

使用下面的代碼,而不是用於Pjax

模態代碼

<?php 
    yii\bootstrap\Modal::begin([ 
     'header' => 'demo Test', 
     'id'=>'feedbackModalId', 
    ]); 
    yii\bootstrap\Modal::end(); 
?> 

<?php //js code: 

$this->registerJs(
"$(document).on('ready pjax:success', function() { 
     $('.modalButton').click(function(e){ 
      e.preventDefault(); //for prevent default behavior of <a> tag. 
      var tagname = $(this)[0].tagName;  
      $('#feedbackModalId').modal('show') 
         .find('.modalContent') 
         .load($(this).attr('href')); 
     }); 
    }); 
") 
?> 

<?php Pjax::begin(); 

echo GridView::widget([ 
     'dataProvider' => $dataProvider, 
     'filterModel' => $searchModel, 
     'columns' => [ 
     //... 

     ['class' => 'yii\grid\ActionColumn', 'template'=>'{custom_view}', 
      'buttons' => 
      [ 
       'custom_view' => function ($url, $model) { 
        return Html::a(Yii::t('app','View'), ['view', 'id'=>$model->id],['class' => 'btn-xs btn-primary modalButton']); 

       },      

      ] 
     ] 
    ], 
]); 
Pjax::end();?> 

你的js代碼我希望它可以幫助你。

+0

我用js代碼替換了它,但它仍然不能正常工作 –

+0

其作品適合我。我會發布完整的代碼打開模態。 – GAMITG

+0

謝謝,如果添加類'modalButton'類的'update'這樣的第二個按鈕,然後點擊'view'後關閉它,然後點擊'update',關閉它,搜索停止加工。 –