我正在尝试使用 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']
]
],
还有其他有效的方法可以使用回调函数或其他函数吗?
在 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,
]);
}
}