2017-05-04 13 views
0

私はYii2を使ってプロジェクトを開発しています。私が作成したpjaxを使った単純なグリッドビューです:Pjaxが動作しない、ページ全体をリロードする

<?php Pjax::begin(['id' => 'member-list-pjax', 'timeout' => 5000]);?> 
    <?= GridView::widget([ 
     'dataProvider' => $dataProvider, 
     'filterModel' => $searchModel, 
     'columns' => [ 
      'member_card_number', 
      'member_name', 
      [ 
       'attribute' => 'member_address', 
       'format' => 'raw', 
      ], 
      'member_phone1', 
      'member_phone2', 
      [ 
       'attribute' => 'member_type', 
       'value' => function ($model, $key, $index, $column){ 
        return $model->getTypeLabel($model->member_type); 
       }, 
       'filter' => $searchModel->getTypeLabel(), 
      ], 
     ], 
    ]); ?> 
<?php Pjax::end();?> 

Pjaxはまったく機能しません。グリッドビューのフィルタで何かを検索すると、ページ全体がリロードされます。 JavaScriptエラーもありません。誰か助けてくれますか?

UPDATE

私の行動は、実際には非常に長いです。しかし、ここで私は、GridViewコントロールに関連していると思う部分です:

$searchModel = new MemberSearch(); 
$dataProvider = $searchModel->search(Yii::$app->request->queryParams); 

if (isset($_GET['MemberSearch'])) 
    $searchModel->attributes = $_GET['MemberSearch']; 

return $this->render('form', [ 
    'searchModel' => $searchModel, 
    'dataProvider' => $dataProvider, 
]); 

私は今kartikのGridViewコントロールを使用するUPDATE 2

、私はPJaxを削除し、GridViewの中で真の 'pjax' =>を入れます、それは正常にAjaxフィルタを行いますが、それでもずっとずっと全ページをリロードします。ある場合

GridView::widget([ 
    'dataProvider' => $dataProvider, 
    'filterModel' => $searchModel, 
    'pjax' => true, 
    'pjaxSettings' => [ 
     'neverTimeout' => true, 
    ], 
    'columns' => [ /*columns same as above*/ ] 
]); 
+0

の下に使用し、あなたのIDをチェックし、ページの上部にこのJavaScriptを入れてください、pjaxは、ページ全体をロードしますhtmlでの返信 –

+0

チェックID、多分重複しています。また、これを確認することができます[リンク](http://www.yiiframework.com/forum/index.php/topic/65794-pjax-reload-gridview-should-stay-on-same-page/) – tigrasti

+0

試してみてくださいテスト目的のためのtimeout(10000)(タイムアウト内に200 OKで結果が返されない場合、ページが再ロードされます)。 あなたのアクションコードは、生成されたものとどのように違うのですか? –

答えて

0

$('body').on('click','.reload',function(){ 
    $.pjax.reload({container: '#w0-pjax'}); 
}); 

はまた、あなたのAJAXの応答を確認するコード

<?php \yii\widgets\Pjax::begin(['linkSelector'=>'','id'=>'w0-pjax']); ?>  
+0

これはうまくいかなかった。要求は取り消されます。 –

関連する問題