使用user表中的user_status字段更改imageUrl

时间:2013-01-15 15:49:55

标签: yii cgridview cbuttoncolumn

我必须建模:User,UserFlag 在User / index中,在CGridView中添加了一列:

array(
    'class' => 'CButtonColumn',
    'htmlOptions' => array("style" => 'width: 45px;'),
    'template' => '{enable}',
    'header' => 'management',
    'buttons' => array(
            'enable' => array(
                'name' => 'enable',
                'imageUrl' => Yii::app()->baseUrl."/images/ico/group.png",
                'url' => '"#".$data->username',
                'click' => 'js:function() {
                    if(confirm("Are you sure?")){
                                    changeUserStatus($(this).attr("href").replace("#", ""));
                                }
                            }',
                ),
    ),

我将从UserFlag模型中读取用户状态,如果状态为活动,则显示1.png,如果状态为deactive,则显示2.png。

1 个答案:

答案 0 :(得分:1)

是的,遗憾的是,无法从imageUrl访问$ data var。我建议像CBu的链接那样从CButtonColumn扩展。

如果您不想这样做,您可以创建两个按钮列并根据状态显示它们。它会是这样的,但如果您的活动user_status值不是1或者您希望图像反转,则可能需要调整它:

'enable' => array(
                'name' => 'enable',
                'visible'=>'$data->user_status == 1'
                'imageUrl' => Yii::app()->baseUrl."/images/ico/1.png",
                'url' => '"#".$data->username',
                'click' => 'js:function() {
                    if(confirm("Are you sure?")){
                                    changeUserStatus($(this).attr("href").replace("#", ""));
                                }
                            }',
                ),

'disable' => array(
                'name' => 'disable',
                'visible'=>'$data->user_status == 0'
                'imageUrl' => Yii::app()->baseUrl."/images/ico/0.png",
                'url' => '"#".$data->username',
                'click' => 'js:function() {
                    if(confirm("Are you sure?")){
                                    changeUserStatus($(this).attr("href").replace("#", ""));
                                }
                            }',
                ),

您还需要在您的CButtonColumn模板中添加{disable}。

这是不理想的,因为你重复代码,但至少你可以做到这一点,而不必扩展任何类。