Sabtu, 16 Februari 2019

Yii2 : Edit Action Button Pada Grid View

20.58 Posted by uba Nezad , , No comments

Modifikasi GridView dengan mengganti template tombol seperti gambar dibawah.


Gridview adalah salah satu widget yang sangat berguna jika anda ingin membuat suatu halaman admin dengan cepat. Untuk menggunakannya dibutuhkan data dari penyedia data dan merender setiap baris menggunakan seperangkat kolom yang menyajikan data dalam bentuk tabel. Setiap baris mewakili satu item data, dan setiap kolom newakili attributes item data.

Nah bagaimana cara untuk mengganti tampilan button dari column action, berikut langkah-langkahnya :

pertama kita buat kode GridView nya :

  1. $dataProvider,
  2. // 'filterModel' => $searchModel,
  3. 'columns' => [
  4. ['class' => 'yii\grid\SerialColumn'],
  5. // 'id_ptknonpns',
  6. // 'id',
  7. 'nik',
  8. // 'nuptk',
  9. 'nama',
  10. // 'gelar_belakang',
  11. 'ttl',
  12. //'jk',
  13. //'pend',
  14. // 'temp_tugas',
  15. //'npsn',
  16. // 'tmt_gtt',
  17. //'jenjang',
  18. // 'kec',
  19. 'masker_th',
  20. // 'masker_bl',
  21. // 'ket',
  22. ['class' => 'yii\grid\ActionColumn'],
  23. ],
  24. ]); ?>


Berikut tampilannya :


kemudian tambahkan kode dibawah ini, pada class ActionColumn :

  1. ['class' => 'yii\grid\ActionColumn',
  2. 'contentOptions' => ['style' => 'widget:100px, align:center;'],
  3. 'header' => 'Actions',
  4. 'template' => '{lihat} &nbsp {perbaiki} &nbsp {nik}',
  5. 'buttons' => [
  6. 'perbaiki' => function($url, $model, $key) {
  7. return Html::a(' Perbaiki', ['perbaikan', 'id'=>$model-id_ptknonpns], [
  8. 'class' => 'btn btn-primary btn-xs',
  9. ]);
  10. },
  11. 'lihat' => function($url, $model, $key){
  12. return Html::a(' Lihat',['view', 'id'=>$model->id_ptknonpns],[                                        
  13. 'class' => 'btn btn-success btn-xs'
  14. ]);
  15. },
  16. 'nik' => function($url, $model, $key){
  17. return Html::a(' NIK',['editnik', 'id'=>$model->id_ptknonpns], [
  18. 'class' => 'btn btn-warning btn-xs',
  19. ]);
  20. }
  21. ]
  22. ],
  23. 'perbaiki' => function($url, $model, $key) {
  24. return Html::a(' Perbaiki', ['perbaikan', 'id'=>$model->id_ptknonpns], [
  25. 'class' => 'btn btn-primary btn-xs',
  26. ]);
  27. },
  28. 'lihat' => function($url, $model, $key){
  29. return Html::a(' Lihat',['view', 'id'=>$model->id_ptknonpns], [
  30. 'class' => 'btn btn-success btn-xs'
  31. ]);
  32. },
  33. 'nik' => function($url, $model, $key){
  34. return Html::a(' NIK',['editnik', 'id'=>$model->id_ptknonpns], [
  35. 'class' => 'btn btn-warning btn-xs',
  36. ]);
  37. }
  38. ]
  39. ],
Selesai, dan hasinya akan seperti ini :

Berikut adalah full code :
$dataProvider,
        // 'filterModel' => $searchModel,
        'columns' => [
            ['class' => 'yii\grid\SerialColumn'],

            // 'id_ptknonpns',
            // 'id',
            'nik',
            // 'nuptk',
            'nama',
            // 'gelar_belakang',
            'ttl',
            //'jk',
            //'pend',
            // 'temp_tugas',
            //'npsn',
            // 'tmt_gtt',
            //'jenjang',
            // 'kec',
            'masker_th',
            // 'masker_bl',
            // 'ket',

             ['class' => 'yii\grid\ActionColumn',
                    'contentOptions' => ['style' => 'widget:100px, align:center;'],
                    'header' => 'Actions',
                    'template' => '{lihat} &nbsp {perbaiki} &nbsp {nik}',
                    'buttons' => [
                            'perbaiki' => function($url, $model, $key) {
                                return Html::a(' Perbaiki', ['perbaikan', 'id'=>$model->id_ptknonpns], [
                                    'class' => 'btn btn-primary btn-xs',
                                    ]);
                            },
                            'lihat' => function($url, $model, $key){
                                return Html::a(' Lihat',['view', 'id'=>$model->id_ptknonpns], [
                                        'class' => 'btn btn-success btn-xs'
                                    ]);
                            },
                            'nik' => function($url, $model, $key){
                                return Html::a(' NIK',['editnik', 'id'=>$model->id_ptknonpns], [
                                        'class' => 'btn btn-warning btn-xs',

                                    ]);
                            }
                    ]
             ],
        ],
    ]); ?>

Sekian, Semoga bermanfaat.