yii2 GridView中如何给每个TH和TD添加css class
How to add css class to each TH and TD in yii2 GridView
我正在尝试使用 GridView:widget() 中的列索引在 yii2 gridview 中显示数据。我在数据库中有大量字段(大约 40 个),需要显示所有字段,并且想为每个 TH 和 TD 添加相同的 css class 名称作为字段名称。
我知道我可以使用下面的代码来实现,但我必须写很多代码:
'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 中将自定义列 class 设置为默认值:
'dataColumnClass' => 'name\space\for\MyDataColumn',
创建扩展 yii\grid\DataColumn
.
的 MyDataColumn
class
内加:
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,
]);
}
}
我正在尝试使用 GridView:widget() 中的列索引在 yii2 gridview 中显示数据。我在数据库中有大量字段(大约 40 个),需要显示所有字段,并且想为每个 TH 和 TD 添加相同的 css class 名称作为字段名称。 我知道我可以使用下面的代码来实现,但我必须写很多代码:
'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 中将自定义列 class 设置为默认值:
'dataColumnClass' => 'name\space\for\MyDataColumn',
创建扩展 yii\grid\DataColumn
.
MyDataColumn
class
内加:
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,
]);
}
}