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.

Bootstrap light blue and dark blue themes are also included in PrimeFaces 10.x builds for Elite subscribers.

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
Claire TollnerSpainAnna Fali NEW
Sinclair WaycottSpainAmy Elsner NEW
Claire TollnerIndiaAnna Fali UNQUALIFIED
Arvin AlbaresRussiaStephen Shaw PROPOSAL
Morrow RutaCanadaIvan Magalhaes PROPOSAL
Leon OldroydJapanIoni Bowcher UNQUALIFIED
Leon OldroydUnited KingdomAsiya Javayant QUALIFIED
Johnson SergiFranceXuxue Feng QUALIFIED
Mayumi KolmetzArgentinaAnna Fali NEGOTIATION
Maria MarrierRussiaStephen Shaw NEGOTIATION
Darci PoquetteCanadaIoni Bowcher NEW
Johnson SergiJapanStephen Shaw RENEWAL
Ivar PaprockiItalyBernardo Dominic RENEWAL
Nicolas IturbideCanadaBernardo Dominic NEW
Murillo MaletIndiaBernardo Dominic QUALIFIED
Francesco ShinkoItalyIvan Magalhaes UNQUALIFIED
Aruna FigeroaAustraliaAnna Fali QUALIFIED
Aika InouyeUnited KingdomOnyama Limba UNQUALIFIED
Julie StensethJapanOnyama Limba RENEWAL
Kadeem FlosiItalyXuxue Feng QUALIFIED
Murillo MaletItalyStephen Shaw QUALIFIED
Kaitlin OstroskyAustraliaStephen Shaw RENEWAL
Claire TollnerFranceAsiya Javayant UNQUALIFIED
Clifford RimBrazilElwin Sharvill UNQUALIFIED
Sinclair WaycottArgentinaIvan Magalhaes QUALIFIED
Faith GillianArgentinaIoni Bowcher NEW
Adams MorascaArgentinaAnna Fali UNQUALIFIED
Morrow RutaIndiaAsiya Javayant QUALIFIED
Deepesh ChuiArgentinaStephen Shaw NEW
Nicolas IturbideFranceBernardo Dominic RENEWAL
Mujtaba NickaSpainStephen Shaw NEGOTIATION
Jones VocelkaGermanyStephen Shaw RENEWAL
Johnson SergiBrazilAmy Elsner NEW
Aditya KuskoAustraliaStephen Shaw UNQUALIFIED
Faith GillianItalyIvan Magalhaes NEW
David DarakjyArgentinaXuxue Feng PROPOSAL
Francesco ShinkoCanadaAnna Fali QUALIFIED
Deepesh ChuiRussiaAsiya Javayant UNQUALIFIED
Cody SaylorsJapanIoni Bowcher NEGOTIATION
Maria MarrierSpainStephen Shaw NEGOTIATION
Maisha RulapaughJapanAnna Fali RENEWAL
Jefferson SchemmerItalyAsiya Javayant NEGOTIATION
Jones VocelkaArgentinaElwin Sharvill PROPOSAL
Aditya KuskoCanadaStephen Shaw NEGOTIATION
Greenwood BologniaGermanyStephen Shaw QUALIFIED
Rodrigues CampainCanadaXuxue Feng QUALIFIED
Darci PoquetteCanadaElwin Sharvill QUALIFIED
Maisha RulapaughRussiaBernardo Dominic NEW
Maisha RulapaughSpainAmy Elsner QUALIFIED
Octavia MaletGermanyXuxue Feng UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Kaitlin OstroskyCanadaIoni Bowcher PROPOSAL
Juan WieserBrazilIvan Magalhaes PROPOSAL
Kaitlin OstroskyCanadaAsiya Javayant PROPOSAL
Emily WhobreyBrazilXuxue Feng QUALIFIED
Kaitlin OstroskyBrazilBernardo Dominic NEGOTIATION
Nicolas IturbideArgentinaAsiya Javayant RENEWAL
Arvin AlbaresSpainStephen Shaw RENEWAL
Jones VocelkaRussiaAmy Elsner NEW
Silvio SlusarskiCanadaAmy Elsner PROPOSAL
Morrow RutaArgentinaAnna Fali RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aditya KuskoCanada2021-12-21Feiner Bros NEW88Elwin Sharvill
1001Juan WieserSpain2021-12-27Morlong Associates RENEWAL0Anna Fali
1002Mujtaba NickaCanada2021-12-17King, Christopher A Esq UNQUALIFIED8Ioni Bowcher
1003Maisha RulapaughSpain2021-12-24Dorl, James J Esq UNQUALIFIED46Bernardo Dominic
1004Maria MarrierArgentina2021-12-28Chapman, Ross E Esq NEGOTIATION40Ivan Magalhaes
1005Costa DilliardRussia2021-12-30Buckley Miller Wright NEW94Bernardo Dominic
1006Chavez BriddickCanada2021-12-29Dorl, James J Esq PROPOSAL68Ioni Bowcher
1007Greenwood BologniaBrazil2021-12-22Feiner Bros QUALIFIED55Elwin Sharvill
1008Kadeem FlosiArgentina2022-01-02Feiner Bros NEGOTIATION63Elwin Sharvill
1009Maria MarrierCanada2021-12-30Chanay, Jeffrey A Esq UNQUALIFIED16Bernardo Dominic
1010Antonio CaudyJapan2022-01-11Feltz Printing Service NEGOTIATION76Bernardo Dominic
1011Ivar PaprockiIndia2022-01-10Buckley Miller Wright PROPOSAL71Asiya Javayant
1012Adams MorascaRussia2021-12-30Feiner Bros NEGOTIATION52Onyama Limba
1013Wickens NestleRussia2022-01-03Dorl, James J Esq PROPOSAL71Ioni Bowcher
1014Ivar PaprockiIndia2022-01-02Rangoni Of Florence NEW21Amy Elsner
1015David DarakjyIndia2022-01-02Rousseaux, Michael Esq UNQUALIFIED42Asiya Javayant
1016Juan WieserAustralia2021-12-17Benton, John B Jr PROPOSAL71Elwin Sharvill
1017Mujtaba NickaRussia2022-01-12Chapman, Ross E Esq NEGOTIATION85Elwin Sharvill
1018Tony FollerFrance2021-12-29Printing Dimensions RENEWAL38Onyama Limba
1019Alejandro PerinUnited Kingdom2022-01-06Rangoni Of Florence QUALIFIED94Amy Elsner
1020Nicolas IturbideFrance2022-01-04King, Christopher A Esq PROPOSAL58Bernardo Dominic
1021Misaki RoysterGermany2021-12-26Morlong Associates RENEWAL12Amy Elsner
1022Murillo MaletBrazil2021-12-28Buckley Miller Wright UNQUALIFIED78Xuxue Feng
1023Leon OldroydArgentina2021-12-27Printing Dimensions NEW2Ivan Magalhaes
1024Leon OldroydIndia2022-01-05King, Christopher A Esq PROPOSAL65Xuxue Feng
1025Faith GillianRussia2022-01-02Benton, John B Jr RENEWAL2Stephen Shaw
1026Rodrigues CampainItaly2022-01-10Truhlar And Truhlar Attys RENEWAL63Ioni Bowcher
1027Emily WhobreyItaly2022-01-04Buckley Miller Wright RENEWAL5Xuxue Feng
1028Ivar PaprockiSpain2021-12-27Printing Dimensions RENEWAL25Elwin Sharvill
1029Wickens NestleRussia2022-01-08Morlong Associates NEW41Ivan Magalhaes
1030Alejandro PerinItaly2022-01-05Morlong Associates NEW65Asiya Javayant
1031Emily WhobreyUnited Kingdom2021-12-20Chapman, Ross E Esq UNQUALIFIED48Anna Fali
1032Darci PoquetteCanada2021-12-21King, Christopher A Esq NEW87Bernardo Dominic
1033Aika InouyeGermany2021-12-18Feltz Printing Service UNQUALIFIED99Ioni Bowcher
1034Julie StensethBrazil2022-01-08Truhlar And Truhlar Attys PROPOSAL58Elwin Sharvill
1035Claire TollnerFrance2022-01-09Morlong Associates QUALIFIED45Onyama Limba
1036Izzy GarufiIndia2022-01-09Feltz Printing Service PROPOSAL49Onyama Limba
1037Rodrigues CampainIndia2022-01-14Feltz Printing Service NEGOTIATION88Anna Fali
1038Jeanfrancois VenereJapan2022-01-12Chemel, James L Cpa PROPOSAL25Amy Elsner
1039James ButtSpain2022-01-12Buckley Miller Wright UNQUALIFIED34Xuxue Feng
1040Octavia MaletGermany2022-01-06Chapman, Ross E Esq QUALIFIED42Elwin Sharvill
1041David DarakjySpain2021-12-18Benton, John B Jr RENEWAL28Elwin Sharvill
1042Claire TollnerArgentina2022-01-11Benton, John B Jr NEGOTIATION81Ivan Magalhaes
1043Morrow RutaRussia2021-12-24Rousseaux, Michael Esq RENEWAL14Ioni Bowcher
1044Clifford RimJapan2022-01-04Benton, John B Jr PROPOSAL69Xuxue Feng
1045Aditya KuskoIndia2021-12-31Buckley Miller Wright QUALIFIED97Ioni Bowcher
1046Sinclair WaycottFrance2021-12-19Dorl, James J Esq NEW73Anna Fali
1047Leon OldroydFrance2021-12-29Feltz Printing Service UNQUALIFIED53Xuxue Feng
1048Chavez BriddickSpain2022-01-11Feltz Printing Service NEGOTIATION48Onyama Limba
1049Deepesh ChuiSpain2022-01-12Rangoni Of Florence PROPOSAL71Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Chavez BriddickFranceBernardo Dominic NEW
Jefferson SchemmerJapanOnyama Limba NEGOTIATION
Jones VocelkaAustraliaIoni Bowcher NEGOTIATION
Greenwood BologniaFranceAsiya Javayant NEGOTIATION
Jeanfrancois VenereUnited KingdomAmy Elsner QUALIFIED
Chavez BriddickGermanyStephen Shaw NEW
Silvio SlusarskiBrazilOnyama Limba UNQUALIFIED
Mujtaba NickaRussiaIoni Bowcher RENEWAL
Murillo MaletIndiaStephen Shaw NEW
Morrow RutaJapanIoni Bowcher NEGOTIATION
Alejandro PerinArgentinaElwin Sharvill RENEWAL
Silvio SlusarskiJapanIvan Magalhaes QUALIFIED
Kadeem FlosiIndiaIvan Magalhaes UNQUALIFIED
James ButtArgentinaAnna Fali RENEWAL
Alejandro PerinGermanyBernardo Dominic NEGOTIATION
Murillo MaletBrazilIvan Magalhaes NEGOTIATION
Kadeem FlosiIndiaAsiya Javayant NEW
Julie StensethArgentinaAmy Elsner QUALIFIED
Mujtaba NickaIndiaAmy Elsner PROPOSAL
Antonio CaudyItalyXuxue Feng UNQUALIFIED
Deepesh ChuiGermanyAsiya Javayant NEW
Ashley DoeJapanBernardo Dominic RENEWAL
Maria MarrierBrazilXuxue Feng PROPOSAL
Maisha RulapaughAustraliaXuxue Feng RENEWAL
Arvin AlbaresArgentinaIvan Magalhaes UNQUALIFIED
Morrow RutaIndiaElwin Sharvill NEW
Emily WhobreyGermanyElwin Sharvill PROPOSAL
Costa DilliardJapanIvan Magalhaes QUALIFIED
Izzy GarufiGermanyStephen Shaw NEGOTIATION
Antonio CaudyGermanyIoni Bowcher PROPOSAL
Deepesh ChuiArgentinaAnna Fali NEGOTIATION
Izzy GarufiRussiaElwin Sharvill NEW
Kaitlin OstroskyAustraliaBernardo Dominic NEW
Sinclair WaycottIndiaStephen Shaw NEW
Sinclair WaycottCanadaOnyama Limba RENEWAL
Aruna FigeroaBrazilIoni Bowcher NEGOTIATION
Costa DilliardGermanyAnna Fali UNQUALIFIED
James ButtCanadaAmy Elsner QUALIFIED
Aditya KuskoBrazilBernardo Dominic NEW
Ricardo GauchoSpainXuxue Feng RENEWAL
Maisha RulapaughItalyStephen Shaw RENEWAL
Isabel BowleyFranceIoni Bowcher RENEWAL
Maisha RulapaughSpainAsiya Javayant RENEWAL
Johnson SergiBrazilAsiya Javayant NEGOTIATION
Maria MarrierItalyIoni Bowcher NEW
Murillo MaletCanadaElwin Sharvill PROPOSAL
Wickens NestleAustraliaAsiya Javayant QUALIFIED
Cody SaylorsAustraliaStephen Shaw NEGOTIATION
Arvin AlbaresFranceOnyama Limba NEGOTIATION
Jones VocelkaGermanyIoni Bowcher NEW
Frozen Columns
Name
Octavia Malet
Darci Poquette
Antonio Caudy
Ashley Doe
Misaki Royster
Kadeem Flosi
Emily Whobrey
Morrow Ruta
Claire Tollner
Kaitlin Ostrosky
Julie Stenseth
Sinclair Waycott
Munro Ferencz
Maria Marrier
Kadeem Flosi
Misaki Royster
Ashley Doe
Mujtaba Nicka
Silvio Slusarski
Jefferson Schemmer
Murillo Malet
Silvio Slusarski
Wickens Nestle
Arvin Albares
Emily Whobrey
Octavia Malet
Izzy Garufi
Johnson Sergi
Jeanfrancois Venere
Chavez Briddick
Sinclair Waycott
Tony Foller
Faith Gillian
Ricardo Gaucho
Maria Marrier
Costa Dilliard
Rodrigues Campain
Ivar Paprocki
Juan Wieser
Antonio Caudy
Isabel Bowley
Wickens Nestle
Adams Morasca
Kadeem Flosi
Maisha Rulapaugh
Faith Gillian
Cody Saylors
Kadeem Flosi
Silvio Slusarski
Mujtaba Nicka
IdCountryDate
1000France2021-12-19
1001Germany2021-12-25
1002United Kingdom2021-12-17
1003Japan2022-01-08
1004Russia2021-12-30
1005France2021-12-20
1006Germany2021-12-23
1007Japan2022-01-07
1008Canada2021-12-20
1009Brazil2021-12-30
1010Argentina2021-12-25
1011Argentina2022-01-05
1012India2021-12-18
1013Germany2021-12-24
1014Russia2022-01-06
1015Argentina2021-12-30
1016Russia2022-01-14
1017Spain2022-01-03
1018United Kingdom2022-01-02
1019Canada2022-01-02
1020Japan2022-01-07
1021Argentina2021-12-19
1022Germany2022-01-01
1023Spain2022-01-05
1024India2022-01-04
1025Italy2022-01-09
1026France2021-12-25
1027Spain2022-01-08
1028Brazil2021-12-23
1029Russia2021-12-29
1030Argentina2022-01-04
1031Germany2022-01-03
1032Germany2021-12-17
1033Australia2021-12-26
1034Argentina2022-01-02
1035Russia2022-01-07
1036Canada2022-01-15
1037Germany2022-01-09
1038Brazil2021-12-24
1039India2022-01-07
1040Spain2021-12-24
1041Canada2021-12-22
1042Spain2021-12-27
1043Canada2021-12-23
1044Australia2022-01-04
1045France2021-12-26
1046Australia2022-01-13
1047Brazil2022-01-04
1048Russia2022-01-06
1049Japan2021-12-28
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Octavia MaletGermanyOnyama Limba UNQUALIFIED
Ashley DoeUnited KingdomAnna Fali QUALIFIED
Juan WieserItalyAnna Fali NEGOTIATION
Munro FerenczAustraliaAmy Elsner RENEWAL
Aditya KuskoFranceBernardo Dominic PROPOSAL
Wickens NestleJapanIoni Bowcher NEGOTIATION
Misaki RoysterUnited KingdomAmy Elsner NEGOTIATION
Leja CaldareraRussiaIoni Bowcher NEW
James ButtSpainBernardo Dominic NEW
Francesco ShinkoItalyStephen Shaw RENEWAL
Clifford RimCanadaAsiya Javayant PROPOSAL
Kadeem FlosiUnited KingdomStephen Shaw QUALIFIED
Mayumi KolmetzBrazilIvan Magalhaes RENEWAL
Kaitlin OstroskyUnited KingdomBernardo Dominic UNQUALIFIED
Ricardo GauchoUnited KingdomAsiya Javayant NEW
Ricardo GauchoCanadaIoni Bowcher NEGOTIATION
Kaitlin OstroskyUnited KingdomStephen Shaw RENEWAL
Greenwood BologniaSpainAnna Fali QUALIFIED
Juan WieserUnited KingdomAsiya Javayant RENEWAL
Ivar PaprockiFranceXuxue Feng NEGOTIATION
Julie StensethItalyAmy Elsner NEGOTIATION
Johnson SergiGermanyBernardo Dominic RENEWAL
Sinclair WaycottGermanyOnyama Limba RENEWAL
Maria MarrierFranceIvan Magalhaes NEGOTIATION
Faith GillianBrazilAmy Elsner QUALIFIED
Maisha RulapaughUnited KingdomIoni Bowcher NEGOTIATION
Izzy GarufiFranceAsiya Javayant UNQUALIFIED
Misaki RoysterIndiaAmy Elsner NEGOTIATION
Deepesh ChuiFranceXuxue Feng NEGOTIATION
Nicolas IturbideRussiaElwin Sharvill NEW
Octavia MaletRussiaElwin Sharvill PROPOSAL
Francesco ShinkoItalyAmy Elsner PROPOSAL
Mujtaba NickaBrazilIvan Magalhaes QUALIFIED
Ivar PaprockiFranceElwin Sharvill UNQUALIFIED
Aditya KuskoUnited KingdomAmy Elsner NEGOTIATION
Cody SaylorsJapanIvan Magalhaes NEGOTIATION
Mujtaba NickaRussiaAsiya Javayant QUALIFIED
Darci PoquetteAustraliaIvan Magalhaes RENEWAL
Costa DilliardJapanStephen Shaw RENEWAL
Mayumi KolmetzItalyAnna Fali 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>

Session expired

Reloading page

Message:
StackTrace: