如何在 yii2 gridview 中创建行跨度?

问题描述 投票:0回答:1

我的gridview想要将rowsapn实现到两列,官方MOU站点和官方MOU站点> 2700。我想要一些逻辑来为这两列带来价值。

在 Yii2 中实现此功能的最佳方法是什么?

我尝试这个代码

echo GridView::widget([
    'dataProvider' => $dataProvider,
    'columns' => [
        'id',
        [
            'attribute' => 'category',
            'value' => function ($model) use ($dataProvider) {
                $count = $dataProvider->query->where(['category' => $model->category])->count();
                return $model->category . ' (Count: ' . $count . ')';
            },
        ],
        'name',
        'price',
    ],
]);

但这不是我真正想要的。

谢谢!

html css yii2 yii2-advanced-app
1个回答
0
投票

如果你想实现

Official MOU sites
Official MOU sites > 2700
两列的rowspan,你可以通过在Yii2中自定义GridView来实现。您需要修改列数组并使用 contentOptions 属性根据您的逻辑设置行跨度。

use yii\grid\GridView;

echo GridView::widget([
    'dataProvider' => $dataProvider,
    'columns' => [
        [
            'attribute' => 'id',
            'contentOptions' => ['class' => 'text-center'], // Adjust styling as needed
        ],
        [
            'attribute' => 'category',
            'value' => function ($model) use ($dataProvider) {
                return $model->category;
            },
            'contentOptions' => function ($model, $key, $index, $column) use ($dataProvider) {
                $count = $dataProvider->query->where(['category' => $model->category])->count();
                return ['rowspan' => $count + 1]; // Add 1 for the main row
            },
        ],
        [
            'attribute' => 'name',
            'contentOptions' => ['class' => 'text-center'], // Adjust styling as needed
        ],
        [
            'attribute' => 'price',
            'contentOptions' => ['class' => 'text-center'], // Adjust styling as needed
        ],
    ],
]);
© www.soinside.com 2019 - 2024. All rights reserved.