【问题标题】:Yii set default options for a custom CGridViewYii 为自定义 CGridView 设置默认选项
【发布时间】:2013-04-23 12:14:50
【问题描述】:

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

【问题讨论】:

  • 为什么不创建一个扩展 CGridView 的类并为您的项目设置一些默认属性?我不确定您要查找的配置选项是否存在。

标签: php css class yii cgridview


【解决方案1】:

在您的扩展文件夹中创建另一个 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(

确保您的 ma​​in.php 配置文件正在导入扩展:

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

你也可以用同样的方式扩展 CListView(和其他类似的核心 Yii 类)。

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-22
      • 2011-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多