Ordenação Data Table RichFaces

4 respostas
D

Olá pessoal, estou com problema em usar a ordenação da Data Table do richfaces pois conforme meu codigo abaixo, até aparece as setas de ordenação nas colunas porem ao clicar não acontece nada, não encontrei nenhum exemplo utilizando ordenação com Columns, será que é possivel?
Se alguem tiver uma idéia …Desde ja agradeço…

<%-- data table que exibe os registros cadastradas --%>
                    <rich:dataTable value="#{backManutencao.listaRegistros}"
                                    var="beans" rows="#{backManutencao.linhasPaginacao}"
                                    onRowMouseOver="this.style.backgroundColor='#F1F1F1'"
                                    onRowMouseOut="this.style.backgroundColor='#FFFFFF'">
                        
                        <f:facet name="header">
                            <h:outputText value="Lista Manutencao"/>
                        </f:facet>

                        <rich:columns value="#{backManutencao.nomeCampo}" index="ind"
                                      var="item" sortBy="#{beans}">

                            <f:facet name="header">
                                <h:outputText value="#{backManutencao.campos[item].aliasColuna}"/>
                            </f:facet>
                            <%-- link para atualizar o registro --%>
                            <h:commandLink  target="#{backManutencao.target}"
                                            action="alterar"
                                            actionListener="#{backManutencao.prepararAtualizacao}"
                                            rendered="#{backManutencao.update}"
                                            value="#{beans.atributos[item].valor}" >
                            </h:commandLink>

                            <h:outputText value="#{beans.atributos[item].valor}" rendered="#{!backManutencao.update}" />
                        </rich:columns>

                        <rich:column styleClass="coluna_centro" rendered="#{backManutencao.delete}">
                            <f:facet name="header">
                                <h:outputText value="X" />
                            </f:facet>
                            <h:selectBooleanCheckbox id="chkDelete" value="#{beans.remover}" />
                        </rich:column>

                        <f:facet name="footer">
                            <rich:datascroller rendered="#{backManutencao.paginacao}" renderIfSinglePage="false"></rich:datascroller>
                        </f:facet>

                    </rich:dataTable>

4 Respostas

Marlon_Meneses

eu acho que a tabela deve estar dentro de um formulario.
e nao se esqueça do keepalive

D

Obrigado pela atenção…

Já esta dentro do form é que não postei todo o codigo, segue abaixo, tudo funciona perfeitamente só nao consigo ordenar, estou usando colunas dinamicas e valores dinamicos. (não sei se assim funciona).
Alguém tem alguma idéia.
Desde ja agradeço…

<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">

<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>

<%@taglib uri="http://richfaces.org/a4j" prefix="a4j"%>
<%@taglib uri="http://richfaces.org/rich" prefix="rich"%>

<f:view >
    <html>
        <a4j:loadBundle basename="br.com.teste.engine.messages" var="msgs"/>
        <!--linkar dinamicamente a folha de estilo -->
        <a4j:loadStyle  src="#{pageContext.request.contextPath}#{backManutencao.estilo}" />

<head>
            <title>${msgs.tituloManutencao}</title>
        </head>
        <body styleClass="body">
            <h:panelGrid>
                 <%-- cabecalho --%>
                <%@ include file="inc/header.jspf"%>
                <%-- menu de navegacao do sistema --%>
                <%@ include file="inc/menu.jspf"%>
                <%-- dentro da data table haverão commandLinks --%>
                <a4j:form id="formTabela">
                    <p>
                        <%-- command para adicionar um novo registro --%>
                        <a4j:commandButton    value="#{msgs.btnAdicionar}"
                                              action="adicionar"
                                              actionListener="#{backManutencao.prepararInclusao}"
                                              rendered="#{backManutencao.insert}"
                                              styleClass="inputsForms"/>

                        <%-- command para remover os registros demarcados --%>
                        <h:commandButton    value="#{msgs.btnRemover}"
                                              onclick="if (!confirm('#{msgs.confirmarExclusao}')) return false"
                                              actionListener="#{backManutencao.remover}"
                                              rendered="#{backManutencao.delete}"
                                              styleClass="inputsForms"/>


                        <%-- command para adicionar filtros --%>
                        <a4j:commandButton value="Filtrar"
                                           action="filtro"
                                           rendered="#{backManutencao.filtro}"
                                           styleClass="inputsForms"/>
                    </p>

                    <%-- data table que exibe os registros cadastradas --%>
                    <rich:dataTable value="#{backManutencao.listaRegistros}"
                                    var="beans" rows="#{backManutencao.linhasPaginacao}"
                                    onRowMouseOver="this.style.backgroundColor='#F1F1F1'"
                                    onRowMouseOut="this.style.backgroundColor='#FFFFFF'">
                        
                        <f:facet name="header">
                            <h:outputText value="Lista Manutencao"/>
                        </f:facet>

                        <rich:columns value="#{backManutencao.nomeCampo}" index="ind"
                                      var="item" sortBy="#{beans}">

                            <f:facet name="header">
                                <h:outputText value="#{backManutencao.campos[item].aliasColuna}"/>
                            </f:facet>
                            <%-- link para atualizar o registro --%>
                            <h:commandLink  target="#{backManutencao.target}"
                                            action="alterar"
                                            actionListener="#{backManutencao.prepararAtualizacao}"
                                            rendered="#{backManutencao.update}"
                                            value="#{beans.atributos[item].valor}" >
                            </h:commandLink>

                            <h:outputText value="#{beans.atributos[item].valor}" rendered="#{!backManutencao.update}" />
                        </rich:columns>

                        <rich:column styleClass="coluna_centro" rendered="#{backManutencao.delete}">
                            <f:facet name="header">
                                <h:outputText value="X" />
                            </f:facet>
                            <h:selectBooleanCheckbox id="chkDelete" value="#{beans.remover}" />
                        </rich:column>

                        <f:facet name="footer">
                            <rich:datascroller rendered="#{backManutencao.paginacao}" renderIfSinglePage="false"></rich:datascroller>
                        </f:facet>

                    </rich:dataTable>
                    <br>
                    <h:commandLink  target="_popup"
                                    action="relatorio"
                                    actionListener="#{backManutencao.prepararRelatorio}"
                                    value= "#{msgs.btnRelatorio}"
                                    styleClass="inputsFormsRelatorio"/>

                    <h:outputLabel value="#{backManutencao.msgErro}" styleClass="erroValidacao"/>

                </a4j:form>
                <f:facet name="footer">
                    <%-- rodape --%>
                    <%@ include file="inc/footer.jspf"%>
                </f:facet>
            </h:panelGrid>
        </body>
    </html>
</f:view>
jorgefrancisco

Olá, pessoal.

Estou tendo justamente o mesmo problema. Alguém tem alguma idéia do que possa ser?
Eu carrego minha Data Table normalmente, inclusive com as setinhas do sortBy. Porém, ao clicar nelas, a ordenação não ocorre.

Desde já, obrigado!
Abraço!

Y

Alguém conseguiu resolver este problema? Na minha dataTable aparece as setinhas pra ordenar, porém quando eu clico some todos os dados da tabela

Criado 29 de abril de 2009
Ultima resposta 28 de out. de 2011
Respostas 4
Participantes 4