[RESOLVIDO]Problema com p:commandLink

7 respostas
ronnytds

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);
    }

7 Respostas

E

Tentou usar actionListener em vez de action ?

ronnytds

tentei com actionListener e tbm não funcionou. =/
eu estou debugando no netbean e ele simplesmente
não chama o método.

E

Tente remover as linhas 39 e 40 e debugar só para se elas não estão influenciando.

ronnytds

tirei essas linhas e continua sem funcionar. =/

E

Que estranho. Você tem um único form ?

ronnytds

sim, tenho apenas um form

ronnytds

desisti desse p:commandLink, vou fazer de algum outro jeito!
mas obrigado pela ajuda.

Criado 6 de abril de 2011
Ultima resposta 6 de abr. de 2011
Respostas 7
Participantes 2