0

我必须建模:用户,UserFlag 在用户/索引中添加了 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,如果状态是非活动的,我会显示 2.png。

4

1 回答 1

1

是的,不幸的是,无法从 imageUrl 访问 $data var。我建议像 Stu 的链接那样从 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("#", ""));
                                }
                            }',
                ),

您还需要将 {disable} 添加到您的 CButtonColumn 模板。

这并不理想,因为您正在重复代码,但至少您可以在不必扩展任何类的情况下做到这一点。

于 2013-01-15T16:36:40.550 回答