filterBy com PrimeFaces 3.0

4 respostas
C
Olá pessoal, estou com problemas para fazer o filterBy do primeFaces funcionar. Já tentei de todas as formas e nada funcionar, por favor, alguém pode me ajudar??? Bean:
public List<Carreta> load(final int index, final int count, final String sortField, final SortOrder sortOrder,
					final Map<String, String> filters) {

				final List<Carreta> toReturn = carretaService.getListaPaginado(index, count, sortField, sortOrder, filters);

				if (ehParaContar) {
					rowCount = carretaService.count();
					lazyModel.setRowCount(rowCount);
					ehParaContar = false;
				}
				return toReturn;
			}
		};

		rowCount = carretaService.count();
		lazyModel.setRowCount(rowCount);
	}
DAO:
public List<Carreta> getListaPaginado(int index, int count, String sortField, SortOrder sortOrder, Map<String, String> filters) {
		Session s = getSession();

		Criteria crit = s.createCriteria(Carreta.class);

		if (sortField != null && !sortField.isEmpty()) {
			if (sortOrder == SortOrder.ASCENDING) {
				crit = crit.addOrder(Order.asc(sortField));
			} else {
				crit = crit.addOrder(Order.desc(sortField));
			}
		}
		
		if (!filters.isEmpty()) {  
		    Iterator<Entry<String, String>> iterator = filters.entrySet().iterator();  
		    while (iterator.hasNext()) {  
		        Entry<String, String> entry = iterator.next();  
		        crit.add(Restrictions.ilike(entry.getKey(), entry.getValue(), MatchMode.ANYWHERE));
		    }  
		}

		return crit.setFirstResult(index).setMaxResults(count).list();
	}

4 Respostas

Diego_Adriano

Clever, posta o xhtml ai ..
Mas cara, eu apenas coloco o filter no datatable .. sem implementar nada em código e funciona normalmente.

[code]


balrog

qual eh a musica maestro? em outras palavras, qual eh o problema? defina melhor “nada funcionar”

C
Então, o código do meu bean e do meu bean já estão a cima, e o meu xhtml ta assim:
<p:dataTable id="dtCarreta" value="#{carretaMBean.lazyModel}" lazy="true" var="item" paginator="true" rows="5"
                             emptyMessage="#{msgs.dtVazia}" rowsPerPageTemplate="5,10,15" selection="#{carretaMBean.selectedCarretas}"
                              rowStyleClass="#{empty rowIx or rowIx mod 2 ne 0 ? 'even-row' : 'odd-row'}"
                             rowIndexVar="rowIx" rowKey="#{item.codigocarreta}">

<p:column selectionMode="multiple" />
                    <p:column id="clnCodCarreta" style="width: 50px" sortBy="#{item.codigocarreta}" filterBy="#{item.codigocarreta}">
                        <f:facet name="header">
                            <h:outputText id="optCodigoCarreta" value="#{msgs.optTableCodigoCarreta}" />
                        </f:facet>
                        <h:outputText value="#{item.codigocarreta}"/>
                    </p:column>
     ......
     </p:dataTable>

O problema é que quando digito algo no filterBY nao tras nada, nao filtra e eu nao sei o motivo. Alguém já passou por isso?

CLEYSON

Bom Dia ...

A solução deve ser:

<p:dataTable id="dtCarreta" value="#{carretaMBean.lazyModel}" lazy="true" var="item" paginator="true" rows="5"
                             emptyMessage="#{msgs.dtVazia}" rowsPerPageTemplate="5,10,15" selection="#{carretaMBean.selectedCarretas}"
                              rowStyleClass="#{empty rowIx or rowIx mod 2 ne 0 ? 'even-row' : 'odd-row'}"
                             rowIndexVar="rowIx" rowKey="#{item.codigocarreta}">

                        <f:facet name="header">
                            <h:outputText id="optCodigoCarreta" value="#{msgs.optTableCodigoCarreta}" />
                        </f:facet>

<p:column selectionMode="multiple" />


                    <p:column id="clnCodCarreta" style="width: 50px" sortBy="#{item.codigocarreta}" filterBy="#{item.codigocarreta}">
                        <h:outputText value="#{item.codigocarreta}"/>
                    </p:column>
     ......
     </p:dataTable>
Criado 26 de janeiro de 2012
Ultima resposta 26 de abr. de 2012
Respostas 4
Participantes 4