簡體   English   中英

如何觸發Yii2確認對話框

[英]How to trigger Yii2 Confirm Dialog

我在GridView上有一個自定義的ActionColumn ,並嘗試使用data-confirm來調用yii.confirm函數進行刪除操作,但對話框未顯示。

[
'format'=>'html',
'content'=>function($data) {
    $btn = ButtonDropdown::widget([
    'label' => 'Action',
    'options' => ['class'=>'btn btn-sm btn-primary dropdown-toggle', 'type'=>'button'],
    'dropdown' => [
        'options' => ['class'=>'dropdown-menu action', 'role'=>'menu'],
        'items' => [
            '<li><a href="'.Url::to(['details','id'=>$data->id]) .'"><i class="fa fa-pencil"></i> Details</a></li>',
            '<li><a href="'. Url::to(['edit', 'id' => $data->id]) .'"><i class="fa fa-eye"></i> Edit</a></li>',
            '<li role="presentation" class="divider"></li>',
            '<li><a data-method="post" data-confirm="Are you sure ?" href="'.Url::to(['delete', 'id' => $data->id]).'"><i class="fa fa-trash"></i> Delete</a></li>',                                                
        ],
    ],
]);
return $btn;
},
],

但是,當我嘗試添加鏈接時沒有下拉列表它的工作原理

[
'format'=>'html',//raw, html
    'content'=>function($data) {
        $btn ='<a data-method="post" data-confirm="Are you sure ?" href="'.Url::to(['delete', 'id' => $data->id]).'"><i class="fa   fa-trash"></i> Delete</a>';                                                
        return $btn;
    },
],

您可以添加這樣的鏈接

    <?php echo Html::a(Yii::t('backend', 'Delete'), ['delete', 'id' => $model->id], [
        'class' => 'btn btn-danger',
        'data' => [
            'confirm' => Yii::t('backend', 'Are you sure you want to delete this item?'),
            'method' => 'post',
        ],
    ]) ?>

我應該使用linkOtions表單項

     [
    'format'=>'html',
    'content'=>function($data) {
        $btn = ButtonDropdown::widget([
        'label' => 'Action',
        'options' => ['class'=>'btn btn-sm btn-primary dropdown-toggle', 'type'=>'button'],
        'dropdown' => [
            'options' => ['class'=>'dropdown-menu action', 'role'=>'menu'],
            'items' => [
              ['label' => 'Details', 'url' =>  ['details','id'=>$data->id], 
                      'linkOptions' => ['class'=>'fa fa-pencil'],],
              ['label' => 'Edit', 'url' =>  ['edit','id'=>$data->id], 
                      'linkOptions' => ['class'=>'fa fa-eye'],],
              ['label' => '<span role="presentation" class="divider"></span>'],
              ['label' => 'Delete', 'url' =>  ['delete','id'=>$data->id], 
                      'linkOptions' => ['class'=>'fa fa-trash' , 'data' => [
                    'confirm' => 'Are you sure ?',
                    'method' => 'post',
                ]],],                 
            ],
        ],
    ]);
    return $btn;
  },
  ],

那是因為你使用'format'=>'html'選項。 html格式化程序使用HTMLPurifier,它擺脫了數據屬性。

請改用'format'=>'raw'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM