我有一个测试表的gridview(admin.php)。在这里,我有两个colums Contact Approval和Greetings Approval。我需要在管理页面中放置两个单选按钮(“联系人”和“问候”)。当我单击“联系人”单选按钮时,除了问候批准之外的所有列都应显示在gridview中,当我单击“问候”单选按钮时,除联系人批准之外的所有列都应显示在gridview中。 update.php也应该具有相同的效果。当我点击编辑选项时,update.php应该有基于radiobutton数据的字段。我怎么能这样做。
以下是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>
答案 0 :(得分:1)
CDataColumn具有“可见”属性。您只需根据参数进行设置即可。
$approval = Yii::app()->request->getParam('approval');
'columns'=>[
[
'name' => 'greetings',
'visible' => ($approval)? false : true,
],
[
'name' => 'contact',
'visible' => ($approval)? true : false,
],
],
至于更改编辑按钮的行为,(因为您需要一个参数来表示您是否需要“contact-mode”或“greetings-mode”)您必须覆盖view-buttons url属性。
[
'class'=>'CButtonColumn',
'buttons'=>[
'view' => [
'url'=>'Yii::app()->createUrl(
"Something/Update",
["id"=>$data->id, "approval"->$approval ])',
],
],
],
之后,您需要在update.php(_form.php)中进行类似的检查以确定要显示的内容。
if( $approval ) :
....
如果您的radiobuttonlist在form-tags内,您可以这样提交:
<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>
我还编辑了上面的代码以匹配您的变量名称。我没有测试过它,但它应该给你一个我希望的想法。