Gunnit
Gunnit

Reputation: 1074

YII how to set a custom delete button for ButtonColumn?

I would like to change the custom implementation of the delete button in gridview for buttoncolumn. I want to add a custom icon and a custom css class to the delete button. When i add the option parameter it dose not work any more. So i decided to create a custom link to the delete function but it gives me a 400 error when i click on it. Any ideas ? Below code

            array(
            'header' => __('Manage'),
            'class' => 'booster.widgets.TbButtonColumn',
//            'htmlOptions'=>array('style'=>'white-space: nowrap;'),
            'template' => '{approve} {details} {erase}',
            'htmlOptions' => array('style' => 'white-space: nowrap;'),
            'buttons' => array(
                'approve' => array(
                    'label'=>__('Approve'),
                    'icon'=>'pencil',
//                    'options' => array('target' => '_blank'),
                    'url' => 'Yii::app()->createUrl(\'tours/updateadmin/\'. $data->tour_id)',
                     'options' => array(
                                'class' => 'btn btn-small btn-info',
                            ),
                ),
                'details' => array(
                    'label'=>__('View Details'),
                    'icon'=>'check',
                    'url' => 'Yii::app()->createUrl(\'tours/view/\'. $data->tour_id)',
                     'options' => array(
                                'class' => 'btn btn-small btn-info',)
//                    'options' => array('target' => '_blank'),
//                    'url' => 'Yii::app()->createUrl(\'tours/updateadmin/\'. $data->tour_id)',
                ),
                'erase' => array(
                    'label'=>__('Delete'),
                    'icon'=>'trash',
                    'url'=>'CController::createUrl("/tours/delete", array("id"=>$data->tour_id))',
                     'options' => array(
                                'class' => 'btn btn-small btn-info',)
                    ),
                ),
        ),

Upvotes: 0

Views: 624

Answers (1)

hamed
hamed

Reputation: 8043

What's your 400 error details? I think the problem is your link. Try to remove first / from your link:

 'erase' => array(
                'label'=>__('Delete'),
                'url'=>'Yii::app()->createUrl("tours/delete", array("id"=>$data->tour_id))',
                 'options' => array(
                            'class' => 'btn btn-small btn-info'
                    )
                ),
            ),

If the problem did not resolve, you should edit your question and add error details for better helping.

Also, note that CButtonColumn#buttons does not have icon field. Here is a link that shows possible options for CButtonColumn#buttons . So you should remove icon field from all of your buttons.

Upvotes: 1

Related Questions