2016-10-03 7 views
1

私はトラック検証を含むグリッドを持っています。私はグリッドの内容をページリフレッシュなしで変更したいと思います。サーバーデータベースの変更後に自動的にyii2グリッドを更新する

現在のところ、これはページがリフレッシュされても動作しますが、ページがサーバーデータベース内のコンテンツが変更されたときに更新されない場合でも機能します。

これは)グリッド

<?php 

$gridColumns = [ 
['class' => 'kartik\grid\SerialColumn'], 
    'reg_no', 
[ 
    'attribute'=>'truck_category', 
    'value'=>'truckCategory.category' 
], 

[ 
    'class' => 'kartik\grid\ActionColumn', 
    'vAlign'=>'middle', 
    'urlCreator' => function($action, $model, $key, $index) { return '#'; }, 
    'viewOptions'=>['title'=>"vdgdv", 'data-toggle'=>'tooltip'], 
    'updateOptions'=>['title'=>"update", 'data-toggle'=>'tooltip'], 
    'deleteOptions'=>['title'=>"delete", 'data-toggle'=>'tooltip'], 
    ] 
]; 


echo GridView::widget([ 
'dataProvider' => $dataProvider, 
'filterModel' => $searchModel, 
'columns' => $gridColumns, 
'containerOptions' => ['style'=>'overflow: auto'], // only set when $responsive = false 
'beforeHeader'=>[ 
    [ 
     'options'=>['class'=>'skip-export'] // remove this row from export 
    ] 
], 
'toolbar' => [ 
    [], 
    '{export}', 
    '{toggleData}' 
], 
'pjax' => true, 
'bordered' => true, 
'striped' => false, 
'condensed' => false, 
'responsive' => true, 
'hover' => true, 
'floatHeader' => true, 
'showPageSummary' => true, 
'panel' => [ 
    'type' => GridView::TYPE_PRIMARY 
], 

]です。 ?>

これは、誰かが私が自動変更を達成することができますどのように

+1

JavaScript(jQueryなど)について考えましたか? – sk001

+1

ここでpjaxを使用する必要があります。https://www.youtube.com/watch?v=ZhblqEROLWo –

+0

私はコンセプトを取得しました –

答えて

1

に方向を与えることができるあなたがして、セット時間間隔で以下使用することができ、グリッド

public function actionTrackingcenter() 
{ 
    $query = Truck::find()->where(['truck_status'=>5]); 
    $searchModel = new TruckSearch(); 
    $dataProvider = $searchModel->search(Yii::$app->request->queryParams,$query); 

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

} 

をレンダリングするコントローラでありますjQueryの

<?php 

$this->registerJs(' 
    setInterval(function(){ 
     $.pjax.reload({container:"YOUR_PJAX_CONTAINER_ID"}); 
    }, 10000);', \yii\web\VIEW::POS_HEAD); 
?> 

このコードは、あなたのGridViewのコード

後になります

これはPjaxグリッドを10秒ごとにリロードします。

+0

ありがとうございました...この1つのhttp:// stackoverflow.com/questions/39873040/calling-a-function-on-grid-action-coumn-click –

関連する問題