我必须建模: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。
答案 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}。
这是不理想的,因为你重复代码,但至少你可以做到这一点,而不必扩展任何类。