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
Sinclair WaycottGermanyBernardo Dominic PROPOSAL
Alejandro PerinJapanAmy Elsner NEW
Misaki RoysterFranceAnna Fali UNQUALIFIED
Wickens NestleItalyStephen Shaw PROPOSAL
Tony FollerArgentinaOnyama Limba NEGOTIATION
Ricardo GauchoAustraliaElwin Sharvill PROPOSAL
Costa DilliardAustraliaAsiya Javayant NEW
Nicolas IturbideArgentinaBernardo Dominic UNQUALIFIED
Ricardo GauchoRussiaBernardo Dominic UNQUALIFIED
Ivar PaprockiArgentinaElwin Sharvill PROPOSAL
Silvio SlusarskiAustraliaBernardo Dominic RENEWAL
Aruna FigeroaItalyAmy Elsner NEGOTIATION
Leon OldroydJapanAnna Fali RENEWAL
Maria MarrierSpainStephen Shaw NEGOTIATION
Maisha RulapaughJapanAnna Fali RENEWAL
Aditya KuskoSpainAnna Fali RENEWAL
Ashley DoeGermanyAmy Elsner NEW
Mayumi KolmetzSpainAmy Elsner RENEWAL
Deepesh ChuiJapanElwin Sharvill UNQUALIFIED
Salvatore StockhamUnited KingdomAsiya Javayant UNQUALIFIED
Jefferson SchemmerAustraliaAnna Fali UNQUALIFIED
Greenwood BologniaIndiaIoni Bowcher QUALIFIED
Alejandro PerinBrazilIvan Magalhaes PROPOSAL
Francesco ShinkoItalyIvan Magalhaes NEW
Kaitlin OstroskyFranceAmy Elsner QUALIFIED
Adams MorascaArgentinaIvan Magalhaes NEGOTIATION
Maria MarrierIndiaAmy Elsner PROPOSAL
Morrow RutaAustraliaAsiya Javayant NEW
Munro FerenczRussiaElwin Sharvill UNQUALIFIED
Chavez BriddickItalyAmy Elsner RENEWAL
Isabel BowleyFranceIoni Bowcher RENEWAL
Wickens NestleRussiaStephen Shaw NEGOTIATION
Smith GlickArgentinaXuxue Feng QUALIFIED
Smith GlickUnited KingdomBernardo Dominic PROPOSAL
Murillo MaletRussiaIvan Magalhaes PROPOSAL
Jones VocelkaItalyAsiya Javayant QUALIFIED
Aditya KuskoFranceElwin Sharvill UNQUALIFIED
Murillo MaletArgentinaAmy Elsner PROPOSAL
James ButtUnited KingdomIvan Magalhaes UNQUALIFIED
Maisha RulapaughFranceIoni Bowcher UNQUALIFIED
Nicolas IturbideUnited KingdomStephen Shaw RENEWAL
Alejandro PerinGermanyXuxue Feng PROPOSAL
Silvio SlusarskiRussiaIoni Bowcher UNQUALIFIED
Darci PoquetteFranceAnna Fali RENEWAL
Juan WieserCanadaAsiya Javayant RENEWAL
Salvatore StockhamIndiaXuxue Feng NEGOTIATION
Stacey MacleadBrazilIvan Magalhaes PROPOSAL
Aditya KuskoRussiaOnyama Limba NEW
Mayumi KolmetzArgentinaAsiya Javayant UNQUALIFIED
Mayumi KolmetzAustraliaOnyama Limba UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Isabel BowleySpainBernardo Dominic QUALIFIED
Misaki RoysterIndiaAsiya Javayant RENEWAL
Jeanfrancois VenereArgentinaIvan Magalhaes QUALIFIED
Claire TollnerRussiaAsiya Javayant RENEWAL
Deepesh ChuiBrazilAmy Elsner QUALIFIED
Leon OldroydRussiaAsiya Javayant UNQUALIFIED
Jones VocelkaRussiaIvan Magalhaes RENEWAL
Johnson SergiSpainStephen Shaw NEGOTIATION
Octavia MaletUnited KingdomXuxue Feng NEW
Aruna FigeroaCanadaOnyama Limba RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Silvio SlusarskiAustralia2021-12-04Buckley Miller Wright QUALIFIED74Anna Fali
1001Isabel BowleyItaly2021-12-05Feiner Bros NEGOTIATION64Stephen Shaw
1002Costa DilliardGermany2021-11-14Chapman, Ross E Esq RENEWAL83Ioni Bowcher
1003Leon OldroydCanada2021-11-17Chapman, Ross E Esq UNQUALIFIED83Stephen Shaw
1004Munro FerenczArgentina2021-12-06Commercial Press NEW22Xuxue Feng
1005Julie StensethUnited Kingdom2021-12-04Buckley Miller Wright NEGOTIATION78Asiya Javayant
1006Greenwood BologniaCanada2021-11-15Buckley Miller Wright UNQUALIFIED58Elwin Sharvill
1007Isabel BowleyGermany2021-11-11Commercial Press UNQUALIFIED91Ioni Bowcher
1008Misaki RoysterSpain2021-11-10Feiner Bros QUALIFIED18Amy Elsner
1009Clifford RimUnited Kingdom2021-11-22Morlong Associates RENEWAL84Asiya Javayant
1010Costa DilliardJapan2021-12-02Morlong Associates RENEWAL94Amy Elsner
1011Clifford RimJapan2021-11-07Chanay, Jeffrey A Esq RENEWAL38Bernardo Dominic
1012Jeanfrancois VenereArgentina2021-11-07Chanay, Jeffrey A Esq RENEWAL60Anna Fali
1013Leon OldroydRussia2021-11-15Benton, John B Jr UNQUALIFIED57Xuxue Feng
1014Alejandro PerinFrance2021-11-12King, Christopher A Esq UNQUALIFIED27Xuxue Feng
1015Maria MarrierArgentina2021-11-15Rousseaux, Michael Esq NEW28Ioni Bowcher
1016Stacey MacleadGermany2021-11-30Dorl, James J Esq PROPOSAL1Onyama Limba
1017Octavia MaletIndia2021-11-27Buckley Miller Wright RENEWAL74Amy Elsner
1018Mujtaba NickaGermany2021-12-04Chapman, Ross E Esq NEGOTIATION35Ivan Magalhaes
1019Octavia MaletGermany2021-11-09Truhlar And Truhlar Attys PROPOSAL79Anna Fali
1020David DarakjyRussia2021-11-21King, Christopher A Esq QUALIFIED65Ioni Bowcher
1021Munro FerenczArgentina2021-12-04Feiner Bros QUALIFIED27Xuxue Feng
1022Arvin AlbaresBrazil2021-11-15Chanay, Jeffrey A Esq NEGOTIATION3Ioni Bowcher
1023Alejandro PerinAustralia2021-11-29King, Christopher A Esq NEW68Ioni Bowcher
1024Juan WieserAustralia2021-11-16Buckley Miller Wright NEW75Onyama Limba
1025Morrow RutaCanada2021-11-19Commercial Press RENEWAL52Anna Fali
1026Adams MorascaRussia2021-11-28Feltz Printing Service NEGOTIATION45Anna Fali
1027Emily WhobreyCanada2021-12-05Feiner Bros QUALIFIED75Ivan Magalhaes
1028Francesco ShinkoSpain2021-11-19Chemel, James L Cpa UNQUALIFIED94Onyama Limba
1029Jennifer AmigonRussia2021-12-01Chapman, Ross E Esq NEW2Amy Elsner
1030Smith GlickBrazil2021-12-01Chanay, Jeffrey A Esq PROPOSAL85Bernardo Dominic
1031Cody SaylorsUnited Kingdom2021-11-30Rangoni Of Florence NEGOTIATION40Xuxue Feng
1032Francesco ShinkoGermany2021-11-27Benton, John B Jr NEW62Amy Elsner
1033Julie StensethUnited Kingdom2021-11-29Commercial Press NEGOTIATION94Ivan Magalhaes
1034Kadeem FlosiAustralia2021-11-21Feltz Printing Service QUALIFIED73Amy Elsner
1035Stacey MacleadArgentina2021-11-22Morlong Associates NEGOTIATION81Elwin Sharvill
1036Claire TollnerRussia2021-11-12Printing Dimensions NEGOTIATION7Onyama Limba
1037Rodrigues CampainFrance2021-11-27King, Christopher A Esq PROPOSAL87Anna Fali
1038Darci PoquetteIndia2021-11-13Printing Dimensions QUALIFIED48Xuxue Feng
1039Maisha RulapaughFrance2021-11-07Feiner Bros UNQUALIFIED58Stephen Shaw
1040Claire TollnerBrazil2021-11-08Feiner Bros UNQUALIFIED93Anna Fali
1041James ButtArgentina2021-11-20Truhlar And Truhlar Attys NEGOTIATION81Ioni Bowcher
1042Rodrigues CampainItaly2021-11-17Chapman, Ross E Esq NEGOTIATION5Onyama Limba
1043Octavia MaletItaly2021-11-15Dorl, James J Esq NEW48Stephen Shaw
1044Mujtaba NickaCanada2021-11-30Commercial Press PROPOSAL71Bernardo Dominic
1045David DarakjyRussia2021-12-06Dorl, James J Esq QUALIFIED10Ioni Bowcher
1046Sinclair WaycottItaly2021-12-03Buckley Miller Wright NEGOTIATION21Elwin Sharvill
1047Clifford RimRussia2021-11-19Benton, John B Jr UNQUALIFIED86Ivan Magalhaes
1048Alejandro PerinJapan2021-11-15Feltz Printing Service PROPOSAL8Amy Elsner
1049Johnson SergiItaly2021-11-25Rangoni Of Florence QUALIFIED93Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Misaki RoysterGermanyStephen Shaw NEW
Kadeem FlosiUnited KingdomOnyama Limba NEW
Jeanfrancois VenereAustraliaElwin Sharvill RENEWAL
Maisha RulapaughIndiaAnna Fali PROPOSAL
Jennifer AmigonSpainBernardo Dominic PROPOSAL
Jefferson SchemmerIndiaXuxue Feng PROPOSAL
Johnson SergiBrazilStephen Shaw QUALIFIED
Salvatore StockhamItalyOnyama Limba NEGOTIATION
Aditya KuskoSpainAsiya Javayant RENEWAL
Kaitlin OstroskyUnited KingdomAnna Fali NEW
Morrow RutaCanadaAnna Fali QUALIFIED
Morrow RutaBrazilOnyama Limba PROPOSAL
Darci PoquetteArgentinaAnna Fali RENEWAL
Octavia MaletFranceBernardo Dominic QUALIFIED
Wickens NestleUnited KingdomAsiya Javayant NEGOTIATION
Leon OldroydBrazilStephen Shaw PROPOSAL
Juan WieserFranceElwin Sharvill UNQUALIFIED
Ivar PaprockiFranceAmy Elsner RENEWAL
Misaki RoysterRussiaAsiya Javayant RENEWAL
Maisha RulapaughUnited KingdomStephen Shaw RENEWAL
Deepesh ChuiJapanStephen Shaw UNQUALIFIED
Morrow RutaFranceAnna Fali PROPOSAL
Sinclair WaycottGermanyStephen Shaw NEW
Mujtaba NickaGermanyIoni Bowcher QUALIFIED
Francesco ShinkoItalyStephen Shaw NEGOTIATION
Clifford RimItalyIvan Magalhaes NEW
Costa DilliardJapanStephen Shaw NEGOTIATION
Maisha RulapaughSpainIvan Magalhaes QUALIFIED
Costa DilliardArgentinaXuxue Feng RENEWAL
Aditya KuskoIndiaAsiya Javayant QUALIFIED
Deepesh ChuiArgentinaOnyama Limba UNQUALIFIED
Morrow RutaRussiaBernardo Dominic PROPOSAL
Darci PoquetteUnited KingdomAsiya Javayant UNQUALIFIED
Aika InouyeIndiaXuxue Feng PROPOSAL
Kaitlin OstroskyIndiaIoni Bowcher NEGOTIATION
Kadeem FlosiItalyAsiya Javayant NEGOTIATION
Maisha RulapaughRussiaAmy Elsner RENEWAL
James ButtItalyOnyama Limba RENEWAL
Munro FerenczBrazilElwin Sharvill RENEWAL
Claire TollnerFranceAsiya Javayant PROPOSAL
Mujtaba NickaSpainElwin Sharvill NEGOTIATION
Aruna FigeroaSpainStephen Shaw NEW
Jennifer AmigonItalyBernardo Dominic UNQUALIFIED
Leon OldroydArgentinaOnyama Limba NEW
Sinclair WaycottItalyXuxue Feng PROPOSAL
Adams MorascaArgentinaIvan Magalhaes PROPOSAL
Claire TollnerSpainElwin Sharvill RENEWAL
Ashley DoeCanadaXuxue Feng NEGOTIATION
Isabel BowleyArgentinaIvan Magalhaes RENEWAL
Julie StensethBrazilXuxue Feng PROPOSAL
Frozen Columns
Name
Johnson Sergi
Mujtaba Nicka
Leon Oldroyd
Silvio Slusarski
Wickens Nestle
Emily Whobrey
Clifford Rim
Adams Morasca
Jeanfrancois Venere
Leon Oldroyd
Maria Marrier
Aruna Figeroa
Ashley Doe
Wickens Nestle
Costa Dilliard
Antonio Caudy
Misaki Royster
Antonio Caudy
Faith Gillian
Adams Morasca
Kadeem Flosi
Mayumi Kolmetz
Francesco Shinko
Emily Whobrey
Antonio Caudy
Aditya Kusko
Isabel Bowley
Ashley Doe
Chavez Briddick
Aika Inouye
Costa Dilliard
Emily Whobrey
Aika Inouye
Arvin Albares
Misaki Royster
James Butt
Smith Glick
Julie Stenseth
Rodrigues Campain
Ashley Doe
Ricardo Gaucho
Maisha Rulapaugh
Cody Saylors
Smith Glick
Jeanfrancois Venere
Maria Marrier
Nicolas Iturbide
Deepesh Chui
Julie Stenseth
Stacey Maclead
IdCountryDate
1000Germany2021-11-19
1001Brazil2021-12-02
1002Russia2021-11-14
1003Germany2021-11-24
1004Germany2021-11-09
1005Japan2021-11-29
1006Russia2021-11-18
1007Australia2021-11-13
1008Canada2021-11-21
1009Japan2021-11-29
1010Spain2021-11-16
1011France2021-11-21
1012Canada2021-12-03
1013Argentina2021-11-16
1014India2021-11-13
1015Brazil2021-12-03
1016India2021-11-28
1017United Kingdom2021-11-10
1018Italy2021-12-01
1019Canada2021-11-14
1020Spain2021-11-22
1021Russia2021-12-01
1022Spain2021-11-30
1023Germany2021-11-08
1024France2021-12-05
1025Australia2021-11-30
1026Russia2021-11-16
1027Argentina2021-12-05
1028Canada2021-11-25
1029France2021-11-23
1030India2021-12-02
1031Australia2021-11-30
1032India2021-11-23
1033Italy2021-11-15
1034India2021-11-26
1035Spain2021-11-18
1036Australia2021-11-25
1037Russia2021-11-16
1038Argentina2021-11-10
1039Australia2021-11-27
1040United Kingdom2021-12-03
1041India2021-12-01
1042Canada2021-11-19
1043India2021-11-18
1044Germany2021-11-17
1045Australia2021-11-21
1046Spain2021-11-14
1047United Kingdom2021-12-03
1048Argentina2021-11-27
1049India2021-12-03
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aika InouyeJapanAsiya Javayant QUALIFIED
Greenwood BologniaIndiaAmy Elsner NEGOTIATION
Francesco ShinkoFranceOnyama Limba UNQUALIFIED
Aruna FigeroaBrazilBernardo Dominic QUALIFIED
Arvin AlbaresFranceOnyama Limba NEW
Izzy GarufiUnited KingdomAmy Elsner UNQUALIFIED
James ButtGermanyIvan Magalhaes QUALIFIED
Arvin AlbaresItalyAnna Fali NEW
Johnson SergiRussiaIoni Bowcher NEW
Clifford RimItalyIoni Bowcher PROPOSAL
Stacey MacleadCanadaIvan Magalhaes QUALIFIED
Julie StensethUnited KingdomAnna Fali NEW
Rodrigues CampainIndiaXuxue Feng PROPOSAL
Jeanfrancois VenereGermanyAmy Elsner NEW
Aruna FigeroaArgentinaAsiya Javayant NEGOTIATION
Aditya KuskoGermanyIvan Magalhaes RENEWAL
Salvatore StockhamJapanAnna Fali QUALIFIED
Greenwood BologniaIndiaElwin Sharvill QUALIFIED
Juan WieserRussiaAsiya Javayant RENEWAL
Julie StensethSpainBernardo Dominic RENEWAL
Kaitlin OstroskyGermanyAmy Elsner PROPOSAL
Francesco ShinkoCanadaBernardo Dominic PROPOSAL
Jennifer AmigonCanadaStephen Shaw UNQUALIFIED
Tony FollerCanadaIoni Bowcher UNQUALIFIED
Clifford RimFranceElwin Sharvill QUALIFIED
Aditya KuskoFranceAmy Elsner RENEWAL
Chavez BriddickUnited KingdomIvan Magalhaes UNQUALIFIED
Adams MorascaRussiaStephen Shaw PROPOSAL
Adams MorascaRussiaAmy Elsner QUALIFIED
Aruna FigeroaGermanyIvan Magalhaes NEGOTIATION
Maria MarrierFranceAnna Fali PROPOSAL
Stacey MacleadItalyBernardo Dominic UNQUALIFIED
Darci PoquetteIndiaElwin Sharvill NEGOTIATION
Johnson SergiArgentinaIvan Magalhaes RENEWAL
Clifford RimBrazilOnyama Limba NEGOTIATION
Antonio CaudyArgentinaElwin Sharvill PROPOSAL
Isabel BowleyUnited KingdomAmy Elsner RENEWAL
Jennifer AmigonBrazilXuxue Feng NEGOTIATION
Kadeem FlosiBrazilAsiya Javayant PROPOSAL
Octavia MaletRussiaIoni Bowcher 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>

Session expired

Reloading page

Message:
StackTrace: