首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用附加图标扩展GridView ActionColumn

使用附加图标扩展GridView ActionColumn
EN

Stack Overflow用户
提问于 2015-01-19 19:28:22
回答 3查看 27.2K关注 0票数 24

我正在构建一个带有Yii2框架的webapp,它将为用户(登录)提供下载管理员预先上传的文件的能力。

我已经在调用sendFile()方法的特定控制器中创建了动作actionDownload

如何创建在GridView (文档列表)中单击时调用特定操作actionDownload的按钮?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-01-19 23:53:40

像这样扩展templatebuttons的声明:

[
    'class' => 'yii\grid\ActionColumn',
    'template' => '{download} {view} {update} {delete}',
    'buttons' => [
        'download' => function ($url) {
            return Html::a(
                '<span class="glyphicon glyphicon-arrow-down"></span>',
                $url, 
                [
                    'title' => 'Download',
                    'data-pjax' => '0',
                ]
            );
        },
    ],
],

带有url的下载图标将被添加到现有的图标集中。例如,您可以看到默认图标是如何在here中呈现的。

在一般情况下,你甚至不必手动构建链接,它将基于按钮名称和模型主键来构建,例如/download?id=1

如果您希望存在不同的url特殊属性,则将其命名为$urlCreator,但您也可以在按钮呈现闭包中正确地更改它,例如:

'download' => function ($url, $model) {
    return Html::a(
        '<span class="glyphicon glyphicon-arrow-download"></span>',
        ['another-controller/anotner-action', 'id' => $model->id], 
        [
            'title' => 'Download',
            'data-pjax' => '0',
        ]
    );
},
票数 43
EN

Stack Overflow用户

发布于 2016-08-29 02:01:26

如何在kartik-v yii2网格动作栏中添加另一个动作按钮?

请看下面的例子,我已经添加了复制按钮。

[
    'class' => 'kartik\grid\ActionColumn',
    'dropdown' => false,
    'vAlign'=>'middle',
    'template' => '{delete} {view} {update} {copy}',
    'urlCreator' => function($action, $model, $key, $index) { 
            return Url::to([$action,'id'=>$key]);
    },
    'buttons'=>[
        'copy' => function ($url, $model, $key) {
            return Html::a('<span class="glyphicon glyphicon-copy"></span>', ['copy', 'id'=>$model->id],['title'=>'Copy']);
        },
    ],      
    'viewOptions'=>['role'=>'modal-remote','title'=>'View','data-toggle'=>'tooltip'],
    'updateOptions'=>['role'=>'modal-remote','title'=>'Update', 'data-toggle'=>'tooltip'],
    'deleteOptions'=>['role'=>'modal-remote','title'=>'Delete', 
                      'data-confirm'=>false, 'data-method'=>false,// for overide yii data api
                      'data-request-method'=>'post',
                      'data-toggle'=>'tooltip',
                      'data-confirm-title'=>'Are you sure?',
                      'data-confirm-message'=>'Are you sure want to delete this item'], 
],
票数 2
EN

Stack Overflow用户

发布于 2017-02-07 02:54:00

模板属性很重要

echo GridView::widget([
    'dataProvider' => $dataProvider,
    'filterModel' => $searchModel,
    'columns' => [
        ['class' => 'yii\grid\SerialColumn'],
         'id', 
         'title',
        ['class' => 'yii\grid\ActionColumn',
            'buttons' => [
                'additional_icon' => function ($url, $model, $key) {
                    return Html::a ( '<span class="glyphicon glyphicon-th-list" aria-hidden="true"></span> ', ['controller/action', 'id' => $model->id] );
                },
            ],
            'template' => '{update} {view} {delete} {additional_icon}'


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

https://stackoverflow.com/questions/28023606

复制
相关文章

相似问题

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