Primefaces自动完成返回列表基于其他字段的值。我该怎么办?

时间:2012-08-20 14:53:16

标签: ajax autocomplete primefaces

图片说得比文字更好......

我想要返回街道地址,但为此我必须通过城市和州。我已经尝试了很多方法而且我做不到,因为我不理解,但我认为当我制作ajax自动完成并设置城市和州的值时,值不会传递给管理员。它们只有在我向前推进时才会通过,可能是因为自动完成过程并且只是自我更新(甚至我试图通过自动完成标签中的其他ajax请求更新其他字段)。

以下代码:

<p:autoComplete global="true" id="autoCompleteEnderecoCidadesLogradouro" 
 completeMethod="#{cidadeMB.autoCompletaEnderecoPojo}" 
 value="#{cidadeMB.enderecoTemp}" var="e" itemValue="#{e}"
 itemLabel="#{cidadeMB.cidade.endereco.logradouro}" converter="enderecoConverter"
 forceSelection="true" minQueryLength="5" maxResults="15" queryDelay="800"
 styleClass="textoLogradouro">
  <p:ajax process=":tabViewSistema:tabViewCadastro:formAddCidades:testeCidadeInput"
   update=":tabViewSistema:tabViewCadastro:formAddCidades:testeCidadeInput"/>
    <p:column>#{e.logradouro}</p:column>
    <p:column>#{e.cep}</p:column>
    <p:column>#{e.uf}</p:column>

  <p:ajax event="itemSelect" listener="#{cidadeMB.handleSelecaoDeEndereco}"
   update=":tabViewSistema:tabViewCadastro:formAddCidades:panelAddCidadesT3"/>  
</p:autoComplete>

任何人都可以给我一个提示怎么做?

1 个答案:

答案 0 :(得分:0)

其他人也有同样的问题,PrimeFaces解决了这个问题:

Issue 3593: Add process option to autocomplete

Summary: Add process option to autocomplete
Labels: TargetVersion-3.2
[...]
We'll add process option which you can use to add other component
on page to decide what to process during search request.
[...]
Done, you now can do process="otherComponents" while entering data.

因此,您现在可以将属性process="otherComponent1 otherComponent2"添加到<p:autocomplete>。然后,JSF应该在每个自动完成回调中设置辅助bean中的那些组件的值,就像在常规提交期间一样,并且您的自动完成回调可以引用这些值。