天天看点

Yii使用CGridView列表

 CGridView显示一个数据项的列表中的一个表。

表中的每一行代表一个数据项的数据,和一个列通常代表一个属性的物品(一些列可能对应于复杂的表达式的属性或静态文本)。  CGridView既支持排序和分页的数据项。排序和分页可以在AJAX模式或正常的页面请求。使用CGridView的一个好处是,当用户浏览器禁用JavaScript,排序和分页自动退化普通页面请求和仍然正常运行。

实例代码如下:

  1.  $this->widget('zii.widgets.grid.CGridView', array( 
  2.  'id'=>'chapter-grid', 
  3.  'dataProvider'=>$model->search(),  //数据结果集 
  4.  'filter'=>$model,
  5.  'columns'=>array( 
  6.        'id', 
  7.        //锚点<a href="http://www.gulianqiang.com/" target="_blank" rel="external nofollow" ></a> 
  8.        array( 
  9.               'name'=>'name', 
  10.               'type'=>'raw', 
  11.               'value'=>'CHtml::link($data->name,"/book/$data->id")', 
  12.          ), 
  13.        //图片 
  14.        array( 
  15.               'name'=>'p_w_picpath', 
  16.               'type'=>'p_w_picpath', 
  17.               'value'=>'LImages::getPath("book").$data->p_w_picpath',//图片相对路径 
  18.          ), 
  19.         //下拉列表 
  20.         array( 
  21.               'name'=>'type', 
  22.               'value'=>'Lookup::item("chapterType",$data->type)', 
  23.               'filter'=>Lookup::items('chapterType'), 
  24.          ), 
  25.        //内容截取 
  26.         array( 
  27.               'name'=>'content', 
  28.               'type'=>'html', 
  29.               'value'=>'mb_substr(htmlspecialchars_decode($data->content),0,100,"utf-8")', 
  30.          ), 
  31.         //时间 
  32.         array( 
  33.               'name'=>'create_time', 
  34.               'type'=>'datetime', 
  35.          ), 
  36.         // 根据相关信息读数据库 
  37.         array( 
  38.               'name'=>'user_id', 
  39.               'value'=>'User::model()->findbyPk($data->user_id)->username', 
  40.               'filter'=>false, 
  41.          ), 
  42.   array( 
  43.    'class'=>'CButtonColumn', 
  44.   ), 
  45.  ), 
  46. )); 

以上已经提供常用的数据显示类型。基本可以将使用Yii框架开发web应用使用CGridView的情况都列出。

转载于:https://blog.51cto.com/liyongjiang/1148218

继续阅读