Yii2 Gridview逐行css表达式
执行逐行css表达式的正确方法是什么。在Yii中,1是rowCssClass。我不知道如何用Yii2实现这一点。我尝试过这个,但不确定我的思路是否正确:Yii2 Gridview逐行css表达式,gridview,yii2,Gridview,Yii2,执行逐行css表达式的正确方法是什么。在Yii中,1是rowCssClass。我不知道如何用Yii2实现这一点。我尝试过这个,但不确定我的思路是否正确: 'rowOptions' => function($model, $key, $index, $grid){ if($data->option->correct_answer == 1){ return ['class' => 'danger'];
'rowOptions' => function($model, $key, $index, $grid){
if($data->option->correct_answer == 1){
return ['class' => 'danger'];
}
},
但是,在处理数据提供程序时,我不确定从何处获取函数的参数。使用$model而不是$data 在我的变体中:
'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 [];
}
},
你也可以试试这个
为行添加类名
'rowOptions' => ['class'=>'rowData'],
然后通过css对其进行操作
<?php
$css = <<< CSS
//example
.rowData:hover{
}
CSS;
$this->registerCss($css);
?>
@user1852788我似乎得到了array_merge():参数#2不是数组。看起来你应该返回数组,所以我编辑了答案-在“if”语句中添加了else部分,返回值为空数组。同样,堆栈是thisforeach($this->columns as$I=>$column){if(is_string($column)){$column=$this->createDataColumn($column);}其他{$column=Yii::createObject(数组_merge(['class'=>$this->dataColumnClass?:DataColumn::className(),'grid'=>$this,],$column));}
我想我们讨论的是行…和行的类。上一条评论中的代码是关于列的。显示小部件调用的全部代码。User1852788它是关于行的。代码是堆栈错误。顺便说一句,这是一个框架如何阻止您的工作的极好示例。手动执行此操作需要5秒钟,试图找出如何执行此操作(以一种非常复杂的方式处理Yii)花了我2个小时。只是说:(@Sliq可能更清楚,我会同意。不过我记得我确实犯了最初的错误。不过,希望这个答案/问题能节省人们的时间。