Yii1.1 CGridView 简单使用

Yii1.1 CGridView 简单使用

  1. 配置model文件,返回CActiveDataProvider对象。
public function search()
{
    $criteria=new CDbCriteria;

    $criteria->compare('title',$this->title,true);
    $criteria->compare('type',$this->type);
    $criteria->compare('addr',$this->addr,true);
    $criteria->compare('status',$this->status);
    $criteria->compare('show_time',$this->show_time);
    $criteria->order = 'order_by,id desc';

    return new CActiveDataProvider(get_class($this), array(
        'criteria'=>$criteria,
        'Pagination' => array (
            'PageSize' => 15 
        ),
    ));
}
复制代码
  1. 在模板文件中,通过widget使用CGridView小物件。
$this->widget('zii.widgets.grid.CGridView', array());
复制代码

通过dataProvider接收对象。

$this->widget('zii.widgets.grid.CGridView', array(
    'id' => 'post-grid',
    'dataProvider' => $searchModel->search(),
);
复制代码

加上搜索框

'filter' => $searchModel(),

model文件,rules属性return加上要搜索的字段:
array('title, type, addr, status, show_time', 'safe', 'on'=>'search'),
复制代码

columns为展示的字段。filter搜索框为下拉菜单。'class'=>'CButtonColumn'为按钮,其中,'view','update','delete'按钮名特殊处理。

'columns'=>array(
    'title',
    array(
        'name' => 'type',
        'value'=> function($data){
            return EnquirySetting::dropDown('type',$data->type);
        },
        'filter' => EnquirySetting::dropDown('type'),
    ),
    'addr',
    array(
        'name' => 'status',
        'value'=> function($data){
            return EnquirySetting::dropDown('status',$data->status);
        },
        'filter' => EnquirySetting::dropDown('status'),
    ),
    'show_time',
    array(
        'class'=>'CButtonColumn',
        'template'=>'{edit}{delete}',
        'buttons'=>array
        (
            'edit' => array
            (
                'label'=>Yii::t('label', 'update').' ',//按钮名称
                'url'=>'Yii::app()->createUrl("onlineshop/chat-edit",array("chat_id"=>$data->id))',//按钮跳转地址
                'visible'=>"UserRolePermissionUtilities::checkUserPagePermission('/xxx/edit', 'w')",//权限控制
            ),
            'delete' => array
            (
                'label'=>Yii::t('label', 'delete'),//按钮名称
                'url' => 'Yii::app()->createUrl("onlineshop/chat-del",array("chat_id"=>$data->id))',//按钮跳转地址
                'visible'=>"UserRolePermissionUtilities::checkUserPagePermission('/xxx/delete', 'w')",//权限控制
            ),
        ),
        'deleteConfirmation'=>Yii::t('product','DEL_CONFIRM'),
    ),
),
复制代码

下拉菜单返回

public static function dropDown($column,$value=null){
    $dropDownList = array(
        'type' => array(
            '1' => 'www',
            '2' => 'wap',
        ),
        'status' => array(
            '0' => Yii::t("product","CHAT_CLOSE"),
            '1' => Yii::t("product","CHAT_OPEN"),
        )
    );
    if ($value !== null)
        return array_key_exists($column, $dropDownList) ? $dropDownList[$column][$value] : false;
    else
        return array_key_exists($column, $dropDownList) ? $dropDownList[$column] : false;
}
复制代码
附上完整代码

controller

public function actionChatIcon()
{
    $searchModel = new EnquirySetting();
    $searchModel->unsetattributes();
    if(!empty($_REQUEST['EnquirySetting'])){
        $searchModel->attributes = $_REQUEST['EnquirySetting'];
    }
    $criteria = new CDbCriteria();
    $count = EnquirySetting::model()->count($criteria);

    $this->render( 'chat-icon',array( 'count'=>$count,'searchModel'=>$searchModel ) );
        
}
复制代码

view

<?php

if (empty($count)) {
    echo Yii::t('pagecontent',"list_no_message");
} else {
?>

<div class="div-table" >
    <?php $this->widget('zii.widgets.grid.CGridView', array(
        'id'=>'post-grid',
        'dataProvider'=>$searchModel->search(),
        'filter'=>$searchModel,
        'columns'=>array(
            'title',
            array(
                'name' => 'type',
                'value'=> function($data){
                    return EnquirySetting::dropDown('type',$data->type);
                },
                'filter' => EnquirySetting::dropDown('type'),
            ),
            'addr',
            array(
                'name' => 'status',
                'value'=> function($data){
                    return EnquirySetting::dropDown('status',$data->status);
                },
                'filter' => EnquirySetting::dropDown('status'),
            ),
            'show_time',
            array(
                'class'=>'CButtonColumn',
                'template'=>'{edit}{delete}',
                'buttons'=>array
                (
                    'edit' => array
                    (
                        'label'=>Yii::t('label', 'update').' ',
                        'url'=>'Yii::app()->createUrl("onlineshop/chat-edit",array("chat_id"=>$data->id))',
                        'visible'=>"UserRolePermissionUtilities::checkUserPagePermission('/onlineshop/chaticon', 'w')",
                    ),
                    'delete' => array
                    (
                        'label'=>Yii::t('label', 'delete'),
                        'url' => 'Yii::app()->createUrl("onlineshop/chat-del",array("chat_id"=>$data->id))',
                        'visible'=>"UserRolePermissionUtilities::checkUserPagePermission('/onlineshop/chaticon', 'w')",
                    ),
                ),
                'deleteConfirmation'=>Yii::t('product','DEL_CONFIRM'),
            ),
        ),
    ));
    ?>
</div>

<?php
}
?>
复制代码

model

class EnquirySetting extends CActiveRecord
{
    public static function model($className=__CLASS__)
    {
        return parent::model($className);
    }

    public function tableName()
    {
        return 'table_name';
    }

    public function rules()
    {
        return array(
            array('title, type, addr','required'),
            array('title, type, addr, status, show_time, order_by','safe'),
            array('title, type, addr, status, show_time', 'safe', 'on'=>'search'),
        );
    }

    public function attributeLabels()
    {
        return array(
            'title' => Yii::t('product', 'CHAT_TITLE'),
            'type' =>  Yii::t('product', 'CHAT_TYPE'),
            'addr' =>  Yii::t('product', 'CHAT_ADDR'),
            'status' =>  Yii::t('product', 'CHAT_STATUS'),
            'order_by' =>  Yii::t('product', 'CHAT_ORDER_BY'),
            'show_time' =>  Yii::t('product', 'CHAT_SHOW_TIME'),
            'created_date' =>  Yii::t('product', 'CHAT_CREATED_DATE'),
            'created_by' =>  Yii::t('product', 'CHAT_CREATED_BY'),
            'modified_date' =>  Yii::t('product', 'CHAT_MODIFIED_DATE'),
            'modified_by' =>  Yii::t('product', 'CHAT_MODIFIED_BY'),
        );
    }

    public function search()
    {
        $criteria=new CDbCriteria;

        $criteria->compare('title',$this->title,true);
        $criteria->compare('type',$this->type);
        $criteria->compare('addr',$this->addr,true);
        $criteria->compare('status',$this->status);
        $criteria->compare('show_time',$this->show_time);
        $criteria->order = 'order_by,id desc';

        return new CActiveDataProvider(get_class($this), array(
            'criteria'=>$criteria,
            'Pagination' => array (
                'PageSize' => 15
            ),
        ));
    }

    public static function dropDown($column,$value=null){
        $dropDownList = array(
            'type' => array(
                '1' => 'www',
                '2' => '1cm',
            ),
            'status' => array(
                '0' => Yii::t("product","CHAT_CLOSE"),
                '1' => Yii::t("product","CHAT_OPEN"),
            )
        );
        if ($value !== null)
            return array_key_exists($column, $dropDownList) ? $dropDownList[$column][$value] : false;
        else
            return array_key_exists($column, $dropDownList) ? $dropDownList[$column] : false;
    }
}
复制代码
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值