CGridView 以表格的形式顯示數據,CGridView 也支持分頁和排序,CGridView最基本的用法和ListView類型,也是通過設置 data provider,通常是CActiveDataProvider。
修改上個例子Yii Framework 開發教程(31) Zii組件-DetailView 示例,把ListView該為GridView:
- <?php $this->widget('zii.widgets.grid.CGridView', array(
- 'dataProvider'=>$dataProvider,
- 'ajaxUpdate'=>false,
- 'template'=>'{pager}{summary}{items}{pager}',
- )); ?>
顯示結果如下:可以看到GridView預設顯示了所有的欄位,並使用預設的格式顯示欄位,如果需要控制欄位顯示和格式,可以通過配置 CGridView::columns屬性來實現。GridView的每列為一個CGridColumn對象:
重新定义GridView的columns属性如下:
- <?php $this->widget('zii.widgets.grid.CGridView', array(
- 'id'=>'person-grid',
- 'dataProvider'=>$dataProvider,
- 'htmlOptions'=>array('style'=>'width:740px'),
- 'pager'=>array(
- 'maxButtonCount'=>'7',
- ),
- 'columns'=>array(
- array(
- 'header'=>'Name',
- 'type'=>'raw',
- 'value'=>'CHtml::link($data->FirstName .
- " " . $data->LastName,
- $this->grid->controller->createUrl
- ("view",array("CustomerId"=>$data->CustomerId)))',
- ),
- 'Company',
- array(
- 'class'=>'CLinkColumn',
- 'header'=>'Email',
- 'imageUrl'=>'images/email.png',
- 'labelExpression'=>'$data->Email',
- 'urlExpression'=>'"mailto://".$data->Email',
- 'htmlOptions'=>array('style'=>'text-align:center'),
- ),
- array(
- 'class'=>'CButtonColumn',
- 'deleteConfirmation'=>'Are you sure to delete this item?',
- ),
- ),
- ));
- ?>
顯示如下:
點擊姓名可以顯示DetailView。 ButtonColumn 的update,search,delete沒有添加對應的view ,就留給你自己加上了。