PHP開發架構Yii Framework教程(30) Zii組件-ListView樣本

來源:互聯網
上載者:User

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.