0

我的 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'=>''),
    ));
?>

那么,你能帮我弄清楚为什么会抛出这个异常并修复它吗?

4

1 回答 1

3

您不能selectionChanged在列本身上定义,该属性仅存在于网格视图中:

$this->widget('zii.widgets.grid.CGridView', array(
    'dataProvider'=>$dataProvider,
    'selectionChanged'=>'function(id) { /* ... */ }',
    // columns, etc
);
于 2013-05-23T10:03:58.000 回答