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。
下面的代码是生成$userData的,品味一下吧:
$userData = new CActiveDataProvider('User', array( 'pagination'=>array( //所以关于pagination的设置都可以在这里进行 'pageSize'=>10, ), 'sort' => array( //所以关于csort的设置都可以在这里进行 'defaultOrder' => 'username' ) ));在email字段中,我们使用了具体设置,用表达式的方式为email制作了链接效果。 在表达式中我们可以用:
$grid (当前gridview实例),
$row(当前行,index从0开始计算),
$data(当前行的model实例),
$this(当前列的实例)。
默认的column类型为CDataColumn, 其他我们暂时还能选择CCheckBoxColumn, CLinkColumn和CRudColumn, 相信以后还会提供更多的类型。