data columns filtering
antonio Jun 17, 2008 11:10 AMHello everibody,
I'm using jboss-seam 2.0.2.CR2 .
I want to filter data rows with this facelet(obtained from a cut and past from a richfaces example):
<ui:composition xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:a4j="http://richfaces.org/a4j" xmlns:rich="http://richfaces.org/rich"> <h:form> <rich:dataTable id="table" value="#{capitalsBean.capitals}" var="cap"> <f:facet name="header"> <rich:columnGroup> <rich:column colspan="2" > <h:outputText value="Filtering Example"/> </rich:column> <rich:column breakBefore="true"> <h:outputText value="State Name"/> </rich:column> <rich:column> <h:outputText value="State Capital"/> </rich:column> </rich:columnGroup> </f:facet> <rich:column filterMethod="#{filteringBean.filterStates}" filterEvent="onkeyup"> <f:facet name="header"> <h:inputText value="#{filteringBean.filterValue}" id="input"> <a4j:support reRender="table" ignoreDupResponses="true" requestDelay="700" focus="input" /> </h:inputText> </f:facet> <h:outputText value="#{cap.state}"/> </rich:column> <rich:column > <h:outputText value="#{cap.name}"/> </rich:column> </rich:dataTable> </h:form> </ui:composition>
This is my bean:
package filtering; import javax.swing.DefaultRowSorter; import javax.swing.RowFilter; import org.jboss.seam.annotations.Name; import it.wizardsgroup.qtram.session.Capitals; @Name("filteringBean") public class FilteringBean { private String filterValue=""; public String getFilterValue() { return filterValue; } public void setFilterValue(String filterValue) { this.filterValue = filterValue; } public boolean filterStates(Object current) { Capitals currentCapital = (Capitals)current; if (filterValue.length()==0) { return true; } if (currentCapital.getState().toLowerCase().startsWith(filterValue.toLowerCase())) { return true; }else { return false; } } }
The rows of my table are shown but filtering dont work.
Someone could explain me wy and some solution?
Tanks a lot for every suggestion!