2016-01-06 48 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',关闭它,搜索停止加工。 –