服务器数据库更改后自动刷新yii2网格
问题描述:
我有一个涉及卡车验证的网格。我希望网格的内容在没有页面刷新的情况下进行更改。服务器数据库更改后自动刷新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
],
]); ?>
这是使网格控制器
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
谢谢我这样做...请为我回答这一个http:// stackoverflow.com/questions/39873040/calling-a-function-on-grid-action-coumn-click –
你有没有想过JavaScript(例如jQuery)? – sk001
你需要使用pjax这里是一个例子https://www.youtube.com/watch?v=ZhblqEROLWo –
谢谢我得到的概念 –