私は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*/ ]
]);
の下に使用し、あなたのIDをチェックし、ページの上部にこのJavaScriptを入れてください、pjaxは、ページ全体をロードしますhtmlでの返信 –
チェックID、多分重複しています。また、これを確認することができます[リンク](http://www.yiiframework.com/forum/index.php/topic/65794-pjax-reload-gridview-should-stay-on-same-page/) – tigrasti
試してみてくださいテスト目的のためのtimeout(10000)(タイムアウト内に200 OKで結果が返されない場合、ページが再ロードされます)。 あなたのアクションコードは、生成されたものとどのように違うのですか? –