1

我有一个测试表的gridview(admin.php)。在这里,我有两列 Contact Approval 和 Greetings Approval。我需要在管理页面中放置两个单选按钮(“联系”和“问候”)。当我单击“联系”单选按钮时,除问候批准之外的所有列都应显示在网格视图中,当我单击“问候”单选按钮时,除联系批准之外的所有列都应显示在网格视图中。update.php 也应该具有相同的效果。即,当我单击编辑选项时,update.php 应该具有基于单选按钮数据的字段。我该怎么做。 在此处输入图像描述

下面是radiobuttonlist的代码

    <div class="ContactGreetingGroup">        
<?php echo CHtml::radioButtonList('approval','',array('0'=>'Greetings Approval','1'=>'Contact Approval'),array(
    'labelOptions'=>array('style'=>'display:inline'),
    'onclick' => 'this.form.submit()', 
    'separator'=>''));     
?>
   </div>
4

1 回答 1

1

CDataColumn 具有“可见”属性。您只需要根据您的参数进行设置。

$approval = Yii::app()->request->getParam('approval');

'columns'=>[
    [
       'name'    => 'greetings',
       'visible' => ($approval)? false : true,
    ],
    [
       'name'    => 'contact',
       'visible' => ($approval)? true : false,
    ],
],

至于改变编辑按钮的行为,(因为你需要一个参数来说明你想要“联系模式”还是“问候模式”)你必须覆盖 view-buttons url 属性。

[
    'class'=>'CButtonColumn',
    'buttons'=>[
        'view' => [
            'url'=>'Yii::app()->createUrl(
                "Something/Update", 
                ["id"=>$data->id, "approval"->$approval ])',
        ],
    ],
],

之后,您需要在 update.php (_form.php) 中进行类似检查,以决定要显示的内容。

if( $approval ) :
....

添加:

如果您的单选按钮列表在表单标签内,您可以像这样提交它:

<form>  <!-- You need a form to use form.submit! -->
    <?php echo CHtml::radioButtonList('approval','',
        array('0'=>'Greetings Approval','1'=>'Contact Approval'),
        array('labelOptions'=>array('style'=>'display:inline'),
        'onclick' => 'this.form.submit()',   // Added this.
        'separator'=>'')
); ?>
</form>

我还编辑了上面的代码以匹配您的变量名称。我没有测试过它,但它应该给你一个我希望的想法。

于 2013-08-12T06:47:37.453 回答