CGridView显示一个数据项的列表中的一个表。
表中的每一行代表一个数据项的数据,和一个列通常代表一个属性的物品(一些列可能对应于复杂的表达式的属性或静态文本)。 CGridView既支持排序和分页的数据项。排序和分页可以在AJAX模式或正常的页面请求。使用CGridView的一个好处是,当用户浏览器禁用JavaScript,排序和分页自动退化普通页面请求和仍然正常运行。
实例代码如下:
- $this->widget('zii.widgets.grid.CGridView', array(
- 'id'=>'chapter-grid',
- 'dataProvider'=>$model->search(), //数据结果集
- 'filter'=>$model,
- 'columns'=>array(
- 'id',
- //锚点<a href="http://www.gulianqiang.com/"></a>
- array(
- 'name'=>'name',
- 'type'=>'raw',
- 'value'=>'CHtml::link($data->name,"/book/$data->id")',
- ),
- //图片
- array(
- 'name'=>'p_w_picpath',
- 'type'=>'p_w_picpath',
- 'value'=>'LImages::getPath("book").$data->p_w_picpath',//图片相对路径
- ),
- //下拉列表
- array(
- 'name'=>'type',
- 'value'=>'Lookup::item("chapterType",$data->type)',
- 'filter'=>Lookup::items('chapterType'),
- ),
- //内容截取
- array(
- 'name'=>'content',
- 'type'=>'html',
- 'value'=>'mb_substr(htmlspecialchars_decode($data->content),0,100,"utf-8")',
- ),
- //时间
- array(
- 'name'=>'create_time',
- 'type'=>'datetime',
- ),
- // 根据相关信息读数据库
- array(
- 'name'=>'user_id',
- 'value'=>'User::model()->findbyPk($data->user_id)->username',
- 'filter'=>false,
- ),
- array(
- 'class'=>'CButtonColumn',
- ),
- ),
- ));
以上已经提供常用的数据显示类型。基本可以将使用Yii框架开发web应用使用CGridView的情况都列出。