【问题标题】:YII2. How auto update (periodically) column in GridView?YII2.如何在 GridView 中自动更新(定期)列?
【发布时间】:2015-12-10 17:52:56
【问题描述】:

我尝试在 GridView-widget 中定期(5 秒)更新某些列,但这会更新所有页面

查看

<?php
$script = <<< JS
$(module).ready(function() {
    setInterval(function() {     
      $.pjax.reload({container:'#state-dependence'});
    }, 5000); 
});
JS;
$this->registerJs($script);
?>

<?php Pjax::begin(); ?>
    <?= GridView::widget([ 'id'=>'module',
        'dataProvider' => $dataProvider,
        'layout' => '{items}',
        'tableOptions' => ['class' => 'table table-striped table-bordered'],
        'columns' => [
             'Id', 
             'Title',
             [ 
               'format' => 'raw',
               'value' => function ($model) {
                return Html::tag('span', Html::encode($model::GetStringState($model->State)), 
                                ['id' => 'state-dependence']);
               }
             ],
             [ 
               'format' => 'raw',
               'value' => function ($model) {
                return Html::tag('span', Html::encode($model->Value), 
                                ['id' => 'state-dependence']);
               }
             ]

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

如何只更新某些列而不重新加载所有页面?有正确的方法吗?

【问题讨论】:

  • 你有两个 'state-dependence' 的 id,这可能会令人困惑,因为 id 应该对每个元素都是唯一的。尝试重命名其中一个,然后看看它是否有效。
  • 我测试了 1 行 1 列的唯一 ID。结果是一样的——页面被完全重新加载。
  • 好的,我们已经消除了它!还有一个问题,$(module).ready(function() 中的模块是干什么用的?通常是 $(document).ready(function()
  • 另外,您是否检查过 pjax 请求的 url 正确,并且没有抛出任何错误?
  • 'module' - 它是 yii2 类 GridView。 (在 html 中它是一个 div)

标签: ajax gridview yii2 pjax


【解决方案1】:

我前段时间也遇到过这个问题,当你打电话时意识到

$.pjax.reload({container:'#gridid'});

它重新加载整个页面。

我如何解决这个错误是: 如果您使用 google chrome 进行开发,请检查网格,您会发现

your grid id has an added -pjax

所以你需要打电话

$.pjax.reload({container:'#gridid-pjax'});
in your case:
 $.pjax.reload({container:'#module-pjax'});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多