YII2 gridview问题的弹出窗口

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了YII2 gridview问题的弹出窗口相关的知识,希望对你有一定的参考价值。

我尝试为我的公司制作一个Web应用程序(CRUD应用程序)来管理他们的存储。我使用Yii2框架使其变得简单并使用了很多来自kartik-v的插件但是我的弹出窗口有问题。实际上,我必须在gridview中显示所有存储项目,并且我想为其功能创建一个弹出窗口。我已经为“创建”做了这个,但我不能用show,edit和update功能做同样的事情,因为它(按钮链接)包含在表 - > actioncolumn中。我试着找到一些答案,它引导我进行弹出对话,但它不能正常工作。我试着看按钮。我显示弹出一段时间然后它指向查看页面。我真的不想让它只是一个弹出窗口。有人可以帮我吗?

这是我的动作网格列代码:

       [
            'class' => 'kartikgridActionColumn',
            'header' => 'Actions',
            'vAlign' => 'middle',
            'template' => '{view} {update} {delete} {popupview}',
            'buttons' => [
                'popupview' => function ($url, $model) {
                    $url = Url::to(['companies/view' , 'id' => $model->company_id]);
                    return html::a('<span class="glyphicon glyphicon-eye-open" title"></span>',$url, ['class' => 'btn btn-success', 'value' => Url::to(['companies/view' , 'id' => $model->company_id]), 'id' => 'viewButton']);
                },
            ],
        ],

这是我的模态init:

<?php
    Modal::begin([
        'header' => '<h4>Companies</h4>',
        'id' => 'view',
        'size' => 'modal-lg',
    ]);

    echo "<div id='viewContent'></div>";

    Modal::end();
?>

这是我弹出的javascript

$(function(){
$('#viewButton').click(function(){
    $('#view').modal('show')
        .find('#viewContent')
        .load($(this).attr('value'));
});});

有人能帮我吗??

答案

当您单击按钮链接(使用链接)时,它们会在视图页面上重定向,以防止您使用

$('#viewButton').click(function(e){
   e.preventDefault();
   //rest of the code
});

但是还不够,在模态中加载视图的内容,你必须通过像这样的ajax调用它

$('#viewButton').click(function(e){
   e.preventDefault();
   $.ajax({
       url : '',
       data: '',
       success: function (response) {
          $('#viewContent').html(response);
    });

});

在您的控制器中,您必须使用RenderAjax方法来渲染视图

以上是关于YII2 gridview问题的弹出窗口的主要内容,如果未能解决你的问题,请参考以下文章

将 UIViewController 显示为没有 seguge 的弹出窗口

显示带有 xamarin 表单的弹出窗口

如何迅速解除父母的弹出窗口

最大化每个页面上的弹出窗口

如何创建像 Stripe 结帐这样的弹出窗口

jQuery Mobile 中的弹出窗口没有按预期工作,请咨询