web-dev-qa-db-fra.com

Yii2 GridView Personnaliser la ligne d'en-tête

Dans mon code de vue, j'ai ceci:

<?= GridView::widget([
        'dataProvider' => $dataProvider,
        'columns' => [
            ['class' => 'yii\grid\SerialColumn'],
             ['label' => 'Training Score',
               'attribute' => 'scoreTraining',
               'format' => ['decimal',2],
             ],
             ['label' => 'Exam Score',
               'attribute' => 'scoreExam',
               'format' => ['decimal',2],
             ],
        ],
    ]);

Normalement, le nom de l'en-tête sera "Score de formation" et "Score d'examen"

Est-il possible dans yii2 gridview de personnaliser la ligne d'en-tête? de sorte que ma ligne d'en-tête ressemble à 2 lignes ..

<table border=1>
  <tr><th>Training <br> Score</th><th>Exam <br> Score</th></tr>
</table>
17
Wonka

Pour ce faire, utilisez la propriété header au lieu de label:

<?= GridView::widget([
    'dataProvider' => $dataProvider,
    'columns' => [
        ['class' => 'yii\grid\SerialColumn'],
        [
            'header' => 'Training <br> Score',
            'attribute' => 'scoreTraining',
            'format' => ['decimal', 2],
        ],
        [
            'header' => 'Exam <br> Score',
            'attribute' => 'scoreExam',
            'format' => ['decimal', 2],
        ],
    ],
]);

De cette façon, le contenu HTML ne sera pas encodé.

Documents officiels:

22
arogachev

Utilisez l'attribut 'label' pour définir l'en-tête:

http://www.yiiframework.com/doc-2.0/yii-grid-datacolumn.html# $ label-detail

De cette façon, la fonctionnalité de tri fonctionnera toujours.

Utilisez 'encodeLabel' => false pour autoriser des entités HTML comme
travailler:

http://www.yiiframework.com/doc-2.0/yii-grid-datacolumn.html# $ encodeLabel-detail

Exemple:

 [
              'attribute' => 'firstname',
              'label' => 'First <br /> Name',
              'encodeLabel' => false,
 ],
11
Herbert Maschke