Maison  >  Article  >  développement back-end  >  PHP开发框架Yii Framework教程(32) Zii组件-GridView示例

PHP开发框架Yii Framework教程(32) Zii组件-GridView示例

黄舟
黄舟original
2017-01-22 09:45:481378parcourir

CGridView 以表格的形式显示数据,CGridView 也支持分页和排序,CGridView最基本的用法和ListView类型,也是通过设置 data provider,通常是CActiveDataProvider。

修改上个例子Yii Framework 开发教程(31) Zii组件-DetailView 示例,把ListView该为GridView:

widget('zii.widgets.grid.CGridView', array(
'dataProvider'=>$dataProvider,
'ajaxUpdate'=>false,
'template'=>'{pager}{summary}{items}{pager}',
)); ?>

可以看到GridView缺省显示了所有的字段, 并使用缺省的格式显示字段,如果需要控制字段显示和格式,可以通过配置 CGridView::columns属性来实现。GridView的 每列为一个CGridColumn对象:

CGridColumn为所有Grid 列表项的基类,表格的每例可以有一个表头,多个数据单元,和一个可选的表尾单元格。

CButtonColumn 表示该单元格为一个或多个按钮,缺省显示三个按钮, “view”, “update” 和”delete”,可以通过设置 buttons 和 template来更改。

CCheckBoxColumn 表示该单元格为Checkbox,支持只读,单选或多选,通过配置selectableRows来修改

CDataColumn 表示该单元为数据或是表达式,通过配置name或value,前者表示数据模型的属性名称,后者代码一个PHP表达 式。

CLinkColumn 表示一个超链接,通过配置 label , url或 imageUrl来设置链接。

重新定义GridView的columns属性如下:

widget('zii.widgets.grid.CGridView', 
array('id'=>'person-grid','dataProvider'=>$dataProvider,'htmlOptions'=>array('style'=>'width:740px'),'pager'=>
array('maxButtonCount'=>'7',),'columns'=>array(array('header'=>'Name','type'=>'raw',
'value'=>'CHtml::link($data->FirstName ." "
 . $data->LastName,$this->grid->controller->createUrl("view",array("CustomerId"=>$data-
>CustomerId)))',),'Company',array('class'=>'CLinkColumn',
'header'=>'Email','imageUrl'=>'images/email.png','labelExpression'=>'$data->Email','urlExpression'=>'"mailto://".
$data->Email','htmlOptions'=>array('style'=>'text-align:center'),),array('class'=>'CButtonColumn',
'deleteConfirmation'=>'Are you sure to delete this item?',),),));
?>

点击姓名可以显示DetailView。 ButtonColumn 的update,search,delete没有添加对应的view ,就留给你自己加上了。

以上就是PHP开发框架Yii Framework教程(32) Zii组件-GridView示例的内容,更多相关内容请关注PHP中文网(www.php.cn)!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn