【问题标题】:Add Custom Button in Kartik Yii2 Kartik DetailView在 Kartik Yii2 Kartik DetailView 中添加自定义按钮
【发布时间】:2018-04-26 18:47:08
【问题描述】:

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

我在 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,有一种方法可以自定义。 但是没有例子。并且文档没有解释如何做到这一点。

有人可以帮忙吗?

【问题讨论】:

    标签: yii2 detailview kartik-v


    【解决方案1】:

    经过研究和尝试,我是这样做的,您必须启用编辑模式(显示按钮),并修改默认模板({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',    
                       ],
             ])
    ?>
    

    【讨论】:

    • 我试过你的,但它没有渲染 $button1 和 $button2,它什么也不渲染
    【解决方案2】:

    试试这样:

    '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}",
    

    【讨论】:

      猜你喜欢
      • 2017-05-17
      • 1970-01-01
      • 1970-01-01
      • 2017-07-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-16
      • 1970-01-01
      相关资源
      最近更新 更多