web-dev-qa-db-ja.com

Yii2 Gridviewで1行の背景を変更する方法

私はYii 2で作業しており、情報を表示するグリッドビューです。

現在、私の問題は、ユーザーが2つの同一のシリアル番号やMACアドレスをスキャンするたびに、行を強調表示(色を赤に変更)し、エラー記号などを表示することです。

スクリーンショット: Current Grid View

私はそれがどのように見えるようにしたい:

Desired Grid Highlighting

私は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をいただければ幸いです!

[〜#〜] edit [〜#〜]

私は1行のみの色を変更する方法を知りたいだけです、私は自分でチェックをすることができます! :)

19
Paramone

とった!

Yii2:GridViewの行にクラスを追加する(YouTube)

Yii2 Gridview行ごとのcss式

RowOptionsをgridviewに追加するだけです。

<?= GridView::widget([
    'id' => 'scan-batch-grid',
    'dataProvider' => $dataProvider,
    'rowOptions'=>function($model){
            if($a == $b){
                return ['class' => 'danger'];
            }
    },
26
Paramone

回答Paramoneを投稿していただきありがとうございます。うまくいきました。

これが私の実装です。

    <?= GridView::widget([
    'dataProvider' => $dataProvider,
    'rowOptions' => function ($model) {
        if ($model->name == 'test') {
            return ['class' => 'info'];
        }
    },
6
DrBorrow