Locale

Change the locale of the datepicker, schedule and client side validation messages.

Input Style

Free Themes

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

PrimeOne Design

Saga Saga
Vela Vela
Arya Arya

Premium Themes

Premium themes are only available exclusively for PrimeFaces Theme Designer subscribers and therefore not included in PrimeFaces core.

bootstrap4-blue-light Bootstrap Blue
bootstrap4-purple-light Bootstrap Purple
bootstrap4-blue-dark Bootstrap Blue
bootstrap4-purple-dark Bootstrap Purple

Legacy Free Themes

Luna Amber Luna Amber
Luna Blue Luna Blue
Luna Green Luna Green
Luna Pink Luna Pink
Nova Nova
Nova Nova Alt
Nova Nova Accent

PREMIUM TEMPLATES

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

DataTable Scroll

Both vertical and horizontal scrolling of the data is supported with optional frozen rows-columns and on-demand loading features.

Vertical
NameCountryRepresentativeStatus
Costa DilliardCanadaXuxue Feng QUALIFIED
David DarakjyItalyIvan Magalhaes PROPOSAL
Jennifer AmigonJapanOnyama Limba RENEWAL
Juan WieserArgentinaElwin Sharvill QUALIFIED
Nicolas IturbideItalyOnyama Limba QUALIFIED
Maria MarrierSpainAnna Fali UNQUALIFIED
Arvin AlbaresRussiaXuxue Feng PROPOSAL
Ashley DoeGermanyOnyama Limba PROPOSAL
Francesco ShinkoJapanAmy Elsner PROPOSAL
Stacey MacleadBrazilIoni Bowcher PROPOSAL
Julie StensethSpainAnna Fali QUALIFIED
Wickens NestleJapanIoni Bowcher RENEWAL
Aika InouyeJapanStephen Shaw RENEWAL
Darci PoquetteAustraliaXuxue Feng QUALIFIED
Octavia MaletFranceAmy Elsner RENEWAL
Claire TollnerUnited KingdomAmy Elsner NEGOTIATION
Faith GillianBrazilElwin Sharvill NEGOTIATION
Julie StensethItalyAnna Fali NEGOTIATION
Deepesh ChuiArgentinaElwin Sharvill PROPOSAL
Francesco ShinkoJapanBernardo Dominic RENEWAL
Arvin AlbaresSpainIvan Magalhaes NEW
Aruna FigeroaItalyIoni Bowcher RENEWAL
Adams MorascaArgentinaAmy Elsner PROPOSAL
Julie StensethFranceXuxue Feng UNQUALIFIED
Murillo MaletAustraliaStephen Shaw NEW
Antonio CaudyBrazilStephen Shaw PROPOSAL
Smith GlickJapanAnna Fali NEGOTIATION
Silvio SlusarskiArgentinaAsiya Javayant UNQUALIFIED
Isabel BowleyBrazilAmy Elsner NEW
Juan WieserItalyAsiya Javayant UNQUALIFIED
Darci PoquetteIndiaBernardo Dominic UNQUALIFIED
Murillo MaletItalyIoni Bowcher NEW
Jefferson SchemmerCanadaXuxue Feng UNQUALIFIED
Aika InouyeBrazilAsiya Javayant PROPOSAL
Antonio CaudyBrazilBernardo Dominic RENEWAL
Kadeem FlosiArgentinaStephen Shaw RENEWAL
Francesco ShinkoBrazilIoni Bowcher NEW
Wickens NestleArgentinaAnna Fali NEGOTIATION
Arvin AlbaresSpainIoni Bowcher NEGOTIATION
Greenwood BologniaAustraliaAmy Elsner RENEWAL
Aruna FigeroaCanadaIoni Bowcher PROPOSAL
Izzy GarufiSpainStephen Shaw UNQUALIFIED
David DarakjyBrazilAsiya Javayant RENEWAL
Mujtaba NickaRussiaAmy Elsner QUALIFIED
Isabel BowleyArgentinaElwin Sharvill NEGOTIATION
Ashley DoeRussiaAnna Fali RENEWAL
Jefferson SchemmerBrazilStephen Shaw QUALIFIED
Octavia MaletUnited KingdomAnna Fali NEGOTIATION
Salvatore StockhamBrazilOnyama Limba UNQUALIFIED
Stacey MacleadUnited KingdomElwin Sharvill NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Clifford RimCanadaXuxue Feng RENEWAL
Chavez BriddickCanadaBernardo Dominic QUALIFIED
Alejandro PerinSpainXuxue Feng UNQUALIFIED
Munro FerenczItalyStephen Shaw NEW
Izzy GarufiAustraliaAsiya Javayant QUALIFIED
Aditya KuskoJapanXuxue Feng RENEWAL
Salvatore StockhamSpainAmy Elsner RENEWAL
Darci PoquetteBrazilAnna Fali NEW
Ricardo GauchoSpainOnyama Limba QUALIFIED
James ButtBrazilIoni Bowcher NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mujtaba NickaItaly2021-04-09Dorl, James J Esq NEW26Anna Fali
1001Mujtaba NickaIndia2021-03-21Chemel, James L Cpa NEW33Amy Elsner
1002Aruna FigeroaGermany2021-04-15Buckley Miller Wright QUALIFIED44Elwin Sharvill
1003Isabel BowleySpain2021-03-23Rousseaux, Michael Esq NEGOTIATION16Onyama Limba
1004Faith GillianBrazil2021-03-24Dorl, James J Esq UNQUALIFIED95Elwin Sharvill
1005Chavez BriddickUnited Kingdom2021-04-15Morlong Associates NEGOTIATION39Xuxue Feng
1006Silvio SlusarskiAustralia2021-03-26Chapman, Ross E Esq RENEWAL68Elwin Sharvill
1007Costa DilliardFrance2021-03-31Buckley Miller Wright QUALIFIED36Elwin Sharvill
1008Jeanfrancois VenereRussia2021-03-30Feltz Printing Service QUALIFIED68Ioni Bowcher
1009Claire TollnerSpain2021-03-22Truhlar And Truhlar Attys UNQUALIFIED39Xuxue Feng
1010Alejandro PerinRussia2021-04-09Dorl, James J Esq RENEWAL87Onyama Limba
1011Jennifer AmigonUnited Kingdom2021-04-07Buckley Miller Wright QUALIFIED98Ivan Magalhaes
1012Salvatore StockhamJapan2021-03-24Rangoni Of Florence NEW21Amy Elsner
1013Adams MorascaRussia2021-03-29Dorl, James J Esq RENEWAL96Anna Fali
1014Silvio SlusarskiRussia2021-04-07Rangoni Of Florence RENEWAL28Onyama Limba
1015Clifford RimCanada2021-03-30Feiner Bros QUALIFIED83Bernardo Dominic
1016Darci PoquetteJapan2021-03-28King, Christopher A Esq NEW37Onyama Limba
1017Misaki RoysterCanada2021-03-25Rangoni Of Florence NEGOTIATION84Elwin Sharvill
1018Mujtaba NickaArgentina2021-03-28Chanay, Jeffrey A Esq UNQUALIFIED76Ivan Magalhaes
1019Greenwood BologniaGermany2021-03-23Feiner Bros RENEWAL91Xuxue Feng
1020Francesco ShinkoIndia2021-04-01Feiner Bros RENEWAL30Amy Elsner
1021Salvatore StockhamFrance2021-04-11Rangoni Of Florence PROPOSAL91Ioni Bowcher
1022Murillo MaletGermany2021-03-27Morlong Associates NEW38Xuxue Feng
1023Murillo MaletFrance2021-04-03Benton, John B Jr PROPOSAL75Onyama Limba
1024Mujtaba NickaUnited Kingdom2021-03-21Chemel, James L Cpa PROPOSAL59Ivan Magalhaes
1025Morrow RutaRussia2021-03-25Morlong Associates QUALIFIED77Bernardo Dominic
1026Antonio CaudyItaly2021-03-27Chapman, Ross E Esq NEW3Ioni Bowcher
1027Arvin AlbaresUnited Kingdom2021-03-20Rangoni Of Florence QUALIFIED66Ivan Magalhaes
1028Isabel BowleyArgentina2021-04-06Dorl, James J Esq QUALIFIED4Asiya Javayant
1029Francesco ShinkoAustralia2021-03-27Dorl, James J Esq NEW98Elwin Sharvill
1030Jeanfrancois VenereUnited Kingdom2021-04-08Buckley Miller Wright QUALIFIED36Xuxue Feng
1031Aika InouyeItaly2021-04-03Chemel, James L Cpa QUALIFIED62Amy Elsner
1032Jeanfrancois VenereSpain2021-04-03Buckley Miller Wright UNQUALIFIED28Xuxue Feng
1033Darci PoquetteFrance2021-03-29Benton, John B Jr QUALIFIED77Ioni Bowcher
1034Darci PoquetteBrazil2021-03-28Printing Dimensions NEGOTIATION33Bernardo Dominic
1035Jeanfrancois VenereArgentina2021-03-21Chapman, Ross E Esq PROPOSAL8Bernardo Dominic
1036Isabel BowleyGermany2021-03-23Commercial Press PROPOSAL56Anna Fali
1037Octavia MaletUnited Kingdom2021-03-20Feiner Bros NEGOTIATION52Bernardo Dominic
1038Arvin AlbaresIndia2021-04-05Feltz Printing Service QUALIFIED36Anna Fali
1039Jennifer AmigonUnited Kingdom2021-03-25Rousseaux, Michael Esq NEW50Ivan Magalhaes
1040Emily WhobreyIndia2021-03-30Buckley Miller Wright NEW65Asiya Javayant
1041Clifford RimSpain2021-04-08Feiner Bros QUALIFIED60Ivan Magalhaes
1042Darci PoquetteFrance2021-04-11Chemel, James L Cpa NEW24Anna Fali
1043Jennifer AmigonBrazil2021-03-26Chanay, Jeffrey A Esq NEW4Bernardo Dominic
1044Murillo MaletCanada2021-03-25Morlong Associates NEGOTIATION38Xuxue Feng
1045David DarakjyRussia2021-03-31Dorl, James J Esq RENEWAL34Asiya Javayant
1046Adams MorascaUnited Kingdom2021-04-08Rousseaux, Michael Esq RENEWAL57Amy Elsner
1047Claire TollnerUnited Kingdom2021-03-30Buckley Miller Wright PROPOSAL25Stephen Shaw
1048Faith GillianAustralia2021-03-29Dorl, James J Esq RENEWAL63Amy Elsner
1049Jennifer AmigonUnited Kingdom2021-04-13Feiner Bros NEW68Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Faith GillianGermanyAnna Fali UNQUALIFIED
Aditya KuskoUnited KingdomAmy Elsner NEW
Leon OldroydFranceElwin Sharvill QUALIFIED
Juan WieserJapanAmy Elsner NEW
Johnson SergiCanadaXuxue Feng NEGOTIATION
Mayumi KolmetzArgentinaElwin Sharvill RENEWAL
Kadeem FlosiGermanyAmy Elsner NEW
Deepesh ChuiItalyStephen Shaw NEW
Darci PoquetteRussiaBernardo Dominic NEGOTIATION
Chavez BriddickSpainXuxue Feng PROPOSAL
Aika InouyeItalyStephen Shaw QUALIFIED
Jennifer AmigonJapanOnyama Limba PROPOSAL
Jones VocelkaAustraliaIvan Magalhaes NEGOTIATION
Claire TollnerIndiaIoni Bowcher UNQUALIFIED
Isabel BowleyRussiaBernardo Dominic PROPOSAL
Greenwood BologniaIndiaIoni Bowcher RENEWAL
Jeanfrancois VenereGermanyElwin Sharvill NEGOTIATION
Chavez BriddickCanadaIoni Bowcher PROPOSAL
Jennifer AmigonCanadaIvan Magalhaes NEGOTIATION
Rodrigues CampainIndiaBernardo Dominic NEW
Smith GlickUnited KingdomAmy Elsner RENEWAL
Arvin AlbaresSpainIoni Bowcher PROPOSAL
Antonio CaudyGermanyBernardo Dominic NEGOTIATION
Izzy GarufiCanadaElwin Sharvill RENEWAL
Ashley DoeIndiaElwin Sharvill RENEWAL
Smith GlickJapanIvan Magalhaes UNQUALIFIED
Misaki RoysterUnited KingdomIoni Bowcher NEW
Antonio CaudyIndiaXuxue Feng UNQUALIFIED
Smith GlickFranceAmy Elsner PROPOSAL
Izzy GarufiIndiaStephen Shaw QUALIFIED
Darci PoquetteGermanyOnyama Limba NEW
Rodrigues CampainArgentinaAnna Fali RENEWAL
Juan WieserSpainXuxue Feng NEW
Smith GlickUnited KingdomStephen Shaw RENEWAL
Cody SaylorsUnited KingdomIvan Magalhaes UNQUALIFIED
Jennifer AmigonBrazilBernardo Dominic UNQUALIFIED
Ashley DoeAustraliaIvan Magalhaes RENEWAL
Murillo MaletFranceXuxue Feng RENEWAL
Jefferson SchemmerBrazilXuxue Feng QUALIFIED
Tony FollerJapanAsiya Javayant QUALIFIED
Misaki RoysterBrazilAnna Fali QUALIFIED
David DarakjyBrazilAmy Elsner QUALIFIED
Kaitlin OstroskyUnited KingdomAmy Elsner UNQUALIFIED
Isabel BowleySpainAsiya Javayant RENEWAL
David DarakjyGermanyAnna Fali QUALIFIED
Ricardo GauchoRussiaBernardo Dominic RENEWAL
James ButtAustraliaXuxue Feng QUALIFIED
Morrow RutaAustraliaBernardo Dominic QUALIFIED
Nicolas IturbideArgentinaStephen Shaw NEW
Izzy GarufiArgentinaStephen Shaw UNQUALIFIED
Frozen Columns
Name
Izzy Garufi
Clifford Rim
Darci Poquette
Isabel Bowley
Kaitlin Ostrosky
Chavez Briddick
Morrow Ruta
Costa Dilliard
Rodrigues Campain
Kaitlin Ostrosky
James Butt
Jones Vocelka
Antonio Caudy
Ashley Doe
Claire Tollner
Morrow Ruta
Ashley Doe
Wickens Nestle
Aditya Kusko
Nicolas Iturbide
Rodrigues Campain
Sinclair Waycott
Munro Ferencz
Johnson Sergi
Faith Gillian
Nicolas Iturbide
Ashley Doe
Mayumi Kolmetz
Misaki Royster
Mujtaba Nicka
Emily Whobrey
Adams Morasca
Wickens Nestle
Claire Tollner
Aditya Kusko
Johnson Sergi
Jefferson Schemmer
Julie Stenseth
Jones Vocelka
Silvio Slusarski
Emily Whobrey
Clifford Rim
Misaki Royster
Faith Gillian
Isabel Bowley
Jeanfrancois Venere
Misaki Royster
Kaitlin Ostrosky
Silvio Slusarski
Morrow Ruta
IdCountryDate
1000Spain2021-04-07
1001Germany2021-03-20
1002United Kingdom2021-03-21
1003Canada2021-04-15
1004Australia2021-04-15
1005United Kingdom2021-03-23
1006Brazil2021-03-23
1007Spain2021-03-30
1008United Kingdom2021-04-17
1009Russia2021-03-21
1010Japan2021-03-19
1011Italy2021-04-15
1012Spain2021-04-12
1013Italy2021-03-25
1014Canada2021-03-25
1015United Kingdom2021-04-09
1016Italy2021-04-06
1017Argentina2021-03-23
1018Russia2021-04-08
1019France2021-03-28
1020Germany2021-03-20
1021Brazil2021-04-01
1022United Kingdom2021-04-10
1023Russia2021-03-26
1024Russia2021-04-01
1025Canada2021-03-20
1026Germany2021-04-02
1027India2021-03-26
1028France2021-04-06
1029Russia2021-04-04
1030Italy2021-04-15
1031Brazil2021-03-20
1032United Kingdom2021-03-26
1033United Kingdom2021-03-23
1034United Kingdom2021-04-14
1035Japan2021-04-14
1036Italy2021-03-31
1037Brazil2021-03-23
1038Spain2021-03-23
1039Germany2021-04-07
1040France2021-03-19
1041Japan2021-04-05
1042Brazil2021-04-03
1043United Kingdom2021-03-23
1044Japan2021-03-21
1045Argentina2021-04-05
1046India2021-04-17
1047Australia2021-04-07
1048India2021-04-06
1049Italy2021-04-11
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mayumi KolmetzBrazilIoni Bowcher UNQUALIFIED
Adams MorascaIndiaAmy Elsner NEGOTIATION
Aruna FigeroaUnited KingdomElwin Sharvill UNQUALIFIED
Chavez BriddickIndiaIvan Magalhaes RENEWAL
Rodrigues CampainRussiaStephen Shaw PROPOSAL
Johnson SergiFranceAmy Elsner NEW
Cody SaylorsItalyOnyama Limba UNQUALIFIED
Jefferson SchemmerItalyElwin Sharvill NEGOTIATION
Darci PoquetteRussiaStephen Shaw RENEWAL
Darci PoquetteArgentinaAmy Elsner QUALIFIED
Emily WhobreyCanadaAsiya Javayant QUALIFIED
Chavez BriddickAustraliaAmy Elsner PROPOSAL
Morrow RutaCanadaIvan Magalhaes NEW
Morrow RutaAustraliaAnna Fali NEW
Maisha RulapaughAustraliaAsiya Javayant QUALIFIED
Nicolas IturbideIndiaAnna Fali PROPOSAL
Costa DilliardSpainElwin Sharvill QUALIFIED
Mujtaba NickaIndiaAsiya Javayant RENEWAL
Octavia MaletFranceXuxue Feng NEGOTIATION
Darci PoquetteSpainOnyama Limba PROPOSAL
Francesco ShinkoItalyOnyama Limba PROPOSAL
Ricardo GauchoBrazilAmy Elsner QUALIFIED
Johnson SergiItalyXuxue Feng UNQUALIFIED
Chavez BriddickItalyAsiya Javayant PROPOSAL
Sinclair WaycottItalyXuxue Feng UNQUALIFIED
Juan WieserCanadaAsiya Javayant UNQUALIFIED
Aditya KuskoAustraliaBernardo Dominic QUALIFIED
Sinclair WaycottSpainElwin Sharvill UNQUALIFIED
Jennifer AmigonFranceXuxue Feng NEW
Ricardo GauchoArgentinaAnna Fali PROPOSAL
Rodrigues CampainItalyAsiya Javayant RENEWAL
Tony FollerSpainOnyama Limba NEW
Adams MorascaRussiaXuxue Feng UNQUALIFIED
Darci PoquetteJapanXuxue Feng QUALIFIED
Leja CaldareraBrazilElwin Sharvill UNQUALIFIED
David DarakjyCanadaXuxue Feng NEGOTIATION
Tony FollerAustraliaAnna Fali NEGOTIATION
Rodrigues CampainCanadaBernardo Dominic UNQUALIFIED
David DarakjyUnited KingdomElwin Sharvill NEGOTIATION
Misaki RoysterItalyAnna Fali QUALIFIED

