鍍金池/ 教程/ PHP/ Yii Framework 開發(fā)教程(30) Zii 組件-ListView 示例
Yii Framework 開發(fā)教程(16) UI 組件 StarRating 示例
Yii Framework 開發(fā)教程(2) Yii Web 應用基礎
Yii Framework 開發(fā)教程(19) UI 組件 TreeView 示例
Yii Framework 開發(fā)教程(39) Zii 組件-Slider 示例
Yii Framework 開發(fā)教程(45) Zii 組件-Selectable 示例
Yii Framework 開發(fā)教程(44) Zii 組件-Resizable 示例
Yii Framework 開發(fā)教程(8) 使用 FormModel
Yii Framework 開發(fā)教程(42) Zii 組件-Draggable 示例
Yii Framework 開發(fā)教程(18) UI 組件 TextHighlighter 示例
Yii Framework 開發(fā)教程(32) Zii 組件-GridView 示例
Yii Framework 開發(fā)教程(30) Zii 組件-ListView 示例
Yii Framework 開發(fā)教程(9) UI 組件 Widget 概述
Yii Framework 開發(fā)教程(17) UI 組件 TabView 示例
Yii Framework 開發(fā)教程(24) 數據庫-DAO 示例
Yii Framework 開發(fā)教程(25) 數據庫-Query Builder 示例
Yii Framework 開發(fā)教程(21) UI 組件 自定義 Captcha 示例
Yii Framework 開發(fā)教程(38) Zii 組件-ProgressBar 示例
Yii Framework 開發(fā)教程(20) UI 組件 Captcha 示例
Yii Framework 開發(fā)教程(14) UI 組件 MaskedTextField 示例
Yii Framework 開發(fā)教程(22) UI 組件 Zii 組件簡介
Yii Framework 開發(fā)教程(31) Zii 組件-DetailView 示例
Yii Framework 開發(fā)教程(33) Zii 組件-Accordion 示例
Yii Framework 開發(fā)教程(36) Zii 組件-DatePicker 示例
Yii Framework 開發(fā)教程(6) CComponent 組件
Yii Framework 開發(fā)教程(37) Zii 組件-Dialog 示例
Yii Framework 開發(fā)教程(26) 數據庫-Active Record 示例
Yii Framework 開發(fā)教程(29) Zii組件-Menu 示例
Yii Framework 開發(fā)教程(46) Zii 組件-Sortable 示例
Yii Framework 開發(fā)教程(10) UI 組件 自定義組件
Yii Framework 開發(fā)教程(11) UI 組件 ActiveForm 示例
Yii Framework 開發(fā)教程(43) Zii 組件-Droppable 示例
Yii Framework 開發(fā)教程(27) 數據庫-關聯 Active Record 示例
Yii Framework 開發(fā)教程(47) 主題 Theme 示例
Yii Framework 開發(fā)教程(48) 多國語言示例
Yii Framework 開發(fā)教程(35) Zii 組件-Button 示例
Yii Framework 開發(fā)教程(3) 為應用添加日志
Yii Framework 開發(fā)教程(23) 數據庫-概述
Yii Framework 開發(fā)教程(12) UI 組件 ClipWidget 示例
Yii Framework 開發(fā)教程(41) Zii 組件-Tabs 示例
Yii Framework 開發(fā)教程(34) Zii 組件-AutoComplete 示例
Yii Framework 開發(fā)教程(40) Zii 組件-SliderInput 示例
Yii Framework 開發(fā)教程(5) URL 管理
Yii Framework 開發(fā)教程(4) Hangman 猜單詞游戲實例
Yii Framework 開發(fā)教程(15) UI 組件 MultiFileUpload 示例
Yii Framework 開發(fā)教程(7) 使用 CHtml 創(chuàng)建 Form
Yii Framework 開發(fā)教程(28) Data Provider 簡介
Yii Framework 開發(fā)教程(1) 第一個應用 Hello World
Yii Framework 開發(fā)教程(13) UI 組件 ContentDecorator 示例

Yii Framework 開發(fā)教程(30) Zii 組件-ListView 示例

CListView 可以用來顯示列表,CListView 支持使用自定義的 View 模板顯示列表的的記錄,因此可以非常靈活的顯示數據的表,這點有點像 Android 的 ListView:-)。

CListView 支持分頁和排序,分頁和排序支持使用 AJAX 實現從而可以提高頁面的響應性能。CListView 的使用需要通過 DataProvider,通常是使用 CActiveDataProvider。

本例修改 Yii Framework 開發(fā)教程(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 ,定義如下:


    <div 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 />

    </div>

然后修改 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,
            ));
    }

創(chuàng)建 CActiveDataProvider,并配置分頁和排序參數(pagination和sort),指明 ActiveDataProvider 取自 Customer ActiveRecord.

顯示結果如下:

http://wiki.jikexueyuan.com/project/yii-development-tutorial/images/30.1.jpg" alt="picture30.1" />

本例下載