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
Wickens NestleIndiaAnna Fali UNQUALIFIED
Wickens NestleJapanAmy Elsner NEGOTIATION
Stacey MacleadSpainBernardo Dominic NEGOTIATION
Isabel BowleyJapanIoni Bowcher QUALIFIED
Arvin AlbaresRussiaIoni Bowcher RENEWAL
Ricardo GauchoCanadaStephen Shaw NEGOTIATION
Faith GillianArgentinaElwin Sharvill RENEWAL
Silvio SlusarskiRussiaBernardo Dominic UNQUALIFIED
Francesco ShinkoRussiaAsiya Javayant NEGOTIATION
Johnson SergiItalyIoni Bowcher NEW
Leja CaldareraGermanyXuxue Feng UNQUALIFIED
Francesco ShinkoSpainElwin Sharvill NEW
Chavez BriddickAustraliaOnyama Limba PROPOSAL
Johnson SergiAustraliaStephen Shaw RENEWAL
Leon OldroydGermanyAsiya Javayant NEGOTIATION
Ricardo GauchoRussiaOnyama Limba RENEWAL
Jennifer AmigonCanadaAmy Elsner NEW
Arvin AlbaresBrazilAmy Elsner RENEWAL
Munro FerenczArgentinaElwin Sharvill UNQUALIFIED
Johnson SergiSpainIoni Bowcher RENEWAL
Clifford RimJapanElwin Sharvill RENEWAL
Sinclair WaycottBrazilIoni Bowcher UNQUALIFIED
Adams MorascaAustraliaIoni Bowcher QUALIFIED
Isabel BowleyAustraliaOnyama Limba NEGOTIATION
Sinclair WaycottCanadaIoni Bowcher PROPOSAL
Arvin AlbaresArgentinaIvan Magalhaes RENEWAL
Rodrigues CampainJapanStephen Shaw PROPOSAL
Claire TollnerBrazilAnna Fali QUALIFIED
Smith GlickIndiaOnyama Limba NEGOTIATION
Deepesh ChuiIndiaOnyama Limba PROPOSAL
Aika InouyeItalyAnna Fali RENEWAL
Darci PoquetteAustraliaXuxue Feng NEGOTIATION
Aditya KuskoGermanyAsiya Javayant NEGOTIATION
Octavia MaletFranceIoni Bowcher RENEWAL
Deepesh ChuiArgentinaStephen Shaw NEW
Murillo MaletUnited KingdomAnna Fali UNQUALIFIED
Antonio CaudyCanadaXuxue Feng RENEWAL
Juan WieserFranceElwin Sharvill UNQUALIFIED
Sinclair WaycottRussiaAnna Fali NEGOTIATION
Adams MorascaArgentinaOnyama Limba NEGOTIATION
Isabel BowleySpainOnyama Limba NEGOTIATION
Misaki RoysterUnited KingdomAsiya Javayant RENEWAL
Ashley DoeRussiaAnna Fali QUALIFIED
Jeanfrancois VenereUnited KingdomBernardo Dominic RENEWAL
Faith GillianSpainOnyama Limba QUALIFIED
Aika InouyeJapanIvan Magalhaes PROPOSAL
Arvin AlbaresJapanAsiya Javayant NEGOTIATION
Tony FollerItalyIoni Bowcher NEGOTIATION
Jeanfrancois VenereJapanElwin Sharvill NEW
Ricardo GauchoArgentinaAsiya Javayant NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Smith GlickIndiaOnyama Limba NEGOTIATION
Costa DilliardFranceOnyama Limba RENEWAL
Jefferson SchemmerRussiaBernardo Dominic PROPOSAL
Octavia MaletCanadaAsiya Javayant UNQUALIFIED
Maisha RulapaughSpainOnyama Limba UNQUALIFIED
Leon OldroydUnited KingdomAnna Fali RENEWAL
James ButtGermanyAsiya Javayant QUALIFIED
Izzy GarufiFranceAnna Fali UNQUALIFIED
James ButtSpainOnyama Limba UNQUALIFIED
Tony FollerArgentinaXuxue Feng NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000James ButtRussia2021-04-20Morlong Associates NEGOTIATION31Asiya Javayant
1001Ivar PaprockiArgentina2021-04-23Rangoni Of Florence QUALIFIED79Bernardo Dominic
1002Aika InouyeJapan2021-04-13Commercial Press RENEWAL97Stephen Shaw
1003Darci PoquetteJapan2021-04-25Rousseaux, Michael Esq RENEWAL22Anna Fali
1004Greenwood BologniaFrance2021-04-23Rousseaux, Michael Esq PROPOSAL54Bernardo Dominic
1005Murillo MaletSpain2021-04-09Chemel, James L Cpa NEGOTIATION6Onyama Limba
1006Jefferson SchemmerUnited Kingdom2021-04-10Morlong Associates RENEWAL82Amy Elsner
1007Arvin AlbaresJapan2021-05-03Printing Dimensions UNQUALIFIED93Onyama Limba
1008Darci PoquetteCanada2021-04-19Commercial Press QUALIFIED84Amy Elsner
1009Greenwood BologniaSpain2021-04-19Truhlar And Truhlar Attys RENEWAL19Ioni Bowcher
1010Claire TollnerAustralia2021-04-22Chemel, James L Cpa PROPOSAL59Stephen Shaw
1011Jefferson SchemmerItaly2021-04-19Commercial Press RENEWAL37Ivan Magalhaes
1012Stacey MacleadJapan2021-04-19Printing Dimensions RENEWAL34Xuxue Feng
1013Stacey MacleadIndia2021-04-26Chemel, James L Cpa PROPOSAL66Amy Elsner
1014Silvio SlusarskiFrance2021-04-22King, Christopher A Esq PROPOSAL60Stephen Shaw
1015Isabel BowleySpain2021-04-26Chapman, Ross E Esq RENEWAL57Ivan Magalhaes
1016Octavia MaletSpain2021-04-10Chapman, Ross E Esq RENEWAL69Amy Elsner
1017David DarakjySpain2021-05-05King, Christopher A Esq QUALIFIED73Asiya Javayant
1018Misaki RoysterSpain2021-04-16Truhlar And Truhlar Attys QUALIFIED97Xuxue Feng
1019Emily WhobreyIndia2021-05-01Commercial Press NEW78Xuxue Feng
1020Nicolas IturbideAustralia2021-04-15Commercial Press NEW25Stephen Shaw
1021Jefferson SchemmerArgentina2021-04-14King, Christopher A Esq RENEWAL12Bernardo Dominic
1022Ricardo GauchoItaly2021-04-13Chemel, James L Cpa RENEWAL38Anna Fali
1023Aruna FigeroaSpain2021-05-04Truhlar And Truhlar Attys RENEWAL18Elwin Sharvill
1024Ivar PaprockiIndia2021-04-27Feiner Bros RENEWAL95Elwin Sharvill
1025Costa DilliardIndia2021-04-30Benton, John B Jr PROPOSAL6Stephen Shaw
1026Julie StensethCanada2021-04-13Chemel, James L Cpa QUALIFIED60Elwin Sharvill
1027Tony FollerSpain2021-05-07Benton, John B Jr PROPOSAL57Ivan Magalhaes
1028Munro FerenczAustralia2021-05-02Feiner Bros UNQUALIFIED87Ivan Magalhaes
1029Aditya KuskoBrazil2021-04-12Rousseaux, Michael Esq RENEWAL47Elwin Sharvill
1030Ashley DoeUnited Kingdom2021-04-20King, Christopher A Esq UNQUALIFIED15Onyama Limba
1031Stacey MacleadItaly2021-05-04Commercial Press QUALIFIED18Onyama Limba
1032Silvio SlusarskiCanada2021-05-07Rangoni Of Florence QUALIFIED87Bernardo Dominic
1033Octavia MaletArgentina2021-04-13Dorl, James J Esq RENEWAL65Anna Fali
1034Morrow RutaRussia2021-04-13Buckley Miller Wright UNQUALIFIED57Amy Elsner
1035Ivar PaprockiSpain2021-05-02Chapman, Ross E Esq PROPOSAL11Onyama Limba
1036Leja CaldareraRussia2021-04-29Rousseaux, Michael Esq PROPOSAL44Elwin Sharvill
1037Arvin AlbaresJapan2021-04-09Rangoni Of Florence QUALIFIED30Onyama Limba
1038Stacey MacleadArgentina2021-04-21Rousseaux, Michael Esq PROPOSAL43Ivan Magalhaes
1039Chavez BriddickArgentina2021-04-19Buckley Miller Wright RENEWAL32Amy Elsner
1040Antonio CaudyIndia2021-04-16Feltz Printing Service UNQUALIFIED84Amy Elsner
1041David DarakjyIndia2021-04-21Commercial Press PROPOSAL43Onyama Limba
1042Emily WhobreyAustralia2021-04-25Chemel, James L Cpa QUALIFIED63Elwin Sharvill
1043Octavia MaletRussia2021-04-27Chemel, James L Cpa PROPOSAL46Amy Elsner
1044Wickens NestleRussia2021-04-23Chanay, Jeffrey A Esq RENEWAL73Anna Fali
1045Munro FerenczJapan2021-04-11Chapman, Ross E Esq NEW12Stephen Shaw
1046Maisha RulapaughArgentina2021-04-19Rousseaux, Michael Esq NEGOTIATION82Asiya Javayant
1047Alejandro PerinCanada2021-04-26Rousseaux, Michael Esq NEGOTIATION52Anna Fali
1048Jones VocelkaFrance2021-04-23Printing Dimensions QUALIFIED32Onyama Limba
1049Darci PoquetteItaly2021-04-26Printing Dimensions QUALIFIED90Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Juan WieserBrazilIoni Bowcher RENEWAL
Octavia MaletGermanyAsiya Javayant UNQUALIFIED
Wickens NestleCanadaOnyama Limba UNQUALIFIED
Costa DilliardIndiaBernardo Dominic PROPOSAL
Deepesh ChuiRussiaElwin Sharvill RENEWAL
Ricardo GauchoItalyElwin Sharvill NEW
Julie StensethGermanyAnna Fali NEW
Maria MarrierArgentinaAnna Fali PROPOSAL
Adams MorascaFranceAsiya Javayant NEGOTIATION
Sinclair WaycottItalyIvan Magalhaes PROPOSAL
Munro FerenczCanadaXuxue Feng QUALIFIED
James ButtSpainIvan Magalhaes QUALIFIED
Greenwood BologniaArgentinaIvan Magalhaes UNQUALIFIED
Wickens NestleAustraliaAsiya Javayant NEGOTIATION
Claire TollnerFranceAsiya Javayant NEGOTIATION
Maisha RulapaughCanadaOnyama Limba RENEWAL
Greenwood BologniaJapanElwin Sharvill RENEWAL
Jones VocelkaJapanIvan Magalhaes PROPOSAL
Mujtaba NickaArgentinaElwin Sharvill NEW
Jeanfrancois VenereJapanBernardo Dominic NEW
Aruna FigeroaCanadaOnyama Limba NEW
Greenwood BologniaIndiaStephen Shaw PROPOSAL
James ButtGermanyXuxue Feng QUALIFIED
Claire TollnerSpainXuxue Feng NEW
Maria MarrierIndiaIoni Bowcher PROPOSAL
Misaki RoysterRussiaBernardo Dominic NEW
Murillo MaletArgentinaAmy Elsner NEGOTIATION
Jennifer AmigonArgentinaOnyama Limba RENEWAL
Darci PoquetteGermanyAsiya Javayant NEW
Darci PoquetteUnited KingdomXuxue Feng QUALIFIED
Stacey MacleadIndiaIoni Bowcher NEW
Aditya KuskoJapanStephen Shaw PROPOSAL
Maria MarrierIndiaBernardo Dominic NEW
Mujtaba NickaCanadaStephen Shaw NEGOTIATION
Jennifer AmigonCanadaIvan Magalhaes QUALIFIED
Aika InouyeItalyAsiya Javayant UNQUALIFIED
Juan WieserRussiaAsiya Javayant QUALIFIED
Jones VocelkaFranceOnyama Limba RENEWAL
Francesco ShinkoUnited KingdomElwin Sharvill PROPOSAL
Octavia MaletArgentinaOnyama Limba RENEWAL
Stacey MacleadIndiaStephen Shaw PROPOSAL
Faith GillianGermanyElwin Sharvill NEGOTIATION
Claire TollnerSpainAsiya Javayant QUALIFIED
Kadeem FlosiUnited KingdomAsiya Javayant QUALIFIED
Juan WieserBrazilAmy Elsner NEGOTIATION
Munro FerenczSpainXuxue Feng NEW
Ricardo GauchoRussiaIoni Bowcher UNQUALIFIED
Julie StensethSpainIvan Magalhaes NEW
Tony FollerBrazilAsiya Javayant QUALIFIED
Nicolas IturbideCanadaXuxue Feng PROPOSAL
Frozen Columns
Name
Sinclair Waycott
Kadeem Flosi
Jefferson Schemmer
Misaki Royster
Emily Whobrey
Ricardo Gaucho
Salvatore Stockham
Adams Morasca
Antonio Caudy
Jefferson Schemmer
Greenwood Bolognia
Aika Inouye
Misaki Royster
Cody Saylors
Claire Tollner
Ricardo Gaucho
Jennifer Amigon
Nicolas Iturbide
Jennifer Amigon
Clifford Rim
Sinclair Waycott
Chavez Briddick
Juan Wieser
Salvatore Stockham
Stacey Maclead
Wickens Nestle
Morrow Ruta
Johnson Sergi
Maria Marrier
Chavez Briddick
Ashley Doe
Salvatore Stockham
Claire Tollner
Leon Oldroyd
Jennifer Amigon
Misaki Royster
Wickens Nestle
Tony Foller
Jones Vocelka
Jennifer Amigon
Claire Tollner
Ivar Paprocki
Sinclair Waycott
Faith Gillian
Chavez Briddick
Morrow Ruta
Stacey Maclead
Adams Morasca
Antonio Caudy
Kadeem Flosi
IdCountryDate
1000Japan2021-04-13
1001Germany2021-04-24
1002Argentina2021-05-04
1003Germany2021-04-18
1004Japan2021-05-02
1005United Kingdom2021-04-20
1006Italy2021-04-27
1007Brazil2021-04-15
1008Canada2021-05-05
1009Italy2021-04-22
1010Canada2021-04-23
1011Russia2021-04-27
1012Brazil2021-05-08
1013United Kingdom2021-04-29
1014Brazil2021-04-25
1015France2021-05-01
1016France2021-04-09
1017Argentina2021-04-10
1018Canada2021-04-10
1019United Kingdom2021-04-24
1020Australia2021-04-27
1021India2021-05-04
1022Brazil2021-04-20
1023Spain2021-04-13
1024Canada2021-04-14
1025Italy2021-04-16
1026Canada2021-05-08
1027Russia2021-04-17
1028Brazil2021-04-25
1029India2021-05-06
1030Australia2021-04-10
1031Spain2021-05-07
1032Spain2021-04-19
1033Spain2021-04-15
1034Australia2021-04-13
1035Russia2021-04-13
1036Australia2021-05-05
1037Canada2021-04-19
1038Spain2021-05-04
1039Spain2021-05-07
1040Japan2021-04-30
1041Argentina2021-04-30
1042Spain2021-05-03
1043Germany2021-04-10
1044Germany2021-04-19
1045Brazil2021-04-22
1046Australia2021-04-09
1047Japan2021-04-21
1048Argentina2021-04-11
1049Brazil2021-04-25
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Julie StensethIndiaElwin Sharvill PROPOSAL
Morrow RutaGermanyAmy Elsner NEW
Mujtaba NickaCanadaElwin Sharvill PROPOSAL
Ricardo GauchoAustraliaOnyama Limba UNQUALIFIED
Murillo MaletIndiaElwin Sharvill NEGOTIATION
Ricardo GauchoArgentinaXuxue Feng NEGOTIATION
Silvio SlusarskiGermanyStephen Shaw RENEWAL
Ivar PaprockiItalyAsiya Javayant RENEWAL
Johnson SergiIndiaXuxue Feng NEW
Juan WieserFranceElwin Sharvill PROPOSAL
Stacey MacleadFranceElwin Sharvill NEGOTIATION
Misaki RoysterSpainIoni Bowcher QUALIFIED
Adams MorascaCanadaIoni Bowcher QUALIFIED
Murillo MaletJapanOnyama Limba NEGOTIATION
Jones VocelkaIndiaAmy Elsner QUALIFIED
Munro FerenczAustraliaAnna Fali QUALIFIED
Juan WieserJapanIvan Magalhaes PROPOSAL
Kadeem FlosiUnited KingdomAsiya Javayant RENEWAL
Kadeem FlosiUnited KingdomAnna Fali RENEWAL
Smith GlickArgentinaAmy Elsner UNQUALIFIED
Octavia MaletSpainElwin Sharvill QUALIFIED
Ricardo GauchoItalyIvan Magalhaes UNQUALIFIED
Murillo MaletSpainXuxue Feng RENEWAL
Arvin AlbaresCanadaOnyama Limba NEW
Isabel BowleyRussiaAsiya Javayant NEW
Deepesh ChuiJapanAmy Elsner RENEWAL
Tony FollerIndiaIvan Magalhaes NEW
Emily WhobreyJapanXuxue Feng PROPOSAL
Mayumi KolmetzArgentinaAnna Fali RENEWAL
Claire TollnerArgentinaAmy Elsner NEGOTIATION
Kaitlin OstroskyItalyIvan Magalhaes RENEWAL
Greenwood BologniaBrazilOnyama Limba PROPOSAL
Smith GlickRussiaElwin Sharvill RENEWAL
Juan WieserGermanyBernardo Dominic UNQUALIFIED
Mujtaba NickaRussiaXuxue Feng NEW
Aruna FigeroaRussiaAmy Elsner PROPOSAL
Aruna FigeroaUnited KingdomIoni Bowcher RENEWAL
Misaki RoysterFranceAnna Fali RENEWAL
Isabel BowleySpainAnna Fali NEW
Cody SaylorsArgentinaElwin Sharvill PROPOSAL

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