首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用pjax重新加载Yii2数据表

问使用pjax重新加载Yii2数据表
EN

Stack Overflow用户
提问于 2019-02-14 03:22:35
回答 1查看 847关注 0票数 1

我有这个问题。我在用yii2。我使用datatable来显示我的内容。百事大吉。但是当我用Pjax重新加载表时。有些人会失踪。这是截图:

​

​

这是在提交pjax之前。

​

​

这是屈服后的。

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

以下是提交时我在_form中的代码:

代码语言:javascript
复制
$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);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-14 08:39:22

在使用Pjax进行搜索筛选和DataTable并重新加载时,Pjax从主容器中删除DataTable插件的初始化。

您应该使用Pjax插件提供的事件,对于当前的情况,可以使用

pjax:complete:总是在ajax之后触发,不管结果如何。

因此,您可以绑定事件来重新加载容器上的DataTable脚本,如下所示。

代码语言:javascript
复制
$js=<<< JS
$(document).on('pjax:complete', function() {
    $('#myTable').DataTable();
});
JS;
$this->registerScript($js,\yii\web\View::POS_READY);

希望能帮上忙。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54682740

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档