2016-06-08 59 views
0

我尝试显示<a4j:outputPanel>如果选择列表JSF,A4J:支持和丰富的:领料单,重新呈现

我的HTML选择的值时,第一选择列表触发的事件重新呈现第二选择列表

       <li class="clearfix"><label class="desc"><sup>*</sup> 
             <h:outputText value="Services :" /></label> 
            <div> 
             <span class="full"> <rich:pickList id="pickService" 
               value="#{GroupeController.listServices}" 
               copyAllControlLabel="Tout copier" 
               removeAllControlLabel="Tout supprimer" 
               copyControlLabel="Copier" removeControlLabel="Supprimer"> 



               <a4j:support event="onlistchange" ajaxSingle="true" reRender="test" /> 



               <f:selectItems 
                value="#{GroupeController.getListTypeGroupeServices()}" /> 
               <f:facet name="copyAllControlDisabled">Tout copier 
               </f:facet> 
               <f:facet name="removeAllControlDisabled">Tout supprimer 
               </f:facet> 
               <f:facet name="copyControlDisabled">Copier 
               </f:facet> 
               <f:facet name="removeControlDisabled">Supprimer 
               </f:facet> 
              </rich:pickList> 
             </span> <label><rich:message errorLabelClass="req" 
               for="pickService" /></label> 
            </div></li> 
          </a4j:outputPanel> 





          <a4j:outputPanel id="test" rendered="#{GroupeController.test()}" > 
           <li class="clearfix"><label class="desc"> 
             <h:outputText value="ACL existantes :" /></label> 
            <div> 
             <span class="full"> <rich:pickList id="pickACL" 
               value="#{GroupeController.listACLSelect}" 
               copyAllControlLabel="Tout copier" 
               removeAllControlLabel="Tout supprimer" 
               copyControlLabel="Copier" removeControlLabel="Supprimer"> 
               <f:selectItems 
                value="#{GroupeController.getAllACL()}" /> 
               <f:facet name="copyAllControlDisabled">Tout copier 
               </f:facet> 
               <f:facet name="removeAllControlDisabled">Tout supprimer 
               </f:facet> 
               <f:facet name="copyControlDisabled">Copier 
               </f:facet> 
               <f:facet name="removeControlDisabled">Supprimer 
               </f:facet> 

              </rich:pickList> 
             </span> <label><rich:message errorLabelClass="req" 
               for="pickACL" /></label> 
            </div></li> 
          </a4j:outputPanel> 
         </a4j:outputPanel> 
         <a4j:commandButton id="idAjouter" value="Ajouter" 
          action="#{GroupeController.ajouterGroupe()}" 
          onclick="#{rich:component('wait')}.show()" reRender="form,error" 
          limitToList="true" oncomplete="#{rich:component('wait')}.hide()" /> 
        </rich:panel> 
       </a4j:outputPanel> 
      </h:form> 
     </rich:layoutPanel> 

并且有测试()函数中的控制器:

public boolean test() { 

    if (listServices == null) { 
     return false; 
    } else { 

     boolean test = false; 
     for (String s : listServices) { 
      if (Integer.parseInt(s) == 2) { 
       test = true; 
      } 
     } 

     return test; 

    } 
} 

当我在选择列表中选择ID为2的项目时,我的功能被调用并且它返回true,但第二个选择列表仍然不显示

谢谢,对不起英文错误注意我是一个新手这

ZEL”

回答

0

的我终于找到了这个答案:JSF ReRender support with selectBooleanCheckbox

因此,有正确的代码,重新描绘的对象有变化,我已经把我的元素的包装,以显示。

<a4j:outputPanel> 

           <li class="clearfix"><label class="desc"><sup>*</sup> 
             <h:outputText value="Services :" /></label> 
            <div> 
             <span class="full"> <rich:pickList id="pickService" 
               value="#{GroupeController.listServices}" 
               copyAllControlLabel="Tout copier" 
               removeAllControlLabel="Tout supprimer" 
               copyControlLabel="Copier" removeControlLabel="Supprimer"> 
               <a4j:support event="onlistchange" ajaxSingle="true" reRender="testWrapper" /> 
               <f:selectItems 
                value="#{GroupeController.getListTypeGroupeServices()}" /> 
               <f:facet name="copyAllControlDisabled">Tout copier 
               </f:facet> 
               <f:facet name="removeAllControlDisabled">Tout supprimer 
               </f:facet> 
               <f:facet name="copyControlDisabled">Copier 
               </f:facet> 
               <f:facet name="removeControlDisabled">Supprimer 
               </f:facet> 
              </rich:pickList> 
             </span> <label><rich:message errorLabelClass="req" 
               for="pickService" /></label> 
            </div></li> 
          </a4j:outputPanel> 
          <h:panelGroup id="testWrapper"> 
           <a4j:outputPanel id="test" rendered="#{GroupeController.test()}" > 
            <li class="clearfix"><label class="desc"> 
              <h:outputText value="ACL existantes :" /></label> 
             <div> 
              <span class="full"> <rich:pickList id="pickACL" 
                value="#{GroupeController.listACLSelect}" 
                copyAllControlLabel="Tout copier" 
                removeAllControlLabel="Tout supprimer" 
                copyControlLabel="Copier" removeControlLabel="Supprimer"> 
                <f:selectItems 
                 value="#{GroupeController.getAllACL()}" /> 
                <f:facet name="copyAllControlDisabled">Tout copier 
                </f:facet> 
                <f:facet name="removeAllControlDisabled">Tout supprimer 
                </f:facet> 
                <f:facet name="copyControlDisabled">Copier 
                </f:facet> 
                <f:facet name="removeControlDisabled">Supprimer 
                </f:facet> 

               </rich:pickList> 
              </span> <label><rich:message errorLabelClass="req" 
                for="pickACL" /></label> 
             </div></li> 
           </a4j:outputPanel> 
          </h:panelGroup> 
相关问题