Question

Good morning!!

I have a dynamic datatable and I'm using Columns of Richfaces, but when I assign the value to FilterBy, it does not work. Can anyone help me? Woe is my code ..

<rich:dataTable id="dtAtendimento" value="#{CadastroAtendimentoTecnico.listaAtendimento}" var="atendimento">
    <rich:columns index="index" value="#{CadastroAtendimentoTecnico.listaCampos}" var="column" filterBy="#{column.nomeAtributo}" filterEvent="onKeyUp">
        <f:facet name="header">
            <h:outputText value="#{column.label}"/>
        </f:facet>
        <h:outputText value="#{atendimento[column.nomeAtributo]}"/>
    </rich:columns>
</rich:dataTable>
Was it helpful?

Solution

Try adding sortBy="#{column.nomeAtributo}" and sortOrder to rich:columns it will work. I came to know that we have such problems on early version. Please try RF 3.2.1. I think it should solve the problem otherwise.

OTHER TIPS

From what I can see you are using the wrong attribute in filterBy. You want to use nesting to specify where to find the element to sort on. Something like #{atendimento(column.nomeAtributo)}, but I am not in a place I can test it. What this essentially does is evaluate the name of the column and then calls the getter with the same name off of your row object atendimento. Sorry if the nesting syntax doesn't work, but I think nesting is your answer.

If #{atendimento[column.nomeAtributo]} works to print the value then that is what you want, but I would only expect it to work if nomeAtributo is an integer for array referencing.

I've come across another issue with filterBy which can cause problems. We had the filterBy working on entities in a certain business state (active, expired etc) but not in others. The state of the entity had nothing to do with the actual filter value.

When I used a filterMethod and did the filtering on the backing bean it worked fine. It turned out that filterBy submits the whole form while on my inputText for the filterMethod I used ajaxSingle. A validation failed when you submitted that form in total but the validation error was swallowed.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top