2017-08-31 66 views
0

我想在模態對話框上使用gridView,但是當我搜索它(過濾)中的某些內容時,所有的頁面刷新和顯然模態關閉。 我需要使它正常工作嗎?yii2 - 在模態窗口內使用pjax和gridview

我的代碼:

視圖

use yii\widgets\Pjax; 

<?php 
    Modal::begin([ 
     'id' => 'modal', 
     'header' => '<h2>Students</h2>', 
     'toggleButton' => ['label' => 'Show Students'], 
    ]); 
    Pjax::begin(); 
    echo GridView::widget([ 
      'dataProvider' => $dataProvider, 
      'filterModel' => $searchModel, 
      'columns' => [ 
       'student_code', 
       'name', 
       'grade', 
      ], 
     ]); 
    Pjax::end(); 
    Modal::end(); 
?> 

控制器

public function actionDetail($id) 
    { 
     $model = $this->findModel($id); 

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

     if ($model->load(Yii::$app->request->post()) && $model->save()) { 
      return $this->redirect(['view', 'id' => $model->id]); 
     } else { 
      return $this->render('detail', [ 
       'model' => $model, 
       'searchModel' => $searchModel, 
       'dataProvider' => $dataProvider, 
      ]); 
     } 
    } 

我已經搜索的文件上,從官方公報網頁教程和我找到了很多帖子相關,但我解決不了問題。

感謝您的任何幫助。

回答

0

的問題上Pjax的begin()方法所造成的結構,以正確的方式是:

查看代碼:

use yii\widgets\Pjax; 

<?php 
    Modal::begin([ 
     'id' => 'modal', 
     'header' => '<h2>Students</h2>', 
     'toggleButton' => ['label' => 'Show Students'], 
    ]); 

    Pjax::begin([ 
     'id'=>'pjax-students-gridview', 
     'timeout' => false, 
     'enablePushState' => false, 
    ]); 

    echo GridView::widget([ 
      'dataProvider' => $dataProvider, 
      'filterModel' => $searchModel, 
      'columns' => [ 
       'student_code', 
       'name', 
       'grade', 
      ], 
     ]); 

    Pjax::end(); 

    Modal::end(); 
?> 

控制器代碼是相同的,沒有任何問題。

感謝vityapro帶我走上正軌。

0

嘗試添加pjax配置GridView

'pjax' => true, 
'pjaxSettings'=>[ 
    'options'=>[ 
     'enablePushState'=>false, 
    ], 
], 

,併爲你的GridView渲染和觸發過濾器...和configure filterUrl單獨行動。

+0

將此配置添加到GridView我得到下一個錯誤:「未知屬性 - yii \ base \ UnknownPropertyException設置未知屬性:yii \ grid \ GridView :: pjax」 –