我正在使用Yii 2,它是gridview来显示信息。
现在,我的问题是,每当用户扫描两个相同的序列号和/或mac地址时,它应突出显示该行(将颜色更改为红色),并显示一些错误符号或其他。
截图:
我希望它看起来像:
我是Yii2的新手,并且不知道他们是如何使用gridview做的。我一直在研究这个具体的问题,但找不到任何东西。
Gridview代码(没什么特别的)
<?= GridView::widget([
'id' => 'scan-batch-grid',
'dataProvider' => $dataProvider,
'columns' => [
['class' => 'yii\grid\SerialColumn'],
['class' => 'yii\grid\CheckboxColumn'],
[
'attribute' => 'product_ID',
'value' => 'product.name'
],
'SN',
'MAC',
[
'class' => 'yii\grid\ActionColumn',
'urlCreator' => function ($action, $model, $key, $index) {
return Url::to(['scan-batch/view', 'id' => $key, 'scan' => $model->scan_batch_ID]);
},
'buttons' => [
'update' => function ($url, $model, $key) {
return '';
},
'delete' => function ($url, $model, $key) {
return '';
},
],
],
],
]); ?>
有人能帮帮我吗?我们将非常感谢链接或甚至是相关的Q / A!
修改
我只想知道如何改变一行的颜色,我可以自己做检查! :)
答案 0 :(得分:21)
知道了!
Yii2 : Adding Classes to Rows in the GridView (YouTube)
Yii2 Gridview row by row css expression
只需将rowOptions添加到gridview即可。
<?= GridView::widget([
'id' => 'scan-batch-grid',
'dataProvider' => $dataProvider,
'rowOptions'=>function($model){
if($a == $b){
return ['class' => 'danger'];
}
},
答案 1 :(得分:4)
感谢您发布您的答案Paramone。工作得很好。
这是我的实施:
<?= GridView::widget([
'dataProvider' => $dataProvider,
'rowOptions' => function ($model) {
if ($model->name == 'test') {
return ['class' => 'info'];
}
},