2013-04-29 74 views
0

使用PHP框架Yii。如你所知,默認的CGridView表CSS類是items。那麼我想改變這個值。我知道這是可能的一個特定的部件。像這樣:Yii爲自定義的CGridView設置默認選項

<?php $this->widget('zii.widgets.grid.CGridView', array(
    'id'=>'user-grid', 
    'dataProvider'=>$model->search(), 
    'columns'=>array(), 
    'itemsCssClass'=>'gridtablecss', 
)); ?> 

但是如何爲整個Yii應用程序做到這一點?我的意思是做一些默認的另一個類不items

+0

爲什麼不製作擴展CGridView的類併爲您的項目設置了一些默認屬性?我不確定你正在尋找的配置選項是否存在。 – Kevin 2013-04-29 21:27:49

回答

0

創建您的擴展文件夾中的另一個php文件,並將其命名爲MyGridView.php:

<?php 
Yii::import('zii.widgets.grid.CGridView'); 

class MyGridView extends CGridView { 

    public function init() { 

     // Set default CSS class 
     $this->itemsCssClass = 'gridtablecss'; 

     // Other modifications, i.e.: Increase page size 
     if ($this->dataProvider !== null) 
      $this->dataProvider->pagination->pageSize = 999999; 

     parent::init(); 
    } 
} 

現在不是使用CGridView,你用你的新CGridView是這樣的:

<?php $this->widget('MyGridView', array(

確保您main.php配置文件是導入擴展:

'import' => array(
    'application.extensions.*', 
    ... 
), 

你也可以用同樣的方法擴展CListView(和其他類似的核心Yii類)。

3

如果您只想爲每個小部件設置一些靜態參數,則不需要擴展該類。您也可以使用Yii的widgetFactory組件。您可以在您的main.php配置文件中進行配置。

'components' => array(
    // ... 

    // Default properties for some widgets 
    'widgetFactory' => array(
     'widgets' => array(
      'CGridView' => array(
       'itemsCssClass' => 'gridtablecss' 
      ), 
     ), 
    ), 
),