【问题标题】:Primefaces InputSwitch Component Duplicating After Ajax RequestsPrimefaces InputSwitch 组件在 Ajax 请求后复制
【发布时间】:2018-08-15 16:48:12
【问题描述】:

在 Web 应用程序中,有一个表单可以让用户注册一些值,其中之一是 prefixo。选择 prefixo 值时,selectCheckboxMenu是(ajax)填充了 executivos 值。这工作正常,如果用户点击保存按钮,它会正确地保存在数据库中。

<p:outputLabel value="#{adeBundle.CreateDemandasLabel_prefixo}" for="prefixo" />
<h:panelGroup>
    <p:selectOneMenu id="prefixo" value="#{demandasController.selected.prefixo}"  converter="prefixosConverter" filter="true" filterMatchMode="contains" required="true" requiredMessage="#{adeBundle.CreateDemandasRequiredMessage_prefixo}" >
        <f:selectItem itemLabel="#{adeBundle.SelectOneMessage}" itemValue="#{null}" />
        <f:selectItems value="#{prefixosController.items}"
                       var="prefixoItem"
                       itemValue="#{prefixoItem}"
                       itemLabel="#{prefixoItem.prefixo} - #{prefixoItem.nomePrefixo}"
                       />
        <p:ajax event="valueChange" update="uorPosCollection" listener="#{demandasController.changePrefixo}"/>                            
    </p:selectOneMenu>
    <p:tooltip for="prefixo" value="#{demandasController.getComponentMessages('prefixo', adeBundle.CreateDemandasHelpText_prefixo)}"/>
</h:panelGroup>

<p:outputLabel value="#{adeBundle.CreateDemandasLabel_uorPosCollection}" for="uorPosCollection" />
<p:selectCheckboxMenu id="uorPosCollection" value="#{demandasController.selected.uorPosCollection}" label="Executivo(s)" multiple="true" 
                      converter="uorPosConverter" filter="true" filterMatchMode="contains" panelStyle="width:420px" dynamic="true" title="Selecione um ou mais..." >
    <f:selectItems value="#{demandasController.availableExecutivos}"
                   var="uorPosCollectionItem"
                   itemValue="#{uorPosCollectionItem}"
                   itemLabel="#{uorPosCollectionItem.matricula} - #{uorPosCollectionItem.nome} (#{uorPosCollectionItem.prefixo.prefixo})"
                   >
         <p:inputSwitch disabled="#{demandasController.selected.uorPosCollection.size()==0}" value="#{demandasController.valueOnExecutivo}" onLabel="Sim" offLabel="Não" showLabels="true" style="float: right"><p:ajax listener="#{demandasController.addEmailAdviseMessage}" update=":growl" /></p:inputSwitch>
         <p:outputLabel value="Enviar e-Mail:&nbsp;" style="float: right; padding-top: 0.5em" />
    </f:selectItems>
    <p:tooltip for="uorPosCollection" value="#{demandasController.getComponentMessages('uorPosCollection', adeBundle.CreateDemandasHelpText_uorPosCollection)}"/>
</p:selectCheckboxMenu>

问题是:每次用户选择前缀时,inputSwitch 都会重复:

有谁知道为什么会这样,我该如何解决?

提前致谢。

【问题讨论】:

    标签: java ajax primefaces


    【解决方案1】:

    您必须将您的&lt;p:inputSwitch&gt; 放在&lt;f:selectItems&gt; 之外。 然后放一个&lt;p:ajax&gt; 来更新inputSwitch 值。

    【讨论】:

    • 谢谢,对我很有帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-12
    • 2012-11-24
    • 2016-02-03
    • 2014-09-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多