Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
864 views
in Technique[技术] by (71.8m points)

gridview - Modal pop up in grid view in yii2

i would like to pop up a modal when i click on a button inside grid view. is this possible with yii2 gridview?

<?= GridView::widget([
        'dataProvider' => $dataProvider,
        'filterModel' => $searchModel,
        'columns' => [
            ['class' => 'yiigridSerialColumn'],


            'time_zone',
            'no_of_users',
            'bill_name',
            'bill_address',
            'names.name',
            'bill_state',
            'bill_city',
            'bill_postal',
            'bill_mobile',

            ['header'=>'Plan Info',
            'value'=> function($data)
                    { 
                        //~ print_r($data);die();
                        return  Html::a(Yii::t('app', ' {modelClass}', [
                            'modelClass' => 'details',
                        ]), ['userdetails/plans','id'=>$data->id], ['class' => 'btn btn-success    ']

                        );      
                    },
            'format' => 'raw'
            ],



            ['class' => 'yiigridActionColumn'],
        ],
    ]); ?>

in the above grid view i want a modal to popup when i click on the button 'details'.

thanks,

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Yes, it is possible. to achieve this follow below steps.

Add Modal code above GridView code.

<?php
    yiiootstrapModal::begin(['id' =>'modal']);
    yiiootstrapModal::end();
?>

After that add id in your details button. Like as,

[
    'header'=>'Plan Info',
    'value'=> function($data)
              { 
                   return  Html::a(Yii::t('app', ' {modelClass}', [
                          'modelClass' => 'details',
                          ]), ['userdetails/plans','id'=>$data->id], ['class' => 'btn btn-success', 'id' => 'popupModal']);      
              },
     'format' => 'raw'
],

And than register JavaScript at top or bottom of view page.

$this->registerJs("$(function() {
   $('#popupModal').click(function(e) {
     e.preventDefault();
     $('#modal').modal('show').find('.modal-content')
     .load($(this).attr('href'));
   });
});");

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...