2015-10-01 5 views
3

Я новичок в yii2, прямо сейчас я создаю образец грубой аппликации. Я использовал pjax для gridview, он отлично работает для меня. Моя проблема в том, что я обновляю свою строку в то время, когда pjax также вызывает сейчас, я хочу отключить эту кнопку pjax для обновления. Как я могу решить эту проблему? Вот мой кодКак отключить обновление в gridview для pjax в yii2?

<?php 

use yii\helpers\Html; 
use yii\grid\GridView; 
use yii\helpers\Url; 
use yii\widgets\Pjax; 

/* @var $this yii\web\View */ 
/* @var $searchModel backend\models\PostSearch */ 
/* @var $dataProvider yii\data\ActiveDataProvider */ 

$this->title = 'Posts'; 
$this->params['breadcrumbs'][] = $this->title; 
?> 
<div class="post-index"> 

    <h1><?= Html::encode($this->title) ?></h1> 
    <?php // echo $this->render('_search', ['model' => $searchModel]); ?> 

    <p> 
     <?= Html::a('Create Post', ['create'], ['class' => 'btn btn-success']) ?> 
    </p> 

    <?php \yii\widgets\Pjax::begin(
      ['id' => 'StickerList', 'timeout' => false, 'enablePushState' => false, 'clientOptions' => ['method' => 'GET']] 
     ); ?> 
    <?= GridView::widget([ 
     'dataProvider' => $model->search(),   
     'filterModel' => $model, 
     'columns' => [ 
      ['class' => 'yii\grid\SerialColumn'], 
      [ 
       'attribute'=>'PostType', 
       'filter'=>Html::activeDropDownList($model, 'PostType',array(""=>"All","1"=>"Status","2"=>"Images","3"=>"Video"),['class'=>'form-control','prompt' => 'Select Post Type']), 
      ], 
      'PostTitle', 
      [ 
       'header' => 'Artist', 
       'attribute' => 'ArtistName', 
      ], 
      [ 
       'header' => 'Date Posted', 
       'attribute' => 'DatePosted', 
       'filter' => false, 
      ], 
      [ 
       'header' => '# Likes', 
       'attribute' => 'TotalLikes', 
       'filter' => false, 
      ], 
      [ 
       'header' => '# Comments', 
       'attribute' => 'TotalComments', 
       'filter' => false, 
      ], 
      [ 
       'header' => 'Exclusive', 
       'attribute' => 'IsExclusive', 
       'filter'=>Html::activeDropDownList($model, 'IsExclusive',array(""=>"All","0"=>"Normal","1"=>"Exclusive"),['class'=>'form-control','prompt' => 'Select Exclusive']), 
      ], 
      [ 
       'header' => 'Status', 
       'attribute' => 'Status', 
       'filter'=>Html::activeDropDownList($model, 'Status',array(""=>"All","1"=>"Active","2"=>"Inactive"),['class'=>'form-control','prompt' => 'Select Status']), 
      ], 
      [ 
       'class' => 'yii\grid\ActionColumn', 
       'template'=>'{update}', 
       'buttons' => [ 
        'update' => function ($url,$model) { 
          $url = Url::toRoute('post/update?id='.$model['PostID']); 
         return Html::a('<span class="glyphicon glyphicon-pencil"></span>',$url); 
        }, 
      ], 
      ], 
     ], 
    ]); ?> 
    <?php \yii\widgets\Pjax::end(); ?> 

</div> 

ответ

7

Вы должны должны добавить [ 'data-pjax' => false ] или [ 'data-pjax' => '0' ] в анкерных вариантах тегов кнопки обновления.

Например,

[ 
    'class' => 'yii\grid\ActionColumn', 
    'template'=>'{update}', 
    'buttons' => [ 
      'update' => function ($url,$model) { 
         $url = Url::toRoute('post/update?id='.$model['PostID']); 
         return Html::a('<span class="glyphicon glyphicon-pencil"></span>',$url, ['data-pjax' => '0']); 
        }, 
    ], 
] 
+0

Большое спасибо, это работает отлично –