如何在 yii2 GridView 中为每个 TH 和 TD 添加 css 类

问题描述 投票:0回答:1

我正在尝试使用 GridView:widget() 中的列索引在 yii2 gridview 中显示数据。我在数据库中有大量字段(大约 40 个),需要显示所有字段,并希望为每个 TH 和 TD 添加相同的 css 类名作为字段名。 我知道我可以使用下面的代码来实现这一点,但我必须编写很多代码:

'columns' => [
        [
            'attribute' => 'ID',
            'contentOptions' => ['class' => 'ID'],
            'headerOptions' => ['class' => 'ID']
        ],
        [
            'attribute' => 'Insured',
            'contentOptions' => ['class' => 'Insured'],
            'headerOptions' => ['class' => 'Insured']
        ],

        .
        .

        [
            'attribute' => 'Phone',
            'contentOptions' => ['class' => 'Phone'],
            'headerOptions' => ['class' => 'Phone']
        ]
],  

还有其他有效的方法可以使用回调函数或其他函数吗?

php gridview yii2 widget
1个回答
3
投票

在 GridView 中将自定义列类设置为默认值:

'dataColumnClass' => 'name\space\for\MyDataColumn',

创建扩展

MyDataColumn
yii\grid\DataColumn
类。

里面添加:

public function init()
{
    parent::init();
    if (!empty($this->attribute) {
        $this->headerOptions = array_merge($this->headerOptions, [
            'class' => $this->attribute,
        ]);
        $this->contentOptions = array_merge($this->contentOptions, [
            'class' => $this->attribute,
        ]);
    }
}
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.