web-dev-qa-db-ja.com

Yii2 Gridview行ごとのCSS式

行ごとのCSS式を行う正しい方法は何ですか? Yii 1はrowCssClassでした。Yii2でこれを実現する方法を理解できませんでした。これを試してみましたが、正しい行にいるかどうか確信がありませんでした。

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

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

ただし、dataProviderを処理するときに、関数のパラメーターをどこから取得するかわかりません。

12
Jonnny

$ dataの代わりに$ modelを使用してください。

私の変種では:

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

あなたの場合:

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

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

これも試すことができます

行にクラス名を追加する

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

それからCSSを介してそれを操作します

<?php

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

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