2015-04-01 53 views
2

首先我正在使用yii2.0框架。如何通過Ajax更改網格視圖? yii2

對,我有一個從我的數據庫中提取數據的gridview。它目前工作,如果我使用任何搜索它將重新加載與新數據的頁面。

但是我現在已經創建了一些dropdownlist類別。基本上有三層類別,所以主要類別子類別和子類別。目前我有兩個Ajax請求會在下拉列表更改時填充子和子類別。 (它從我的數據庫中填充類別)。

現在我想讓gridview顯示鏈接到子類別的個案。所以,當我選擇我的第一類,然後選擇我的第二個和子類別gridview顯示與它有關的內容。

在我的控制器再現searchModel +數據提供程序的網格視圖的時刻,如下圖所示:

public function actionIndex() 
{ 
    $searchModel = new CaseSearch(); 
    $allCategory = Category::find()->all(); 

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

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

在我看來,它與這個::

<?= GridView::widget([ 
    'dataProvider' => $dataProvider, 
    'filterModel' => $searchModel, 
    'columns' => [ 
     'case_id', 
     'name', 
     'judgement_date', 
     'year', 
     ['class' => 'yii\grid\ActionColumn'], 
    ], 
]); ?> 
顯示數據

我應該如何去實現這一目標?我應該創建一些_grid.php,然後我可以從我的視圖呈現併發送ajax請求嗎?

回答

3

來實現這一功能的最簡單方法是使用內置Pjax部件像這樣包裹GridView

use yii\widgets\Pjax; 

<?php Pjax::begin(); ?> 

// Place GridView code here 

<?php Pjax::end(); ?> 

從JS可以觸發表單提交這樣的:

$('.grid-view-selector').yiiGridView('applyFilter'); 

如果連接了pjax,則內容將被動態替換而無需重新加載頁面。

官方文檔:

+0

我可以編輯或查看使用PJAX @arogachev – 2016-05-06 12:40:27

1

我可能會使用的GridView $ filterSelector。 併爲您的自定義類別dropDown添加選擇器。 之後您需要爲SearchModel添加類別屬性。 在最後 - 你會得到過濾器與你自定義字段添加到標準的一些