Yii Framework Filter CGridView dengan Dropdownlist

alfa6661
- February 06, 2013
0 (0 votes)
Rate :
Cara filter cgridview menggunakan dropdownlist

Secara default filter pada cgridview menggunakan textfield. Akan tetapi adakalanya pada beberapa kasus diperlukan filter pada Cgridview dengan menggunakan dropdownlist.

Sebagai contoh, pada tabel person terdapat kolom untuk gender yang diwakili oleh 1 adalah laki-laki dan 2 adalah perempuan.

Misal anda punya CGridView seperti berikut :

<?php $this->widget('zii.widgets.grid.CGridView', array(
    'id'=>'person-grid',
    'dataProvider'=>$model->search(),
    'filter'=>$model,
    'columns'=>array(
        'name',
        array(
            'name' => 'gender',
            'value' => function($data) {
                return $data->gender==1 ? "Laki-Laki" : "Perempuan";
            }
        ),
        array(
            'class'=>'CButtonColumn',
        ),
    ),
)); ?>

Pada CGridview di atas akan menghasilkan sebuah cgridview dengan filter berupa textfield. Untuk menampilkan filter dalam bentuk dropdownlist, property CDataColumn::filter harus di set sebagai array.

Contoh :

<?php $this->widget('zii.widgets.grid.CGridView', array(
    'id'=>'person-grid',
    'dataProvider'=>$model->search(),
    'filter'=>$model,
    'columns'=>array(
        'name',
        array(
            'name' => 'gender',
            'value' => function($data) {
                return $data->gender==1 ? "Laki-Laki" : "Perempuan";
            },
            'filter'=> array(1 => 'Laki Laki', 2 => 'Perempuan'),
        ),
        array(
            'class'=>'CButtonColumn',
        ),
    ),
)); ?>

Note :

Data indeks array akan digunakan untuk nilai atribut dalam tag <option>, dan nilai array adalah text yang akan di tampilkan dalam dropdown.

Data indeks array juga merupakan nilai dari attribut gender yang di simpan dalam tabel person. dalam kasus ini 1 adalah Laki-Laki, dan 2 adalah Perempuan.


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