首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Yii2 GridView ActionColumn中访问行号?

如何在Yii2 GridView ActionColumn中访问行号?
EN

Stack Overflow用户
提问于 2021-01-27 22:09:05
回答 2查看 261关注 0票数 0

我在Yii2中的网格视图的Yii2中有一些自定义按钮。我需要将行号添加到按钮数据中。这是我拥有的..。

代码语言:javascript
复制
GridView::widget([
    'dataProvider' => $dataProvider,
    'columns' => [
        ['class' => 'yii\grid\SerialColumn',
            'contentOptions' => ['style' => 'font-size:20px']],
        ['header' => 'Blue or Red',
            'class' => 'yii\grid\ActionColumn',
            'template' => '{blue} {red}',
            'buttons' => [
                'blue' => function ($url, $model, $key) {
                    return bootstrap\Button::widget([
                        'label' => 'blue',
                        'id' => 'blue' . **ROW-NUMBER**,
                        'options' => [
                            'class' => 'btn-lg btn-dark votebtn',
                            'data-vote' => 1,
                            'data-row' => **ROW-NUMBER**
                        ]
                    ]);
                },
                'red' => function($url, $model, $key) {
                    return bootstrap\Button::widget([
                        'label' => 'red',
                        'id' => 'red' . **ROW-NUMBER**,
                        'options' => [
                            'class' => 'btn-lg btn-dark votebtn',
                            'data-vote' => -1,
                            'data-row' => **ROW-NUMBER**
                        ]
                    ]);
                }
            ],        
        ],
    ],
]);

我需要用什么代替行号来获得每个按钮所在的行?

EN

回答 2

Stack Overflow用户

发布于 2021-01-28 07:39:24

假设“行号”是一个有效的模型值,例如id。

如果有模式对象,则使用$model->id。

代码语言:javascript
复制
 'buttons' => [
            'blue' => function ($url, $model, $key) {
                return bootstrap\Button::widget([
                    'label' => 'blue',
                    'id' => 'blue' . **ROW-NUMBER**,
                    'options' => [
                        'class' => 'btn-lg btn-dark votebtn',
                        'data-vote' => 1,
                        'data-row' => $model->id
                    ]
                ]);
            },
            'red' => function($url, $model, $key) {
                return bootstrap\Button::widget([
                    'label' => 'red',
                    'id' => 'red' . **ROW-NUMBER**,
                    'options' => [
                        'class' => 'btn-lg btn-dark votebtn',
                        'data-vote' => -1,
                        'data-row' => $model->id
                    ]
                ]);
            }
        ],        

或者使用$model‘if’如果您有一个数组

票数 0
EN

Stack Overflow用户

发布于 2021-01-29 07:49:02

可以获得行号,如下所示:

代码语言:javascript
复制
'red' => function($url, $model, $key) use ($dataProvider) {
     $pagination = $dataProvider->getPagination();
     if ($pagination !== false) {
         $rowNumber = $pagination->getOffset() + $key + 1;
     } else {
         $rowNumber = $key + 1;
     }
     return bootstrap\Button::widget([
          'label' => 'red',
          'id' => 'red' . $rowNumber,
          'options' => [
          'class' => 'btn-lg btn-dark votebtn',
                'data-vote' => -1,
                'data-row' => $model->id
           ]
      ]);
}

yii2序列号

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65928145

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档