程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> PHP開發框架Yii Framework教程(30) Zii組件-ListView示例

PHP開發框架Yii Framework教程(30) Zii組件-ListView示例

編輯: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,     
        ));     
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved