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.
No Comments
Leave a comment Cancel