Bookmark and Share

Lee's 程序人生

HTML CSS Javascript XML AJAX ATLAS C# C++ 数据结构 软件工程 设计模式 asp.net Java 数字图象处理 Sql 数据库
  博客园  :: 首页  :: 新随笔  :: 联系 :: 管理

Yii GridView 初探

Posted on 2010-02-24 21:58  analyzer  阅读(2490)  评论(0编辑  收藏  举报

最近在社区成员的强烈要求下,qiang也开始开发了Yii的GridView widget。根据qiang的意思此widget应该会在1.1rc的时候发布。不过今天当我更新svn的时候发现这个插件已经出现在zii的插件包中了,新东西当然都试下,接下来让我们看看 CGridView是怎么工作的。

首先通过下面这段代码,我们在action中生成了一个dataProvider可以提供给view中的widget调用

$userData = new CActiveDataProvider('User', array(
    'pagination'=>array(
            //所以关于pagination的设置都可以在这里进行
            'pageSize'=>10, 
    ),
    'sort' => array(
        //所以关于csort的设置都可以在这里进行
        'defaultOrder' => 'username'
    )
));


然后,我们可以在view中调用CGridView widget

<?php $this->widget('zii.widgets.grid.CGridView', array(
    'dataProvider' => $userData,
    'columns' => array(
        'id', 
        'username', 
        'fullname', 
        array(
            'dataField' => 'email',
            'dataExpression' => 'CHtml::mailto($data->email)'
        ), 
        'last_login',
        array('class' => 'CRudColumn', 'header' => '操作')
    ),
));?>

代码中我们看到了dataProvider这个属性使用了$userData变量。 在columns属性中我们对需要显示的字段和显示方式做了一定的设置: 在这里我们要求显示 'id', 'username', 'fullname', 'email', 'last_login' 几个字段.

在email字段中,我们使用了具体设置,用表达式的方式为email制作了链接效果。 在表达式中我们可以用:
$grid (当前gridview实例),
$row(当前行,index从0开始计算),
$data(当前行的model实例),
$this(当前列的实例)。

在最后我们用CRudColumn生成了操作列, 可以实现查看,修改,删除操作。

看下效果吧
GRIDVIEW

默认的column类型为CDataColumn, 其他我们暂时还能选择CCheckBoxColumn, CLinkColumn和CRudColumn, 相信以后还会提供更多的类型。

我要啦免费统计