【发布时间】:2015-02-06 04:05:29
【问题描述】:
当在每一行单击查看或更新按钮时,我想在我的 gridview 上实现 Yii2 模态对话框。
任何人都可以就如何实施它提出建议吗?
在 arogachev 的建议下: 这是我的代码更新
<?php
//var_dump($dataProvider);
$gridColumns = [
[
'format' => 'html',
'attribute' => 'avatar',
'label'=>'Image',
'headerOptions' => ['width' => '80%',],
],
[ 'class' => 'yii\grid\ActionColumn',
'template' => '{view} {delete}',
'headerOptions' => ['width' => '20%', 'class' => 'activity-view-link',],
'contentOptions' => ['class' => 'padding-left-5px'],
'buttons' => [
'view' => function ($url, $model, $key) {
return Html::a('<span class="glyphicon glyphicon-eye-open"></span>','#', [
'id' => 'activity-view-link',
'title' => Yii::t('yii', 'View'),
'data-toggle' => 'modal',
'data-target' => '#activity-modal',
'data-id' => $key,
'data-pjax' => '0',
]);
},
],
],
];
?>
<?php
Pjax::begin();
echo \kartik\grid\GridView::widget([
'dataProvider' => $dataProvider,
'columns'=>$gridColumns,
'summary'=>false,
'responsive'=>true,
'hover'=>true
]);
Pjax::end();
?>
<?php $this->registerJs(
"$('.activity-view-link').click(function() {
$.get(
'imgview',
{
id: $(this).closest('tr').data('key')
},
function (data) {
$('.modal-body').html(data);
$('#activity-modal').modal();
}
);
});
"
); ?>
<?php
?>
<?php Modal::begin([
'id' => 'activity-modal',
'header' => '<h4 class="modal-title">View Image</h4>',
'footer' => '<a href="#" class="btn btn-primary" data-dismiss="modal">Close</a>',
]); ?>
<div class="well">
</div>
<?php Modal::end(); ?>
【问题讨论】:
-
在这种情况下如何打开实际的查看/更新页面?在弹出框内容中有链接?
-
嗨 arogachev,在 gridview 中,当我单击眼睛按钮时,视图页面将在模态中启动,当我单击铅笔按钮时,更新页面将在模态中启动。实际的查看/更新页面是一个可以自行启动的url页面。
-
这有点像在 Yii1 中,使用 CJuiDialog 来编辑 CGridView 中的行,只是我需要在 Yii2 中实现它,我无法在网上找到任何指南。
-
嗨,我在网上找到了一些与我想要的代码相似的代码,但是我不知道如何将所选行的 id 发送到模态 url,以便我可以在里面加载相关模型那个对话框。
-
我不明白,模态与弹出框有什么关系?弹出框类似于工具提示,但在单击而不是悬停时显示。
标签: gridview dialog modal-dialog yii2