使用pjax重新加载Yii2 Datatable

问题描述 投票:1回答:1

我有这个问题。我正在使用yii2。我正在使用数据表来显示我的内容。一切顺利。但是当我使用Pjax重新加载表时。有些div会丢失。这是截图:

enter image description here

这是在提交pjax之前。

enter image description here

提交后这一个。

谁有人知道如何重新加载通过pjax重新加载div?谢谢。

这是提交时_form中的代码:

$script = <<< JS

$('form#{$model->formName()}').on('beforeSubmit', function(e)
{
    var \$form = $(this);
    $.post(
    \$form.attr('action'),
    \$form.serialize(),
    )
    .done(function(result){
       if (result == 1)
       {
        $(\$form).trigger('reset');
        $.pjax.reload({
            container: '#w0',
            timeout: false
        });
    } else {
        $('#message').html(result);
    }
}).fail(function()
{
    console.log('server error');
});
    return false;
});

JS;
$this->registerJs($script);
php datatables yii2 pjax
1个回答
2
投票

当您使用PjaxDataTable用于Pjax的搜索过滤器并重新加载Events时,将从主容器中删除DataTable插件的初始化。

您应该使用Pjax插件提供的pjax:complete,并根据您当前的情况,您可以使用

DataTable:无论结果如何,总是在ajax之后开火。

因此,您可以绑定事件以在容器上重新加载$js=<<< JS $(document).on('pjax:complete', function() { $('#myTable').DataTable(); }); JS; $this->registerScript($js,\yii\web\View::POS_READY); 脚本,如下所示。

qazxswpoi

希望能帮助到你。

© www.soinside.com 2019 - 2024. All rights reserved.