0

使用 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

4

2 回答 2

3

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

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

    // Default properties for some widgets
    'widgetFactory' => array(
        'widgets' => array(
            'CGridView' => array(
                'itemsCssClass' => 'gridtablecss'
            ),
        ),
    ),
),
于 2013-04-30T06:51:31.543 回答
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 类)。

于 2013-04-30T01:51:02.447 回答