1. PHP
  2. Yii Framework

Yii Framework Filter CGridView dengan Dropdownlist

Secara default filter pada Cgridview menggunakan textfield. Akan tetapi adakalanya pada beberapa kasus diperlukan filter pada Cgridview dengan menggunakan dropdownlist. Oleh karena itu, artikel ini akan membahas bagaimana cara filter CGridview menggunakan dropdownlist pada Yii Framework.

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

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.

Comments to: Yii Framework Filter CGridView dengan Dropdownlist

    Your email address will not be published. Required fields are marked *

    Attach images - Only PNG, JPG, JPEG and GIF are supported.