0

我已经搜索并尝试了每个论坛和示例。

我在 Yii2 中使用 Kartik\DetailViwew,我无法在 button1 选项中放置一个自定义按钮。

我正在处理的代码:

    echo DetailView::widget([
        'model' => $model,
        'attributes' => $attributes,
        'mode'=>Yii::$app->request->get('edit')=='t' ? DetailView::MODE_EDIT : DetailView::MODE_VIEW,
            'panel'=>[
            'heading'=>$this->title,
            'type'=>DetailView::TYPE_INFO,
            ],
        'buttons1' => '{update}',
        'bordered' => 'true',
        'striped' => $striped,
        'condensed' => $condensed,
        'responsive' => $responsive,
        'hover' => $hover,
        'hAlign'=>$hAlign,
        'vAlign'=>$vAlign,
        'fadeDelay'=>$fadeDelay,
        'deleteOptions'=>[ // your ajax delete parameters
          'params' => ['id' => $model->p_id, 'custom_param' => true],
          'url'=>['delete', 'id' => $model->p_id],
        ]

    ]);

在里面

        'buttons1' => '{update}',

根据示例http://demos.krajee.com/detail-view,有一种方法可以自定义。但是没有例子。并且文档没有解释如何做到这一点。

任何人都可以帮忙吗?

4

2 回答 2

0

试试这样:

'buttons1' => Html::a('<i class="glyphicon glyphicon-trash"></i>', Url::to(['delete', 'id' => $model->id]), [
                   'title' => 'Eliminar',
                   'class' => 'pull-right detail-button',
                   'data' => [
                       'confirm' => '¿Realmente deseas eliminar este elemento?',            
                       'method' => 'post',
                   ]
           ]),

如果您有多个按钮,请尝试如下:

$button1 = Html::a('<i class="glyphicon glyphicon-trash"></i>', Url::to(['delete', 'id' => $model->id]), [
                   'title' => 'Eliminar',
                   'class' => 'pull-right detail-button',
                   'data' => [
                       'confirm' => '¿Realmente deseas eliminar este elemento?',            
                       'method' => 'post',
                   ]
           ]);
$button2 = Html::a('<i class="glyphicon glyphicon-pencil"></i>', Url::to(['actualizar', 'id' => $model->id]), [
                   'title' => 'Actualizar',
                   'class' => 'pull-right detail-button',
           ]);


    'buttons1' => "{$button1} {$button2}",
于 2020-06-12T17:28:36.360 回答
0

经过研究和尝试,我是这样做的,您必须启用编辑模式(显示按钮),并修改默认模板({buttons}{title}),因为如果模板存在,则替换此模板供应商 grideview 常量,只需注入您的代码以添加您想要的任何按钮。不是正确的解决方案,而是一种行之有效的解决方法

<?php
$button1 = Html::a('<i class="glyphicon glyphicon-trash"></i>', Url::to(['delete', 'id' => $model->id]), [
                   'title' => 'Eliminar',
                   'class' => 'pull-right detail-button',
                   'data' => [
                       'confirm' => '¿Realmente deseas eliminar este elemento?',            
                       'method' => 'post',
                   ]
           ]);
$button2 = Html::a('<i class="glyphicon glyphicon-pencil"></i>', Url::to(['actualizar', 'id' => $model->id]), [
                   'title' => 'Actualizar',
                   'class' => 'pull-right detail-button',
           ]);
?>
<?=
DetailView::widget([
                   'model' => $model,
                   'hover' => true,
                   'hideAlerts' => true,
                   'enableEditMode' => true,
                   'mode' => DetailView::MODE_VIEW,
                   'hAlign' => 'left',
                   'panel' => [
                       'heading' => '&nbsp',
                       'type' => DetailView::TYPE_DEFAULT,
                       'headingOptions' => [
                           'template' => "$button1 $button2 {title}"
                       ]
                   ],
                   'attributes' => [
                       'id',
                       'identificacion',
                       'nombre',    
                   ],
         ])
?>
于 2018-02-27T02:29:52.970 回答