2014-02-12 40 views
0

我想要做的是如果用户选择一个单选按钮,在单选按钮旁边显示特定微调器,所有微调器在加载时都隐藏起来,只有一个对应当单选按钮被选中时,单选按钮应该被显示出来,目前我得到了纺纱者的隐藏,但是我只能得到全部或者没有纺纱器出现,我怎么能限制这个呢?如何在选择后只显示一个微调器

这是我当前的代码:

  <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应显示

我怎样才能做到这一点?

谢谢你们

回答

1

每当您选择这样

<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> 

单选按钮同样可以在您的面板做其他纺织你可以拥有Ajax调用。当mySpinnerPanel将其更改为您希望的值时,我给了您的输出面板,并且单选按钮的值属性中缺少#。

希望这有助于

+0

谢谢,我已经试过了,但一个单选按钮被选中 – user2061913

+0

我推测,在FormBean的你的电话号码变量是一个整数后,它永远不会显示的微调。如果它是字符串,那么你可以尝试条件#{formBean.number eq'1'}。并且只是提示该eq条件以检查您是否得到错误或真实 –

+0

并尝试在p:ajax调用中更改update =“range,mySpinnerPanel”。 –

相关问题