CGridView 是 Yii Zii 元件庫中最強大的資料表格顯示元件,內建分頁、排序、AJAX 更新與豐富欄位類型支援。
<?php $this->widget('zii.widgets.grid.CGridView', array(
'dataProvider' => $dataProvider,
'ajaxUpdate' => false,
'template' => '{pager}{summary}{items}{pager}',
)); ?>
預設顯示模型所有屬性,欄位順序依模型定義。
每欄對應一個 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))',
),
),
),
),
'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 運算式中執行重查詢,改用關聯預載