Добавляем свою кнопку в колонку CButtonColumn в виджет CGridView

Допустим, на нашем сайте на Yii framework в разделе управления пользователями, в панели управления сайтом, в гриде CGridView нам требуется добавить кнопку по которой мы перейдем к редактированию профиля пользователя.

Для этого нам нужно в шаблон вывода кнопок добавить ее название, а также параметры: label, url, imageUrl, options. Думаю тут объяснений не нужно, названия говорят сами за себя. Наш код в результате будет выглядеть примерно следующим образом:

$this->widget('zii.widgets.grid.CGridView', array(
    'id'=>'user-grid',
    'dataProvider'=>$model->search(),
    'filter'=>$model,
        'columns'=>array(
                'name',
                'login',
                'email',
                'date_create',
                array(
                        'class'=>'CButtonColumn',
                        'template'=>'{editProfile} {update} {delete}',
                        'buttons' => array (
                                'editProfile' => array (
                                'label' => 'Редактировать профиль',
                                'imageUrl' => Yii::app()->request->baseUrl . '/images/editProfile.png',
                                'url' => 'Yii::app()->createUrl("admin/user/profile", array ( "id" => $data->id ) )',
)))));

При клике на кнопку Редактировать профиль - переходим к редактированию профиля выбранного пользователя.
В контроллере admin/UserController.php нам остается написать соответствующий action. Но это уже отдельная история.


Tags: Yii CGridView
2014-02-21

И еще полезные примеры JavaScript

Удалить елементы на странице по имени класса

Почему рассылки попадают в спам

up