[Resolvido]jsf 2 e primeface - commandLink no footer de uma p:dataTable não realiza a navegação

3 respostas
Y

Alguém já passou por isso, tenho uma

<p:dataTable>
	<p:columnGroup type="footer">
						<p:row>
							<p:column style="width: 30%; text-align: left;">
								<f:facet name="footer">
									<h:commandLink action="#{mcduMBean.newMcdu}" styleClass="link" >
										<h:graphicImage url="/context/images/icones/16/new.png" />
										<h:outputText value="new"  style="margin-left: 5px;"/>
									</h:commandLink>
								</f:facet>
							</p:column>
							<p:column colspan="2" style="width: 70%; text-align: right;">
								<f:facet name="footer">
									<h:outputText value="Total: #{mcduMBean.totalMcdus}" />
								</f:facet>
							</p:column>
						</p:row>
					</p:columnGroup>
</p:dataTable>

Porém se colocar o commandLink fora do footer ele funciona normalmente, acho que é pau no primefaces versão 3.4
Alguém já passou por isso?
Abraços.

3 Respostas

A

Segue um exemplo funcional com datatable e columns.

Pelo que pesquisei quando usei a tag <f:facet name="footer" /> significa que o conteudo vai para o final do datatable

<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
To change this template, choose Tools | Templates
and open the template in the editor.
-->
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core">
    
    <h:head>
        <meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
        <title>Cadastro de usuários</title>
    </h:head>
    <h:body>
        <h1>Cadastro de Usuários</h1>
        <h:form>
            <h:messages />
            <h:dataTable value="#{usuarioBean.lista}" var="usuario" rules="rows" cellpadding="5">
                <f:facet name="caption">
                    A listagem a seguir exibe a relação de todos os usuários do sistema. Você poderá realizar ativação e desativação, edição e exclusão de usuários.
                </f:facet>
                <f:facet name="header">Listagem de Usuários</f:facet>
                <f:facet name="footer">Final da listagem</f:facet> <!-- ultima linha do datatable -->
                <h:column>
                    <h:commandLink action="#{usuarioBean.ativar}"> 
                        <h:graphicImage library="imagens" name="usuario_ativo_#{usuario.ativo}.png" style="border:0" />
                        <f:setPropertyActionListener target="#{usuarioBean.usuario}" value="#{usuario}" />
                    </h:commandLink>
                </h:column>
                <h:column>
                    <f:facet name="header">Código</f:facet>#{usuario.codigo}
                </h:column>
                <h:column>
                    <h:graphicImage library="imagens" name="bandeira_#{usuario.idioma}.png" />
                </h:column>
                <h:column>
                    <f:facet name="header">Nome</f:facet>#{usuario.nome}
                </h:column>
                <h:column>
                    <f:facet name="header">e-Mail</f:facet>
                    <a href="malito:#{usuario.email}">#{usuario.email}</a>
                </h:column>
                <h:column>
                    <h:commandLink action="#{usuarioBean.editar}">
                        <h:graphicImage library="imagens" name="editar16.png" style="border:0" />
                        <f:setPropertyActionListener target="#{usuarioBean.usuario}" value="#{usuario}" />
                        <f:setPropertyActionListener target="#{usuarioBean.destinoSalvar}" value="/admin/principal" />
                    </h:commandLink>
                </h:column>
                <h:column> 
                    <h:commandLink action="#{usuarioBean.excluir}" onclick="if(!confirm('Confirma a exclusão do usuário #{usuario.nome}'))return false;">
                        <h:graphicImage library="imagens" name="excluir16.png" style="border:0" />
                        <f:setPropertyActionListener target="#{usuarioBean.usuario}" value="#{usuario}" />
                    </h:commandLink>
                </h:column>
            </h:dataTable>
        </h:form>
    </h:body>
    
</html>
Y

Então não é como se usa o footer!!!
E Sim que o commandLink não funciona no footer!
Ou Seja se ter uma ação de navegação(link) nativa do JSF no footer está não funciona, porém fora do footer sim.
E um link com a tag nativa html também funciona.

Y

Resolvi, retirei a a tag <p:columnGroup type="footer">
e coloquei somente:

<p:column colspan="1" style="width: 70%; text-align: right;"> <f:facet name="footer"> <h:commandLink action="#{mcduMBean.newMcdu}" styleClass="link" > <h:graphicImage url="/context/images/icones/16/new.png" style="margin-top: 5px; padding-right: 3px;"/> <h:outputText value="Criar MCDU"/> </h:commandLink> </f:facet> </p:column>
E o h:commandLink funcionou.

PS: Só para deixar registrado, caso alguém passe por isso.

Criado 13 de outubro de 2012
Ultima resposta 15 de out. de 2012
Respostas 3
Participantes 2