web-dev-qa-db-fra.com

Yii2 Gridview expression css ligne par ligne

Quelle est la bonne façon de faire une expression CSS ligne par ligne? Dans Yii 1, il s'agissait de rowCssClass. Je n'arrivais pas à comprendre comment y parvenir avec Yii2. J'avais essayé cela, mais je n'étais pas sûr d'être sur la bonne voie:

        'rowOptions' => function($model, $key, $index, $grid){
        if($data->option->correct_answer == 1){

            return ['class' => 'danger'];
        }
    },

Cependant, je ne sais pas où obtenir les paramètres de la fonction lors de l'utilisation de dataProvider.

12
Jonnny

Utilisez $ model à la place de $ data.

Dans ma variante:

   'rowOptions' => function ($model, $index, $widget, $grid){
      return ['style'=>'color:'.$model->status->color.'; background-color:'.$model->status->background_color.';'];
    },

Dans ton cas:

   'rowOptions' => function ($model, $index, $widget, $grid){

      if($model->option->correct_answer == 1){
        return ['class' => 'danger'];
      }else{
        return [];
      }
    },
26
user1852788

Vous pouvez aussi essayer ceci 

ajouter un nom de classe pour votre ligne

'rowOptions' => ['class'=>'rowData'],

puis manipuler par css

<?php

$css = <<< CSS
//example
.rowData:hover{

}
CSS;
$this->registerCss($css);
?>
0
zxKazumaxz