DataTable - Filter

Filtering updates the data based on the constraints.

Documentation
Search all fields:
IdYear
Brand
Color
Status
All
Sold
Sale
Price
containslteexactinequalscustom (min)
c0b3f46f1971VolkswagenBlueSold$54,522.00
8972081f2005AudiBrownSale$42,201.00
747afd9a1999VolkswagenRedSold$42,767.00
fc1123cc1970VolvoSilverSold$97,270.00
97267dbe2007AudiRedSold$37,171.00
9afd142f1983FiatSilverSale$16,514.00
950f1f811966BMWRedSold$66,181.00
2755b8da1968VolkswagenBlackSold$83,283.00
dd74a5612003HondaBrownSale$15,208.00
c472502e1984HondaWhiteSold$56,972.00
Search all fields using globalFilterFunction:
IdYearBrandColorStatusPrice
df8d001d1985JaguarBlueSale$65,674.00
0f93f3c51982RenaultBrownSold$52,455.00
f2c1e8df1974FordOrangeSold$93,082.00
871f6f5e1987VolkswagenSilverSold$23,180.00
2821d0e21981FiatBrownSold$87,538.00
3f1df74d1994FordYellowSale$59,978.00
d09e2fac2005FiatRedSold$7,384.00
1b2854491981HondaSilverSold$43,272.00
e9a8ad9b1990VolkswagenSilverSale$16,071.00
1adeb95d1981BMWBlueSold$73,625.00
<style type="text/css">
    .ui-datatable {
        margin-bottom: 25px
    }

    .ui-datatable .ui-datatable-header {
        text-align: right !important;
    }

    .ui-button-text-only .ui-button-text {
        padding: 0.3em 0.4em;
    }

    .ui-selectcheckboxmenu-panel .ui-selectcheckboxmenu-header .ui-chkbox {
        visibility: hidden;
    }

    .ui-filter-column .ui-column-customfilter .custom-filter {
        width: 100%;
        box-sizing: border-box;
    }

    .year-spinner input {
        width: 100%;
        box-sizing: border-box;
    }
</style>


<h:form>
    <p:dataTable var="car" value="#{dtFilterView.cars1}" widgetVar="carsTable1"
                 emptyMessage="No cars found with given criteria" filteredValue="#{dtFilterView.filteredCars1}">

        <f:facet name="header">
            <p:outputPanel>
                <h:outputText value="Search all fields:" />
                <p:inputText id="globalFilter" onkeyup="PF('carsTable1').filter()" style="width:150px" placeholder="Enter keyword"/>
            </p:outputPanel>
        </f:facet>

        <p:column filterBy="#{car.id}" headerText="Id" footerText="contains" filterMatchMode="contains">
            <h:outputText value="#{car.id}" />
        </p:column>

        <p:column filterBy="#{car.year}" headerText="Year" footerText="lte" filterMatchMode="lte">
            <f:facet name="filter">
                <p:spinner onchange="PF('carsTable1').filter()" styleClass="year-spinner custom-filter">
                    <f:converter converterId="javax.faces.Integer" />
                </p:spinner>
            </f:facet>
            <h:outputText value="#{car.year}" />
        </p:column>

        <p:column filterBy="#{car.brand}" headerText="Brand" footerText="exact" filterMatchMode="exact">
            <f:facet name="filter">
                <p:selectOneMenu onchange="PF('carsTable1').filter()" styleClass="custom-filter">
                    <f:selectItem itemLabel="Select One" itemValue="#{null}" noSelectionOption="true" />
                    <f:selectItems value="#{dtFilterView.brands}" />
                </p:selectOneMenu>
            </f:facet>
            <h:outputText value="#{car.brand}" />
        </p:column>

        <p:column filterBy="#{car.color}" headerText="Color" footerText="in" filterMatchMode="in">
            <f:facet name="filter">
                <p:selectCheckboxMenu label="Colors" onchange="PF('carsTable1').filter()" scrollHeight="150" styleClass="custom-filter">
                    <f:selectItems value="#{dtFilterView.colors}" />
                </p:selectCheckboxMenu>
            </f:facet>
            <h:outputText value="#{car.color}" />
        </p:column>

        <p:column filterBy="#{car.sold}" headerText="Status" footerText="equals" filterMatchMode="equals">
            <f:facet name="filter">
                <p:selectOneButton onchange="PF('carsTable1').filter()" styleClass="custom-filter">
                    <f:converter converterId="javax.faces.Boolean" />
                    <f:selectItem itemLabel="All" itemValue="" />
                    <f:selectItem itemLabel="Sold" itemValue="true" />
                    <f:selectItem itemLabel="Sale" itemValue="false" />
                </p:selectOneButton>
            </f:facet>
            <h:outputText value="#{car.sold ? 'Sold': 'Sale'}" />
        </p:column>

        <p:column filterBy="#{car.price}" headerText="Price" footerText="custom (min)" filterFunction="#{dtFilterView.filterByPrice}">
            <h:outputText value="#{car.price}">
                <f:convertNumber currencySymbol="$" type="currency"/>
            </h:outputText>
        </p:column>
    </p:dataTable>

    <p:dataTable var="car" value="#{dtFilterView.cars2}" widgetVar="carsTable2"
                 emptyMessage="No cars found with given criteria" filteredValue="#{dtFilterView.filteredCars2}"
                 globalFilterFunction="#{dtFilterView.globalFilterFunction}">

        <f:facet name="header">
            <p:outputPanel>
                <h:outputText value="Search all fields using globalFilterFunction:" />
                <p:inputText id="globalFilter" onkeyup="PF('carsTable2').filter()" style="width:150px" placeholder="Enter keyword"/>
            </p:outputPanel>
        </f:facet>

        <p:column headerText="Id">
            <h:outputText value="#{car.id}" />
        </p:column>

        <p:column headerText="Year">
            <h:outputText value="#{car.year}" />
        </p:column>

        <p:column headerText="Brand">
            <h:outputText value="#{car.brand}" />
        </p:column>

        <p:column headerText="Color">
            <h:outputText value="#{car.color}" />
        </p:column>

        <p:column headerText="Status">
            <h:outputText value="#{car.sold ? 'Sold': 'Sale'}" />
        </p:column>

        <p:column headerText="Price">
            <h:outputText value="#{car.price}">
                <f:convertNumber currencySymbol="$" type="currency"/>
            </h:outputText>
        </p:column>
    </p:dataTable>
</h:form>

FREE THEMES

Built-in component themes created by the PrimeFaces Theme Designer.

nova-light Nova-Light
nova-dark Nova-Dark
nova-colored Nova-Colored
luna-blue Luna-Blue
luna-amber Luna-Amber
luna-green Luna-Green
luna-pink Luna-Pink
omega Omega

PREMIUM TEMPLATES

Create awesome applications in no time using the premium templates and impress your users.