点击这里给我发消息 点击这里给我发消息

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

添加时间:2013-12-6
    相关阅读: 开发 模板 页面 数据库 PHP 框架

CListView可以用来显示列表,CListView支持使用自定义的View模板显示列表的的记录,因此可以非常灵活的显示数据的表 ,这点有点像Android的ListView:-)。

CListView 支持分页和排序,分页和排序支持使用AJAX实现从而可以提高页面 的响应性能。CListView的使用需要通过DataProvider,通常是使用CActiveDataProvider。

本例修改Yii Framework 开 发教程(26) 数据库-Active Record示例,不过为了显示分页,我们使用Customer数据库表,每页显示10条记录。

修改缺 省的视图protected/views/site/index.php,使用ListView组件。

<?php $this->widget

('zii.widgets.CListView', array(    
    'dataProvider'=>$dataProvider,    
    'ajaxUpdate'=>false,    
    'template'=>'{sorter}{pager}{summary}{items}{pager}',    
    'itemView'=>'_view',    
    'pager'=>array(    
                'maxButtonCount'=>'7',    
                ),    
            'sortableAttributes'=>array(    
                'FirstName',    
                'LastName',    
                'Country',    
                ),    
)); ?>

参数template 配置页面显示的模板,支持的参数有 {summary}, {sorter}, {items} 和{pager},分别对应 于ListView的汇总,排序,列表项,分页控制。

参数itemView 指明每个列表项对应的View显示。本例使用site/_view.php ,定义如下:

<center class="item">    
        
<h3><?php echo CHtml::encode($data->FirstName . ' ' . $data->LastName);?></h3>    
        
<b><?php echo CHtml::encode($data->getAttributeLabel('Company')); ?>:</b>    
<?php echo CHtml::encode($data->Company); ?>    
<br />    
        
<b><?php echo CHtml::encode($data->getAttributeLabel('Address')); ?>:</b>    
<?php echo Yii::app()->format->formatUrl($data->Address); ?>    
<br />    
        
<b><?php echo CHtml::encode($data->getAttributeLabel('Country')); ?>:</b>    
<?php echo CHtml::encode($data->Country); ?>    
<br />    
        
<b><?php echo CHtml::encode($data->getAttributeLabel('Email')); ?>:</b>    
<?php echo Yii::app()->format->formatEmail($data->Email); ?>    
<br />    
        
</center>然后修改SiteController的indexAction方法:

public function actionIndex()    
{    
        
    $dataProvider=new CActiveDataProvider('Customer', array(    
        'pagination'=>array(    
            'pageSize'=>10,    
            'pageVar'=>'page',    
        ),    
                'sort'=>array(    
                    'defaultOrder'=>'Lastname',    
                    ),    
                ));    
    $this->render('index',array(    
        'dataProvider'=>$dataProvider,    
        ));    
}

显示结果如下:

 

咨询热线:020-85648757 85648755 85648616 0755-27912581 客服:020-85648756 0755-27912581 业务传真:020-32579052
广州市网景网络科技有限公司 Copyright◎2003-2008 Veelink.com. All Rights Reserved.
广州商务地址:广东省广州市黄埔大道中203号(海景园区)海景花园C栋501室
= 深圳商务地址:深圳市宝源路华丰宝源大厦606
研发中心:广东广州市天河软件园海景园区 粤ICP备05103322号 工商注册