Yii为自定义CGridView设置默认选项

时间:2013-04-29 18:01:20

标签: php css class yii cgridview

使用PHP框架Yii。如您所知,默认的CGridView表CSS类是items。好吧,我想改变这个值。我知道一个特定的小部件是可能的。像这样:

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

但是如何为整个Yii应用程序执行此操作?我的意思是默认另一个类而不是items

2 个答案:

答案 0 :(得分:3)

如果您只想为每个小部件设置一些静态参数,那么您不需要扩展该类。您也可以使用Yii的widgetFactory组件。您可以在main.php配置文件中配置它。

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

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

答案 1 :(得分:0)

在您的extensions文件夹中创建另一个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类)。

相关问题