Home > Backend Development > PHP Tutorial > Yii把CGridView文本框换成下拉框的方法_PHP

Yii把CGridView文本框换成下拉框的方法_PHP

WBOY
Release: 2016-05-31 18:15:53
Original
971 people have browsed it

本文实例讲述了Yii把CGridView文本框换成下拉框的方法。分享给大家供大家参考。具体实现方法如下:

使用yii的朋友都知道Yii中的CGridView默认显示提文本框了,那么我们要怎么把它转换成下拉框呢?本文就此分析一下解决方法。

默认情况下CGridView会生成一个文本框,但是这并不友好,用户往往希望知道有什么可选的,特别是数据库里存的是数字id的时候,我们希望将数字转换为可读的文本,这时候只需要修改一下表头的"filter"属性就行了,比如:

代码如下:

$this->widget('zii.widgets.grid.CGridView', array(
    'id'=>'business-grid',
    'dataProvider'=>$dataProvider,
    'filter'=> Business::model(),
    'columns'=>array(
        'business_id',
        'name',
        'package_id'=> array(
            'name' => 'package_id',
            'value' => '$data->package->package_title',
            'filter'=> CHtml::listData(Packages::model()->findAll(array('order'=>'package_title')), 'package_id', 'package_title')
        ),
        'user_id'=>array(
            'name' => 'user_id',
            'value' => '$data->user->name',
            'filter'=> CHtml::listData(Users::model()->findAll(array('order'=>'firstname')), 'id', 'name')
        ),
        'categories' => array(
            'name' => 'categories',
            'value' => '$data->returnAllCategories(", ",false);',
            'filter'=> CHtml::listData(Categories::model()->findAll(array('order'=>'category')), 'cat_id', 'category')
        ),
        'keywords' => array(
            'header' => 'Keywords',
            'value' => '$data->returnAllKeywords(", ",false);',
        ),
        'links'=>array(
            'header'=>'Manage',
            'type'=>'raw',
            'value'=>'CHtml::link(CHtml::image(Yii::app()->request->baseUrl."/images/admin/approve.png","Approve"), array("approve","id"=>$data->business_id,"item"=>"business"),array("class"=>"approve-link","title"=>"Approve Business"))." ".
       CHtml::link(CHtml::image(Yii::app()->request->baseUrl."/images/admin/reject.png","Reject"), array("reject","id"=>$data->business_id,"item"=>"business"),array("class"=>"reject-link","title"=>"Reject Business"))',
        ),
    ),
));

生成type下拉框可以这么写:

代码如下:

'type'=>array(
    'name' => 'type',
    'filter'=>$model->getTypeOptions(),
),

'type'=>array(
    'name' => 'type',
    'filter'=>$model->getTypeOptions(),
),

希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template