0

モデル化する必要があります:User、UserFlag In 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を表示し、ステータスが非アクティブの場合は2.pngを表示します。

4

1 に答える 1

1

残念ながら、$datavarにはimageUrlからアクセスできません。Stuのリンクが提案しているように、CButtonColumnから拡張することをお勧めします。

それを望まない場合は、2つのボタン列を作成し、ステータスに応じてそれらを表示することができます。これは次のようになりますが、アクティブな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}を追加する必要があります。

コードを繰り返すので理想的ではありませんが、少なくともクラスを拡張しなくても実行できます。

于 2013-01-15T16:36:40.550 に答える