<style type="text/css">
    .ui-datatable-frozenlayout-left {
        width: 20%;
    }

    .ui-datatable-frozenlayout-right {
        width: 80%;
    }
</style>


<h:form>
    <div class="card">
        <h5 style="margin-top:0">Vertical</h5>
        <p:dataTable var="customer" value="#{dtScrollView.customers1}" scrollable="true" scrollHeight="250">
            <p:column headerText="Name" footerText="Name">
                <h:outputText value="#{customer.name}"/>
            </p:column>
            <p:column headerText="Country" footerText="Country">
                <h:outputText value="#{customer.country}"/>
            </p:column>
            <p:column headerText="Representative" footerText="Representative">
                <h:outputText value="#{customer.representative.name}"/>
            </p:column>
            <p:column headerText="Status" footerText="Status">
                <span class="customer-badge status-#{customer.status.name().toLowerCase()}">#{customer.status}</span>
            </p:column>
        </p:dataTable>
    </div>

    <div class="card">
        <h5>Horizontal</h5>
        <p:dataTable var="customer" value="#{dtScrollView.customers2}" scrollable="true" scrollWidth="600">
            <p:column headerText="Name" footerText="Name">
                <h:outputText value="#{customer.name}"/>
            </p:column>
            <p:column headerText="Country" footerText="Country">
                <h:outputText value="#{customer.country}"/>
            </p:column>
            <p:column headerText="Representative" footerText="Representative">
                <h:outputText value="#{customer.representative.name}"/>
            </p:column>
            <p:column headerText="Status" footerText="Status">
                <span class="customer-badge status-#{customer.status.name().toLowerCase()}">#{customer.status}</span>
            </p:column>
        </p:dataTable>
    </div>

    <div class="card">
        <h5>Horizontal and Vertical</h5>
        <p:dataTable var="customer" value="#{dtScrollView.customers3}" scrollable="true" scrollWidth="50%" scrollHeight="250">
            <p:column headerText="Id" footerText="Id">
                <h:outputText value="#{customer.id}"/>
            </p:column>
            <p:column headerText="Name" footerText="Name">
                <h:outputText value="#{customer.name}"/>
            </p:column>
            <p:column headerText="Country" footerText="Country">
                <h:outputText value="#{customer.country}"/>
            </p:column>
            <p:column headerText="Date" footerText="Date">
                <h:outputText value="#{customer.date}"/>
            </p:column>
            <p:column headerText="Company" footerText="Company">
                <h:outputText value="#{customer.company}"/>
            </p:column>
            <p:column headerText="Status" footerText="Status">
                <span class="customer-badge status-#{customer.status.name().toLowerCase()}">#{customer.status}</span>
            </p:column>
            <p:column headerText="Activity" footerText="Activity">
                <h:outputText value="#{customer.activity}"/>
            </p:column>
            <p:column headerText="Representative" footerText="Representative">
                <h:outputText value="#{customer.representative.name}"/>
            </p:column>
        </p:dataTable>
    </div>

    <div class="card">
        <h5>Frozen Rows</h5>
        <p:dataTable var="customer" value="#{dtScrollView.customers4}" scrollable="true" scrollHeight="250"
                     frozenRows="2">
            <p:column headerText="Name" footerText="Name">
                <h:outputText value="#{customer.name}"/>
            </p:column>
            <p:column headerText="Country" footerText="Country">
                <h:outputText value="#{customer.country}"/>
            </p:column>
            <p:column headerText="Representative" footerText="Representative">
                <h:outputText value="#{customer.representative.name}"/>
            </p:column>
            <p:column headerText="Status" footerText="Status">
                <span class="customer-badge status-#{customer.status.name().toLowerCase()}">#{customer.status}</span>
            </p:column>
        </p:dataTable>
    </div>

    <div class="card">
        <h5>Frozen Columns</h5>
        <p:dataTable var="customer" value="#{dtScrollView.customers5}" scrollable="true" scrollHeight="250"
                     scrollWidth="300" frozenColumns="1">
            <p:column headerText="Name" footerText="Name">
                <h:outputText value="#{customer.name}"/>
            </p:column>
            <p:column headerText="Id" footerText="Id">
                <h:outputText value="#{customer.id}"/>
            </p:column>
            <p:column headerText="Country" footerText="Country">
                <h:outputText value="#{customer.country}"/>
            </p:column>
            <p:column headerText="Date" footerText="Date">
                <h:outputText value="#{customer.date}"/>
            </p:column>
        </p:dataTable>
    </div>

    <div class="card">
        <h5>Virtual Scrolling - 20000 Rows</h5>
        <p:dataTable var="customer" value="#{dtScrollView.lazyModel}" scrollRows="20" scrollable="true"
                     virtualScroll="true" scrollHeight="200" rows="40" style="margin-bottom:0">
            <p:column headerText="Name" footerText="Name">
                <h:outputText value="#{customer.name}"/>
            </p:column>
            <p:column headerText="Country" footerText="Country">
                <h:outputText value="#{customer.country}"/>
            </p:column>
            <p:column headerText="Representative" footerText="Representative">
                <h:outputText value="#{customer.representative.name}"/>
            </p:column>
            <p:column headerText="Status" footerText="Status">
                <span class="customer-badge status-#{customer.status.name().toLowerCase()}">#{customer.status}</span>
            </p:column>
        </p:dataTable>
    </div>

</h:form>