Yii Framework Menambahkan Custom button pada CGridView

alfa6661
- October 02, 2013
0 (0 votes)
Rate :
Cara menambahkan custom button pada CGridView Yii Framework

Artikel ini akan membahas bagaimana untuk menambahkan button kustom pada CGridView Yii Framework. Untuk melakukan customisasi CGridView bagian button, kita harus memperhatikan 'template' dan 'buttons.'

Jika kita akan mendefinisikan tombol tambahan, ID dari tombol diperlukan disini. Sebagai contoh, jika sebuah tombol bernama 'message' kita dapat menggunakan token '{message}' untuk menampilkan tombol tersebut.

Contoh :

<?php $this->widget('zii.widgets.grid.CGridView', array(
    .....
    'columns'=>array(
        ....
        array(
            'class'=>'CButtonColumn',
            'template' => '{message}{view}{update}{delete}',
        ),
    ),
)); ?>

Langkah selanjutnya adalah melakukan customisasi untuk tombol 'message ini'. Kita dapat mengubah url, label dan url dari gambar yang akan di tampilkan.

Contoh :

<?php $this->widget('zii.widgets.grid.CGridView', array(
    .....
    'columns'=>array(
        ....
        array(
            'class'=>'CButtonColumn',
            'template' => '{message}{view}{update}{delete}',
            'buttons' => array(
                'message' => array(
                    'label' => 'messages',
                    'url' => 'CHtml::normalizeUrl(array("mail/send/", "id" => $data->id))', 
                    'imageUrl' => Yii::app()->baseUrl . '/images/message.png',
                ),
            ),
        ),
    ),
)); ?>

Full Source

<?php $this->widget('zii.widgets.grid.CGridView', array(
    'id'=>'person-grid',
    'dataProvider'=>$model->search(),
    'filter'=>$model,
    'columns'=>array(
        'first_name',
        'last_name',
        array(
            'class'=>'CButtonColumn',
            'template' => '{message}{view}{update}{delete}',
            'buttons' => array(
                'message' => array(
                    'label' => 'messages',
                    'url' => 'CHtml::normalizeUrl(array("mail/send/", "id" => $data->id))', 
                    'imageUrl' => Yii::app()->baseUrl . '/images/message.png',
                ),
            ),
        ),
    ),
)); ?>

Computer science education cannot make anybody an expert programmer any more than studying brushes and pigment can make somebody an expert painter

– Eric S. Raymond

Have a better explanation?

If you have comments about this post. Please write your comments below

No comments associated with this article