我想要做的是,如果用户选择一个单选按钮,单选按钮旁边会显示一个特定的微调器,所有微调器都会在加载时被隐藏,只有当单击按钮时才会显示一个与单选按钮相对应的微调器。单选按钮被选中,目前我让旋转器隐藏起来,但是我只能得到全部或者没有一个微调器出现,我该怎么限制呢?
这是我目前的代码:
<p:outputLabel value="#{bundle.labelMarkRange}" for="range" />
<p:panelGrid columns="3">
<p:selectOneRadio id="range" value="{formBean.number}" layout="grid" columns="1" required = "True"
requiredMessage="#{bundle.messageSelectMarkRange}" >
<f:selectItem itemLabel="0 - 19" itemValue="1" />
<f:selectItem itemLabel="20 - 39" itemValue="2" />
<f:selectItem itemLabel="40 - 49" itemValue="4" />
<f:selectItem itemLabel="50 - 59" itemValue="5" />
<f:selectItem itemLabel="60 - 69" itemValue="6" />
<f:selectItem itemLabel="70 - 79" itemValue="7" />
<f:selectItem itemLabel="80 - 100" itemValue="8" />
</p:selectOneRadio>
<p:outputPanel>
<!-- look into validation for this to prevent any unwanted values, better than the min max etc -->
<p>
<p:spinner id="ajaxspinner0-19" value="#{spinnerController.number1}"
stepFactor = "1" min="0" max="19" rendered="#{facesContext.postback}">
<p:ajax update="ajaxspinnervalue" process="@this" />
</p:spinner>
</p>
<p>
<p:spinner id="ajaxspinner20-39" value="#{spinnerController.number1}"
stepFactor = "1" min="20" max="39" rendered="#{facesContext.postback}">
<p:ajax update="ajaxspinnervalue" process="@this" />
</p:spinner>
</p>
因此,例如,如果用户选择了0 - 19微调器,那么只应显示ajax微调器0-19
我该怎么做?
谢谢你们
答案 0 :(得分:1)
每当您选择这样的单选按钮时,您都可以进行ajax调用
<p:selectOneRadio id="range" value="#{formBean.number}" layout="grid" columns="1" required = "True"
requiredMessage="#{bundle.messageSelectMarkRange}" >
<f:selectItem itemLabel="0 - 19" itemValue="1" />
<f:selectItem itemLabel="20 - 39" itemValue="2" />
<f:selectItem itemLabel="40 - 49" itemValue="4" />
<f:selectItem itemLabel="50 - 59" itemValue="5" />
<f:selectItem itemLabel="60 - 69" itemValue="6" />
<f:selectItem itemLabel="70 - 79" itemValue="7" />
<f:selectItem itemLabel="80 - 100" itemValue="8" />
<p:ajax process="@this" update="mySpinnerPanel" />
</p:selectOneRadio>
<p:outputPanel>
<!-- look into validation for this to prevent any unwanted values, better than the min max etc -->
<p>
<p:spinner id="ajaxspinner0-19" value="#{spinnerController.number1}"
stepFactor = "1" min="0" max="19" rendered="#{formBean.number eq 1}">
<p:ajax update="ajaxspinnervalue" process="@this" />
</p:spinner>
</p>
<p:outputPanel>
同样,您可以在面板中执行其他微调器。我给了你的输出面板,因为mySpinnerPanel按你的意愿改变它,而单选按钮的value属性中缺少#。
希望这有帮助