首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

Yii Framework CGridView 元件完整教學:資料表格、分頁、排序與欄位客製化

     編輯:PHP 綜合知識

CGridView 是 Yii Zii 元件庫中最強大的資料表格顯示元件,內建分頁、排序、AJAX 更新與豐富欄位類型支援。

基本用法

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

預設顯示模型所有屬性,欄位順序依模型定義。

欄位客製化:CGridView::columns 設定

每欄對應一個 CGridColumn 子類別:

欄位類別用途關鍵屬性
CDataColumn顯示模型屬性或運算式name (屬性名)、value (PHP 運算式)
CButtonColumn操作按鈕群(檢視/編輯/刪除)template、buttons、viewButtonUrl 等
CCheckBoxColumn核取方塊(批次操作)selectableRows (0=多選/1=單選/2=唯讀)
CLinkColumn超連結欄位label、url、imageUrl

完整欄位配置範例

'columns' => array(
    'id',
    array(
        'name' => 'username',
        'value' => 'CHtml::link($data->username, array("user/view", "id"=>$data->id))',
        'type' => 'raw', // 輸出 HTML 不轉義
    ),
    'email',
    array(
        'class' => 'CButtonColumn',
        'template' => '{view}{update}',
        'buttons' => array(
            'view' => array(
                'label' => '檢視',
                'url' => 'Yii::app()->createUrl("user/view", array("id"=>$data->id))',
            ),
        ),
    ),
),

進階技巧

  • CSS 樣式:'htmlOptions'=>array('class'=>'text-center')、'headerHtmlOptions'、'footerHtmlOptions'
  • 條件式顯示:'visible' => '$data->status==1'
  • 自訂排序:模型 search() 中 $sort->defaultOrder、$sort->attributes
  • 關聯資料顯示:'name'=>'author.name' 需在 dataProvider 的 criteria->with 載入關聯

效能優化建議

  • 大資料量關閉 ajaxUpdate 或使用 enablePagination=false 搭配虛擬滾動
  • dataProvider 使用 CActiveDataProvider 並設定 criteria->select 僅查所需欄位
  • 避免在 value 運算式中執行重查詢,改用關聯預載
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved