使用 pjax 重新加载 Yii2 数据表
Yii2 Datatable reload using pjax
我有这个问题。我正在使用 yii2。我正在使用 datatable 来显示我的内容。一切都很好。但是当我使用 Pjax 重新加载 table 时。一些 div 会丢失。这是屏幕截图:
这是在提交 pjax 之前。
提交后的这个。
有人知道如何在通过 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);
当您使用 Pjax
作为带有 DataTable
的搜索过滤器并重新加载 Pjax
时,将从主容器中删除 DataTable 插件的初始化。
你应该使用Pjax插件提供的Events,根据你现在的情况,你可以使用
pjax:complete
: always fires after ajax, regardless of the
result.
因此您可以绑定事件以重新加载容器上的 DataTable
脚本,如下所示。
$js=<<< JS
$(document).on('pjax:complete', function() {
$('#myTable').DataTable();
});
JS;
$this->registerScript($js,\yii\web\View::POS_READY);
希望对您有所帮助。
我有这个问题。我正在使用 yii2。我正在使用 datatable 来显示我的内容。一切都很好。但是当我使用 Pjax 重新加载 table 时。一些 div 会丢失。这是屏幕截图:
这是在提交 pjax 之前。
提交后的这个。
有人知道如何在通过 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);
当您使用 Pjax
作为带有 DataTable
的搜索过滤器并重新加载 Pjax
时,将从主容器中删除 DataTable 插件的初始化。
你应该使用Pjax插件提供的Events,根据你现在的情况,你可以使用
pjax:complete
: always fires after ajax, regardless of the result.
因此您可以绑定事件以重新加载容器上的 DataTable
脚本,如下所示。
$js=<<< JS
$(document).on('pjax:complete', function() {
$('#myTable').DataTable();
});
JS;
$this->registerScript($js,\yii\web\View::POS_READY);
希望对您有所帮助。