2
respostas

p:selectOneMenu não filtra corretamente o dataList

Tenho uma coluna com o filtro p:selectOneMenu . Uso para ele filtrar uma coluna que possui uma lista. Então uso o componente p:dataList do Primefaces para mostrar essa lista. Mas o filtro só pega o primeiro item do dataList, se filtrar pelos outros que estão na linha dessa coluna ele não filtra.

<p:column filterBy="#{projeto.listaLinhaPesquisas[0].nome}" headerText="Linha de Pesquisa">
                    <f:facet name="filter">
                    <p:selectOneMenu onchange="PF('projetoTable').filter()" >
                        <f:selectItem  itemLabel="Selecione..." itemValue="#{null}" noSelectionOption="true"/>
                        <f:selectItems value="#{gestaoProjetosBean.listaLinhaPesquisas}"
                            var="linhaPesquisa" itemLabel="#{linhaPesquisa.nome}"
                            itemValue="#{linhaPesquisa.nome}" />
                    </p:selectOneMenu>
                    </f:facet>
                    <p:dataList value="#{projeto.listaLinhaPesquisas}" var="linhaPesquisa">
                        <h:outputText value="#{linhaPesquisa.nome}"/>
                    </p:dataList>
                </p:column>
2 respostas

Oi Daniel,

realmente não sei pq está dando esse problema mas vou tentar dar algumas dicas:

1) Teste primeiro o exemplo do showcase igualzinho com mesma versão do JSF e Primefaces para entender o funcionamento. 2) Isola essa parte de view que não está funcionando. Isto é criar uma pagina de teste separada, apenas com xhtml e managedbean (sem banco de dados). Foque apenas nessa coluna e nesses dados. 3) Teste o filtro sem tabela. Simplifica o máximo possível até encontrar uma versão que funciona. Após isso adicione passo a passo as funcionalidades, testando cada alteração. 4) Atualize a biblioteca do primefaces.

Sei que são pontos muitos genéricos mas espero ter ajudado mesmo assim.

abs, Nico

Com só um atributo na coluna ele funciona, mas com o datalist não. Pois justamente ele filtra só pelo primeiro atributo. Como posso implementar de outra forma sem usar o datalist? Mostrando vários atributos em uma coluna?