2017-02-01 5 views
0

Wie kann ich, nur grid-view auf auf Änderung Ereignis des Drop-Down in Yii2 laden?Reload nur gridview in yii2

Ich weiß, dass es über Pjax erfolgen kann, aber nicht sicher, wo und wie der Code zu verwenden ist.

Ich verwende Ajax Anfrage für die Kommunikation mit dem Controller. Hier ist der Ajax-Code: -

function loadGrid(level) { 
    alert(level); 
    $.ajax({ 
     type: 'GET', 
     url: 'index.php?r=villagedata/level', 
     data: {level:level}, 
     success: function(data) 
     { 
      alert("Success"); 
      $.pjax({container: '#myview'}); 
     } 
    }); 
} 

I wan't mein Raster neu zu laden, wenn die Ajax-Request kehrt Erfolgsmeldung.

Vielen Dank.

Antwort

2

Genau, mit Pjax.

use yii\grid\GridView; 
use yii\widgets\Pjax; 

<?php Pjax::begin(['id' => 'pjax-grid-view']); ?>  
    <?= GridView::widget([ 
     'dataProvider' => $dataProvider, 
     'columns' => [ 
      '...' 
     ], 
    ]); ?> 
<?php Pjax::end(); ?> 

und jQuery, um Dropdown-Änderung zu erkennen.

Wenn Dropdown hat "Dropdown" id,

$('#dropdown').on('change', function(ev) { 
    $.pjax({container: '#pjax-grid-view'}) 
}); 
+0

Hallo, danke für die Antwort. Aber das Gitter wird nicht neu geladen. –

+0

Wird das Drop-Down-Änderungsereignis aufgerufen? –

+0

Ja. Ich mache einen Ajax-Aufruf an den Controller, führe dann eine Abfrage für das Modell durch, das es zurückgibt, und lade dann nur Gridview neu, mache ich richtig? –

1

Versuchen

$("#idyourgrid").yiiGridView("applyFilter");