Gente, eu tenho uma dialog com alguns campos de pesquisa dentro dela,
e tbm uma dataTable. eu uso essa dialog pra fazer uma busca de logradouros.
o problems eh que o p:commandoLink que coloquei na ultima coluna da tabela, para
o usuário clicar e escolher o logradouro que ele quiser não está chamando o método do bean
referenciado no atributo action.
será que tem alguma coisa a ver com o f:setPropertyActionListener dentro do commandLink?
segue abaixo o código da dialog:
<p:dialog header="Escolha um Logradouro" widgetVar="popupLogradouro" modal="true" draggable="false"
width="680" resizable="false" showEffect="fold" hideEffect="slide" closeOnEscape="true">
<h:panelGrid id="pesquisarCEP" columns="5">
<h:outputText value="Estado"/>
<h:outputText value="Cidade"/>
<h:outputText value="Logradouro"/>
<h:outputText/>
<h:outputText/>
<p:inputText onblur="this.value = this.value.toUpperCase();" maxlength="2" binding="#{logradouroBean.selectEstado}" id="ddlUF" style="width: 50px;"/>
<p:inputText id="itCidade" binding="#{logradouroBean.inputCidade}" value="#{logradouroBean.cidade}" />
<p:inputText id="itLogradouro" binding="#{logradouroBean.inputRua}" value="#{logradouroBean.logr}"/>
<p:commandLink action="#{logradouroBean.pesquisar}" immediate="true" ajax="true" onstart="imgAjax.show();" oncomplete="imgAjax.hide();" update="tabelaLogradouro,msg">
<h:graphicImage url="/images/lens_32x32.png" width="24" height="26" style="border: none;"/>
</p:commandLink>
</h:panelGrid>
<p:dataTable id="tabelaLogradouro" var="logrListar" value="#{logradouroBean.listaPopup}"
emptyMessage="Nenhum Registro Encontrado" paginator="true" rows="10"
paginatorTemplate="{FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink}"
paginatorPosition="bottom"
update="logrCEP,logrCodigo,logrNome,logrBairro" style="font-size: 13px; width:100%;">
<f:facet name="header">
Lista de Logradouros
</f:facet>
<p:column filterBy="#{logrListar.LOGRNome}" filterMatchMode="contains" filterStyle="width: 100%;">
<f:facet name="header">
<h:outputText value="Nome"/>
</f:facet>
<h:outputText value="#{logrListar.LOGRNome}"/>
</p:column>
<p:column filterBy="#{logrListar.logrCep}" filterMatchMode="startsWith" filterStyle="width: 100%;">
<f:facet name="header">
<h:outputText value="CEP"/>
</f:facet>
<h:outputText value="#{logrListar.logrCep}"/>
</p:column>
<p:column>
<p:commandLink title="Ok" ajax="true" action="#{empresaBean.atualizarCEP}" update="logrCEP,logrCodigo,logrNome,logrBairro">
<h:graphicImage url="images/check_mark_32x32.png" height="24" width="24" style="border: none;"/>
<f:setPropertyActionListener value="#{logradouroBean.listaPopup}" target="#{empresaBean.listaLogradouros}"/>
</p:commandLink>
</p:column>
</p:dataTable>
</p:dialog>
e o código do método do bean que deve ser chamado pelo commandLink:
public void atualizarCEP(){
SAG7Logradouro logr = listaLogradouros.getRowData();
setLogradouro(logr);
}