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
Rodrigues CampainFranceStephen Shaw QUALIFIED
Darci PoquetteFranceBernardo Dominic NEW
Cody SaylorsIndiaAsiya Javayant QUALIFIED
Cody SaylorsBrazilElwin Sharvill NEGOTIATION
Greenwood BologniaBrazilIvan Magalhaes NEW
Jefferson SchemmerJapanAnna Fali PROPOSAL
Wickens NestleSpainStephen Shaw QUALIFIED
Ivar PaprockiItalyAnna Fali NEW
Silvio SlusarskiIndiaXuxue Feng NEGOTIATION
Silvio SlusarskiFranceOnyama Limba QUALIFIED
Wickens NestleItalyBernardo Dominic PROPOSAL
Costa DilliardFranceElwin Sharvill QUALIFIED
Kadeem FlosiItalyAnna Fali UNQUALIFIED
Ashley DoeRussiaIvan Magalhaes UNQUALIFIED
David DarakjyItalyIoni Bowcher NEW
Aditya KuskoSpainIvan Magalhaes NEGOTIATION
Nicolas IturbideFranceBernardo Dominic QUALIFIED
Faith GillianUnited KingdomIoni Bowcher QUALIFIED
Mujtaba NickaSpainAmy Elsner RENEWAL
Leon OldroydAustraliaOnyama Limba RENEWAL
Rodrigues CampainCanadaOnyama Limba QUALIFIED
Smith GlickItalyAnna Fali QUALIFIED
Chavez BriddickRussiaAnna Fali QUALIFIED
Julie StensethFranceAmy Elsner RENEWAL
Salvatore StockhamGermanyIvan Magalhaes RENEWAL
Tony FollerGermanyIoni Bowcher RENEWAL
Juan WieserItalyBernardo Dominic QUALIFIED
Izzy GarufiIndiaStephen Shaw QUALIFIED
David DarakjyJapanAsiya Javayant NEGOTIATION
Ivar PaprockiIndiaXuxue Feng RENEWAL
Ivar PaprockiUnited KingdomAmy Elsner PROPOSAL
Munro FerenczGermanyIvan Magalhaes QUALIFIED
Jones VocelkaItalyAmy Elsner RENEWAL
Munro FerenczUnited KingdomOnyama Limba RENEWAL
Rodrigues CampainAustraliaAsiya Javayant UNQUALIFIED
Nicolas IturbideAustraliaXuxue Feng NEW
Aruna FigeroaRussiaAnna Fali PROPOSAL
Sinclair WaycottSpainAmy Elsner QUALIFIED
Arvin AlbaresFranceAsiya Javayant UNQUALIFIED
Claire TollnerJapanIoni Bowcher PROPOSAL
Smith GlickGermanyAnna Fali NEGOTIATION
Silvio SlusarskiItalyStephen Shaw UNQUALIFIED
Johnson SergiJapanAmy Elsner QUALIFIED
Chavez BriddickGermanyOnyama Limba UNQUALIFIED
Morrow RutaArgentinaIvan Magalhaes PROPOSAL
Sinclair WaycottRussiaIvan Magalhaes NEW
Jefferson SchemmerBrazilIvan Magalhaes UNQUALIFIED
Julie StensethFranceIoni Bowcher RENEWAL
Jefferson SchemmerFranceAsiya Javayant UNQUALIFIED
Ricardo GauchoGermanyXuxue Feng NEW
Horizontal
NameCountryRepresentativeStatus
Misaki RoysterArgentinaOnyama Limba UNQUALIFIED
Jones VocelkaSpainAnna Fali PROPOSAL
Nicolas IturbideJapanAsiya Javayant NEGOTIATION
Mujtaba NickaFranceXuxue Feng NEGOTIATION
David DarakjyBrazilXuxue Feng NEW
Faith GillianArgentinaXuxue Feng RENEWAL
Izzy GarufiCanadaStephen Shaw UNQUALIFIED
Adams MorascaFranceElwin Sharvill PROPOSAL
Wickens NestleArgentinaXuxue Feng QUALIFIED
Salvatore StockhamFranceOnyama Limba NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Maisha RulapaughAustralia2021-04-04Chanay, Jeffrey A Esq RENEWAL69Ioni Bowcher
1001Jones VocelkaUnited Kingdom2021-03-25Benton, John B Jr UNQUALIFIED59Elwin Sharvill
1002Mayumi KolmetzGermany2021-03-22Benton, John B Jr RENEWAL1Stephen Shaw
1003Nicolas IturbideSpain2021-04-07Buckley Miller Wright NEW0Bernardo Dominic
1004Rodrigues CampainAustralia2021-04-14Chapman, Ross E Esq NEGOTIATION12Bernardo Dominic
1005Ashley DoeIndia2021-04-06Truhlar And Truhlar Attys NEW34Asiya Javayant
1006Sinclair WaycottRussia2021-04-01Feiner Bros QUALIFIED32Ivan Magalhaes
1007Sinclair WaycottJapan2021-04-12Chemel, James L Cpa RENEWAL29Ivan Magalhaes
1008Cody SaylorsGermany2021-03-30Commercial Press PROPOSAL28Stephen Shaw
1009Mayumi KolmetzBrazil2021-04-02Printing Dimensions NEGOTIATION66Anna Fali
1010Claire TollnerCanada2021-04-17Chanay, Jeffrey A Esq RENEWAL25Elwin Sharvill
1011Jennifer AmigonItaly2021-04-15Printing Dimensions NEGOTIATION97Asiya Javayant
1012Salvatore StockhamIndia2021-03-29Truhlar And Truhlar Attys UNQUALIFIED66Asiya Javayant
1013Deepesh ChuiJapan2021-03-21Feiner Bros NEGOTIATION21Bernardo Dominic
1014Darci PoquetteJapan2021-03-21Chanay, Jeffrey A Esq NEGOTIATION20Stephen Shaw
1015Jennifer AmigonCanada2021-04-11Benton, John B Jr RENEWAL17Bernardo Dominic
1016James ButtBrazil2021-03-23Feltz Printing Service RENEWAL47Xuxue Feng
1017Izzy GarufiArgentina2021-04-16Chanay, Jeffrey A Esq NEGOTIATION7Ivan Magalhaes
1018Salvatore StockhamJapan2021-04-17Printing Dimensions PROPOSAL73Elwin Sharvill
1019Izzy GarufiCanada2021-03-22Feltz Printing Service UNQUALIFIED61Amy Elsner
1020Cody SaylorsJapan2021-03-26Morlong Associates NEGOTIATION86Stephen Shaw
1021Leon OldroydJapan2021-04-03Morlong Associates PROPOSAL88Ioni Bowcher
1022Rodrigues CampainAustralia2021-03-27Chapman, Ross E Esq NEGOTIATION92Xuxue Feng
1023Johnson SergiBrazil2021-03-21Feiner Bros PROPOSAL63Onyama Limba
1024Clifford RimCanada2021-04-02Chanay, Jeffrey A Esq NEW67Xuxue Feng
1025Misaki RoysterItaly2021-04-12Rousseaux, Michael Esq RENEWAL3Stephen Shaw
1026Faith GillianUnited Kingdom2021-03-24Chemel, James L Cpa NEW26Ivan Magalhaes
1027Maisha RulapaughSpain2021-04-06Rousseaux, Michael Esq NEGOTIATION16Bernardo Dominic
1028Faith GillianUnited Kingdom2021-04-17Buckley Miller Wright PROPOSAL38Anna Fali
1029Jefferson SchemmerAustralia2021-04-05Truhlar And Truhlar Attys UNQUALIFIED24Ioni Bowcher
1030Mujtaba NickaAustralia2021-04-16Morlong Associates UNQUALIFIED96Elwin Sharvill
1031Sinclair WaycottSpain2021-04-09Truhlar And Truhlar Attys NEGOTIATION57Ioni Bowcher
1032Adams MorascaArgentina2021-04-12Truhlar And Truhlar Attys NEGOTIATION36Bernardo Dominic
1033Ivar PaprockiArgentina2021-03-26Commercial Press RENEWAL61Onyama Limba
1034Maisha RulapaughArgentina2021-04-11Truhlar And Truhlar Attys QUALIFIED86Anna Fali
1035Ashley DoeJapan2021-03-30Rangoni Of Florence PROPOSAL25Xuxue Feng
1036Aditya KuskoJapan2021-03-22King, Christopher A Esq NEW11Ivan Magalhaes
1037Mujtaba NickaBrazil2021-03-21Rangoni Of Florence QUALIFIED62Ioni Bowcher
1038Izzy GarufiBrazil2021-04-07Morlong Associates UNQUALIFIED70Xuxue Feng
1039Jones VocelkaArgentina2021-03-30King, Christopher A Esq QUALIFIED69Ioni Bowcher
1040Emily WhobreyCanada2021-03-24Feiner Bros UNQUALIFIED10Elwin Sharvill
1041Leja CaldareraGermany2021-04-12King, Christopher A Esq NEW19Ioni Bowcher
1042Morrow RutaGermany2021-03-28Rangoni Of Florence NEGOTIATION88Ioni Bowcher
1043Arvin AlbaresFrance2021-03-23Buckley Miller Wright RENEWAL93Stephen Shaw
1044Aruna FigeroaFrance2021-04-02Morlong Associates QUALIFIED30Amy Elsner
1045Jeanfrancois VenereFrance2021-04-14Commercial Press UNQUALIFIED34Stephen Shaw
1046Ivar PaprockiGermany2021-03-26Rousseaux, Michael Esq NEGOTIATION17Bernardo Dominic
1047Chavez BriddickGermany2021-04-06Printing Dimensions QUALIFIED90Anna Fali
1048Silvio SlusarskiSpain2021-03-28Truhlar And Truhlar Attys PROPOSAL73Xuxue Feng
1049Emily WhobreyAustralia2021-04-10Chanay, Jeffrey A Esq NEW94Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Arvin AlbaresRussiaAmy Elsner RENEWAL
Octavia MaletCanadaIvan Magalhaes UNQUALIFIED
Mujtaba NickaAustraliaStephen Shaw UNQUALIFIED
Smith GlickArgentinaOnyama Limba UNQUALIFIED
Deepesh ChuiJapanAnna Fali UNQUALIFIED
Maria MarrierUnited KingdomElwin Sharvill PROPOSAL
Salvatore StockhamFranceElwin Sharvill NEGOTIATION
Chavez BriddickUnited KingdomAnna Fali RENEWAL
Jeanfrancois VenereAustraliaOnyama Limba PROPOSAL
Salvatore StockhamUnited KingdomAsiya Javayant NEW
Nicolas IturbideAustraliaAnna Fali RENEWAL
Rodrigues CampainRussiaXuxue Feng QUALIFIED
Wickens NestleSpainIoni Bowcher NEW
Jennifer AmigonGermanyStephen Shaw RENEWAL
Faith GillianBrazilStephen Shaw UNQUALIFIED
Munro FerenczRussiaBernardo Dominic RENEWAL
Adams MorascaItalyIvan Magalhaes NEGOTIATION
Rodrigues CampainAustraliaStephen Shaw NEW
Juan WieserFranceIoni Bowcher NEW
Leon OldroydAustraliaIoni Bowcher PROPOSAL
Wickens NestleAustraliaAsiya Javayant RENEWAL
Octavia MaletFranceStephen Shaw QUALIFIED
Morrow RutaUnited KingdomOnyama Limba NEW
Ricardo GauchoItalyIvan Magalhaes QUALIFIED
Wickens NestleItalyElwin Sharvill NEW
Johnson SergiGermanyElwin Sharvill NEGOTIATION
Faith GillianFranceIoni Bowcher UNQUALIFIED
Alejandro PerinAustraliaBernardo Dominic NEW
Murillo MaletBrazilIvan Magalhaes PROPOSAL
James ButtItalyAnna Fali UNQUALIFIED
Nicolas IturbideIndiaBernardo Dominic UNQUALIFIED
Deepesh ChuiFranceAsiya Javayant UNQUALIFIED
Octavia MaletJapanAsiya Javayant PROPOSAL
Maisha RulapaughSpainAmy Elsner QUALIFIED
Nicolas IturbideBrazilOnyama Limba NEGOTIATION
Jeanfrancois VenereRussiaStephen Shaw RENEWAL
Jones VocelkaCanadaXuxue Feng QUALIFIED
Jefferson SchemmerUnited KingdomAmy Elsner QUALIFIED
Mujtaba NickaGermanyXuxue Feng QUALIFIED
Salvatore StockhamFranceAnna Fali NEGOTIATION
Kaitlin OstroskyBrazilStephen Shaw NEW
Ivar PaprockiBrazilOnyama Limba PROPOSAL
Ashley DoeIndiaStephen Shaw NEGOTIATION
Rodrigues CampainRussiaAsiya Javayant NEW
Smith GlickIndiaIoni Bowcher QUALIFIED
Nicolas IturbideFranceAmy Elsner PROPOSAL
Maria MarrierBrazilIvan Magalhaes NEW
Nicolas IturbideCanadaOnyama Limba PROPOSAL
Adams MorascaUnited KingdomIoni Bowcher RENEWAL
Juan WieserJapanOnyama Limba NEGOTIATION
Frozen Columns
Name
Silvio Slusarski
Adams Morasca
Misaki Royster
Aika Inouye
Ivar Paprocki
Sinclair Waycott
Greenwood Bolognia
Nicolas Iturbide
Ricardo Gaucho
Leja Caldarera
Julie Stenseth
Rodrigues Campain
Faith Gillian
Jefferson Schemmer
Johnson Sergi
Munro Ferencz
Jones Vocelka
Misaki Royster
Leja Caldarera
Jennifer Amigon
Misaki Royster
Kadeem Flosi
Mujtaba Nicka
Murillo Malet
Juan Wieser
Darci Poquette
Jeanfrancois Venere
Nicolas Iturbide
Ricardo Gaucho
Francesco Shinko
Wickens Nestle
Aruna Figeroa
Mayumi Kolmetz
Jeanfrancois Venere
Leja Caldarera
Ricardo Gaucho
Rodrigues Campain
Costa Dilliard
Aika Inouye
Francesco Shinko
Munro Ferencz
Arvin Albares
Nicolas Iturbide
Clifford Rim
Ricardo Gaucho
Leon Oldroyd
Jeanfrancois Venere
Leja Caldarera
Isabel Bowley
Johnson Sergi
IdCountryDate
1000Italy2021-03-22
1001Russia2021-04-01
1002France2021-04-18
1003India2021-04-10
1004Italy2021-04-14
1005Spain2021-04-19
1006France2021-04-11
1007France2021-04-11
1008United Kingdom2021-04-15
1009Australia2021-03-26
1010Brazil2021-03-28
1011Argentina2021-03-23
1012Australia2021-04-01
1013Italy2021-04-13
1014France2021-04-04
1015Italy2021-04-06
1016India2021-04-14
1017France2021-03-27
1018Japan2021-04-17
1019France2021-04-02
1020France2021-04-08
1021Spain2021-03-29
1022Australia2021-03-22
1023France2021-04-12
1024Argentina2021-04-05
1025Argentina2021-03-26
1026France2021-04-15
1027United Kingdom2021-04-03
1028Canada2021-03-27
1029India2021-03-30
1030Brazil2021-03-25
1031Canada2021-04-08
1032India2021-03-26
1033Argentina2021-04-11
1034Brazil2021-03-31
1035Japan2021-03-29
1036Germany2021-04-14
1037France2021-04-05
1038Japan2021-04-19
1039United Kingdom2021-03-28
1040Brazil2021-04-13
1041United Kingdom2021-04-15
1042India2021-04-12
1043Spain2021-04-17
1044Russia2021-04-11
1045Argentina2021-04-05
1046Spain2021-04-14
1047Canada2021-03-30
1048Germany2021-03-25
1049Spain2021-04-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Cody SaylorsArgentinaAmy Elsner UNQUALIFIED
Cody SaylorsCanadaAsiya Javayant UNQUALIFIED
Leon OldroydJapanBernardo Dominic NEGOTIATION
Kaitlin OstroskySpainElwin Sharvill NEGOTIATION
Antonio CaudyJapanAnna Fali NEGOTIATION
Jennifer AmigonAustraliaXuxue Feng RENEWAL
Aditya KuskoItalyBernardo Dominic RENEWAL
Stacey MacleadSpainBernardo Dominic QUALIFIED
Faith GillianCanadaAnna Fali NEW
Claire TollnerJapanIoni Bowcher NEGOTIATION
Costa DilliardGermanyIvan Magalhaes UNQUALIFIED
Jones VocelkaIndiaAsiya Javayant NEGOTIATION
Julie StensethBrazilIoni Bowcher NEW
Smith GlickCanadaElwin Sharvill QUALIFIED
Isabel BowleyCanadaIoni Bowcher UNQUALIFIED
Misaki RoysterRussiaAsiya Javayant PROPOSAL
Aika InouyeRussiaOnyama Limba PROPOSAL
Leon OldroydItalyBernardo Dominic QUALIFIED
Izzy GarufiBrazilIoni Bowcher UNQUALIFIED
Munro FerenczGermanyBernardo Dominic QUALIFIED
Izzy GarufiFranceStephen Shaw NEW
Wickens NestleRussiaXuxue Feng PROPOSAL
Clifford RimFranceIoni Bowcher RENEWAL
Smith GlickIndiaIoni Bowcher QUALIFIED
Arvin AlbaresUnited KingdomOnyama Limba QUALIFIED
Kadeem FlosiArgentinaAnna Fali PROPOSAL
Kaitlin OstroskySpainXuxue Feng PROPOSAL
Costa DilliardAustraliaIvan Magalhaes NEW
Izzy GarufiGermanyBernardo Dominic QUALIFIED
Octavia MaletGermanyStephen Shaw PROPOSAL
Morrow RutaGermanyOnyama Limba NEW
Munro FerenczSpainOnyama Limba UNQUALIFIED
Mujtaba NickaBrazilOnyama Limba NEGOTIATION
Aditya KuskoArgentinaXuxue Feng UNQUALIFIED
Chavez BriddickCanadaAsiya Javayant UNQUALIFIED
Juan WieserUnited KingdomBernardo Dominic NEGOTIATION
Isabel BowleyFranceAnna Fali PROPOSAL
Arvin AlbaresItalyAnna Fali QUALIFIED
Jefferson SchemmerSpainBernardo Dominic PROPOSAL
Octavia MaletUnited KingdomElwin Sharvill NEGOTIATION

<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>