Popup window at YII2 gridview 问题
Popup window at YII2 gridview problems
我尝试为我的公司制作一个网络应用程序(CRUD 应用程序)来管理他们的存储。
我使用 Yii2 框架来简化它,并使用了很多来自 kartik-v 的插件
但是我对弹出 window 有疑问。实际上,我必须在 gridview 中显示所有存储项目,并且我想为其功能创建一个弹出窗口 windows。我已经为 "create" 完成了此操作,但我无法对显示、编辑和更新功能执行相同的操作,因为它(按钮 link)包含在 table -> 操作列中。
我试图找到一些答案,它引导我进入弹出式对话,但它无法正常工作。我尝试查看按钮。我显示弹出窗口一段时间,然后它指向查看页面。我真的不想让它只是一个弹出窗口。有人可以帮我吗?
这是我的操作网格列代码:
[
'class' => 'kartik\grid\ActionColumn',
'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']);
},
],
],
这是我的模态初始化:
<?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'));
});});
有人可以帮帮我吗??
当您单击按钮 link(您使用 link)时,它们会在视图页面上重定向,为防止这种情况,您应该使用
$('#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 方法来呈现视图
我尝试为我的公司制作一个网络应用程序(CRUD 应用程序)来管理他们的存储。 我使用 Yii2 框架来简化它,并使用了很多来自 kartik-v 的插件 但是我对弹出 window 有疑问。实际上,我必须在 gridview 中显示所有存储项目,并且我想为其功能创建一个弹出窗口 windows。我已经为 "create" 完成了此操作,但我无法对显示、编辑和更新功能执行相同的操作,因为它(按钮 link)包含在 table -> 操作列中。 我试图找到一些答案,它引导我进入弹出式对话,但它无法正常工作。我尝试查看按钮。我显示弹出窗口一段时间,然后它指向查看页面。我真的不想让它只是一个弹出窗口。有人可以帮我吗?
这是我的操作网格列代码:
[
'class' => 'kartik\grid\ActionColumn',
'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']);
},
],
],
这是我的模态初始化:
<?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'));
});});
有人可以帮帮我吗??
当您单击按钮 link(您使用 link)时,它们会在视图页面上重定向,为防止这种情况,您应该使用
$('#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 方法来呈现视图