1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Parametro na sortFunction da tag p:columns - primefaces

Primeiramente, descobri que o primefaces tem um bug com a tag columns, o sortFunction espera receber uma propriedade ao invés de um método. Então encontrei uma solução como postei neste link O problema, é que agora preciso saber qual coluna o usuário está escolhendo para ordenar. É possível passar algum parâmetro na sortFunction?

Esta é a datatable:

  <p:dataTable value="#{categoriaBean.categorias}" var="categoria">
        <p:column sortBy="#{categoria.nome}">
            <f:facet name="header">
                <h:outputText value="Categoria"></h:outputText>
            </f:facet>
            <h:outputText value="#{categoria.nome}"></h:outputText>
        </p:column>
        <p:columns value="#{categoriaBean.columns}" var="column" columnIndexVar="i" sortBy="#{categoria}" sortFunction="#{categoriaBean.customOrder}">
            <f:facet name="header">
                <h:outputText value="#{column.header}"></h:outputText>
            </f:facet>
            <h:outputText value="#{categoria[column.property][i].sumNota/categoria[column.property][i].countNota}"></h:outputText>
        </p:columns>
    </p:dataTable>

E os métodos:

    public MethodExpression getCustomOrder() {
        FacesContext context = FacesContext.getCurrentInstance();
        return context
                .getApplication()
                .getExpressionFactory()
                .createMethodExpression(context.getELContext(),
                        "#{categoriaBean.customSort}", Integer.class,
                        new Class[] { Object.class, Object.class });
    }
public int customSort(Object val1, Object val2) {
        System.out.println("mySort" + val1 + "/" + val2);
        return 0;
    }
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags primefaces java jsf ou faça a sua própria pergunta.