我想将动作列按钮设置为网格视图中的下拉按钮,这是我的代码
// ... GridView configuration ...
['class' => 'yii\grid\ActionColumn',
'template' => '{sell} {delete}',
'buttons' => [
'sell' => function ($url, $model) {
return Html::a('<button type="button" class="btn btn-success"><i class="glyphicon glyphicon-shopping-cart"></i></button>', $url, [
'title' => Yii::t('app', 'Sell Tickets'),
'data-toggle' => "modal",
'data-target' => "#myModal",
'data-method' => 'post',
]);
},
'delete' => function ($url, $model) {
return Html::a('<button type="button" class="btn btn-danger"><i class="glyphicon glyphicon-remove-sign"></i></button>', $url, [
'title' => Yii::t('app', 'Delete'),
'data-toggle' => "modal",
'data-target' => "#myModal",
'data-method' => 'post',
]);
},
],
'urlCreator' => function ($action, $model, $key, $index) {
if ($action == 'sell') {
$url = Url::toRoute(['trip/sell', 'id' => $model->tripScheduleId]);
return $url;
} else {
$url = Url::toRoute(['trip/delete', 'id' => $model->tripScheduleId]);
return $url;
}
},
],
这是视图
我追踪了许多此类或任何来源的信息,但对我无济于事。
答案 0 :(得分:1)
buttons
是一组渲染函数,只需在此处渲染下拉菜单并删除urlCreator
部分即可。
urlCreator
用于为模板中的默认按钮构建URL,因此通过使用正确的URL渲染下拉列表,您将不需要它。
'template' => '{actions}',
'buttons' => [
'actions' => function ($url, $model) {
//return you dropdown here
}
],
仅需关心$url
参数并在函数内创建URL。