Yii CGridView: selectionChanged не определен

Я застрял с проблемой на моем CGridView. Я хочу сделать столбцы кликабельными, чтобы они перенаправляли на новую страницу.

Моя проблема в том, что я пытаюсь использовать selectionChange, а Yii выдает исключение, говорящее Property "CDataColumn.selectionChanged" is not defined.

Вот мой код:

<?php   $this->widget('zii.widgets.grid.CGridView', array(
        'dataProvider'=>$dataProvider,
        'columns'=>array(
            array('header'=>'First Name'
                , 'type'=>'raw'
                , 'htmlOptions'=>array('style'=>'cursor: pointer;')
                , 'name'=>'first_name'
                , 'sortable'=>true
                , 'selectionChanged'=>'function(id){window.location=\'CHtml::link($data["first_name"],Yii::app()->createUrl("/athlete/view", array("id"=>$data["id"])))\'}'),
            array('header'=>'Last Name'
                , 'htmlOptions'=>array('style'=>'cursor: pointer;')
                , 'type'=>'raw'
                , 'name'=>'last_name'
                , 'selectionChanged'=>'function(id){window.location=\'CHtml::link($data["first_name"],Yii::app()->createUrl("/athlete/view", array("id"=>$data["id"])))\'}'),
            array('header'=>'Date of Birth'
                , 'value'=>'Controller::date($data["dob"])'
                , 'htmlOptions'=>array('width'=>'90px', 'style'=>'cursor: pointer;')
                , 'name'=>'dob'
                , 'selectionChanged'=>'function(id){window.location=\'CHtml::link($data["first_name"],Yii::app()->createUrl("/athlete/view", array("id"=>$data["id"])))\'}'),
            array(
                'header'=>'Edit'
                ,'class'=>'CButtonColumn'
                ,'template'=>'{update}'
                , 'updateButtonUrl'=>'Yii::app()->createUrl("/athlete/update", array("id"=>$data["id"]))'
            ),
        ),
        'pagerCssClass'=>'clist-pager',
        'pager'=>array('header'=>''),
    ));
?>

Итак, не могли бы вы помочь мне понять, почему возникает это исключение, и исправить его?


person MagicMicky    schedule 23.05.2013    source источник


Ответы (1)


Вы не можете определить selectionChanged для самих столбцов, это свойство существует только в представлении сетки:

$this->widget('zii.widgets.grid.CGridView', array(
    'dataProvider'=>$dataProvider,
    'selectionChanged'=>'function(id) { /* ... */ }',
    // columns, etc
);
person Jon    schedule 23.05.2013
comment
Хорошо, это было так, спасибо. Довольно нубская ошибка, но я только начинаю с yii! :-) - person MagicMicky; 23.05.2013