[Resolvido]Problema p:commandButton e p:dialog

Ola pessoal,
to com o seguinte problema,

eu tenho uma imagem com um p:commandButton em uma coluna de uma tabela, que ao clicar abre um p:dialog…

<p:commandButton update="painelDados" onclick="visualizar.show()"> <p:graphicImage title="Visualizar" style="cursor: pointer" alt="Remover" url="/imagens/view.png" /> <f:setPropertyActionListener value="#{item}" target="#{bean.visualizar}" /> </p:commandButton>

até ai td bem, funciona!
mas acontece que desse jeito, aparece um botao na tabela, ao lado da imagem, e o dialog só abre se eu clicar no botao. E eu queria que só aparecesse a imagem, com o dialog abrindo qdo eu clicar nessa imagem.
sendo assim eu coloquei um p:commandLink no lugar do p:commandButton… mas ai nao funcionou…
alguem sabe como resolver isso ?

obrigado

Já tentou utilizar a propriedade onclick?

Em alguns casos, como esse seu, utilizo onclick=“dialog.show()”

já sim…
o problema é que qdo troco pra um commandLink nao funciona… :open_mouth:

Me desculpe, analisei de forma errada da primeira vez.

Na maioria das imagens que tenho aqui tenho a ação ou navegação no onclick da imagem em si e não do botão.

Logo, eu faria assim:

<p:graphicImage title="Visualizar" style="cursor: pointer" alt="Remover" url="/imagens/view.png" onclick="visualizar.show()" />

Já para setar a propriedade (F:setPropertyActionListener) eu faria:

criaria um metodo listener no bean para quando uma linha fosse selecionada, considerando que os objetos são instância do mesmo objeto.

public void onRowSelect(SelectEvent event) {
        this.setVisualizar(item);
}

aí é só chamar na pagína dentro da tabela que você estiver utilizando um p:ajax, por exemplo:

<p:ajax event="rowSelect" listener="#{bean.onRowSelect}" update="tabela" />

Aqui tem funcionado!

Mas caso não funcione, verifique a possibilidade de utilizar a propriedade icon do p:commandButton, dessa forma:

<p:commandButton id="selectButton" oncomplete="visualizar.show()" icon="ui-icon-search" title="Visualizar">  
      <f:setPropertyActionListener value="#{item}" target="#{bean.visualizar}" />  
</p:commandButton>

Espero ter ajudado. Abços!

                        <p:column >
                            <f:facet name="header">
                                <h:outputText value="Arquivo" />
                            </f:facet>
                            <h:commandLink title="Clique!">  
                                <p:graphicImage value="images/env.gif" /> 
                                <f:setPropertyActionListener value="#{item}"  target="#{bean.visualizar}" />                                  
                            </h:commandLink>                             
                        </p:column> 

desse jeito tem que funcionar…
o adequado é com commandLink

lordaj,
e realmente funcionou… tinha tentado a msm coisa. mas com um p:commandLink… mas assim só funciona com o ajax=false

mas consegue aqui!
vlw marcelo e lordaj
:smiley: