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
Isabel BowleyBrazilOnyama Limba NEW
Johnson SergiAustraliaIoni Bowcher UNQUALIFIED
Salvatore StockhamBrazilAmy Elsner UNQUALIFIED
Emily WhobreySpainXuxue Feng RENEWAL
Costa DilliardItalyElwin Sharvill RENEWAL
Aika InouyeUnited KingdomStephen Shaw PROPOSAL
James ButtArgentinaIoni Bowcher NEGOTIATION
Octavia MaletRussiaIoni Bowcher NEW
Faith GillianArgentinaStephen Shaw QUALIFIED
Deepesh ChuiArgentinaAsiya Javayant NEW
Clifford RimItalyIoni Bowcher PROPOSAL
Costa DilliardRussiaAmy Elsner NEW
Julie StensethRussiaOnyama Limba QUALIFIED
Salvatore StockhamUnited KingdomElwin Sharvill RENEWAL
Antonio CaudyJapanElwin Sharvill NEW
Tony FollerFranceBernardo Dominic UNQUALIFIED
Johnson SergiCanadaElwin Sharvill RENEWAL
Greenwood BologniaRussiaIvan Magalhaes UNQUALIFIED
Wickens NestleItalyStephen Shaw NEGOTIATION
Smith GlickFranceXuxue Feng PROPOSAL
Mayumi KolmetzSpainAmy Elsner PROPOSAL
Wickens NestleItalyOnyama Limba RENEWAL
Aika InouyeIndiaIvan Magalhaes QUALIFIED
Morrow RutaIndiaIoni Bowcher RENEWAL
Aditya KuskoIndiaAnna Fali NEGOTIATION
Cody SaylorsGermanyIoni Bowcher UNQUALIFIED
Jeanfrancois VenereCanadaBernardo Dominic UNQUALIFIED
Darci PoquetteSpainXuxue Feng QUALIFIED
Jennifer AmigonItalyElwin Sharvill UNQUALIFIED
Octavia MaletIndiaXuxue Feng RENEWAL
Maisha RulapaughSpainStephen Shaw UNQUALIFIED
David DarakjyJapanIoni Bowcher PROPOSAL
Ricardo GauchoItalyBernardo Dominic NEGOTIATION
Jefferson SchemmerUnited KingdomXuxue Feng NEW
Kadeem FlosiAustraliaOnyama Limba QUALIFIED
Morrow RutaBrazilXuxue Feng PROPOSAL
Jefferson SchemmerRussiaIoni Bowcher RENEWAL
Mujtaba NickaAustraliaStephen Shaw NEGOTIATION
Ricardo GauchoGermanyElwin Sharvill PROPOSAL
Mayumi KolmetzAustraliaStephen Shaw NEGOTIATION
Deepesh ChuiArgentinaIoni Bowcher QUALIFIED
Claire TollnerBrazilIoni Bowcher PROPOSAL
Rodrigues CampainGermanyAnna Fali UNQUALIFIED
Ashley DoeBrazilBernardo Dominic QUALIFIED
Ivar PaprockiItalyBernardo Dominic QUALIFIED
Antonio CaudyUnited KingdomBernardo Dominic QUALIFIED
Cody SaylorsBrazilElwin Sharvill NEGOTIATION
Mayumi KolmetzRussiaIoni Bowcher NEGOTIATION
Deepesh ChuiUnited KingdomIoni Bowcher NEW
Alejandro PerinIndiaIvan Magalhaes UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Silvio SlusarskiAustraliaIoni Bowcher RENEWAL
Claire TollnerFranceStephen Shaw PROPOSAL
Alejandro PerinGermanyAnna Fali RENEWAL
Greenwood BologniaGermanyBernardo Dominic RENEWAL
Leja CaldareraBrazilStephen Shaw PROPOSAL
Misaki RoysterGermanyIvan Magalhaes UNQUALIFIED
Ricardo GauchoIndiaAmy Elsner NEGOTIATION
Salvatore StockhamItalyIvan Magalhaes NEGOTIATION
Munro FerenczArgentinaElwin Sharvill NEGOTIATION
Jeanfrancois VenereCanadaIoni Bowcher NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Francesco ShinkoSpain2021-10-21Feiner Bros NEGOTIATION15Bernardo Dominic
1001Aditya KuskoRussia2021-10-21King, Christopher A Esq UNQUALIFIED82Bernardo Dominic
1002Faith GillianArgentina2021-10-02Commercial Press QUALIFIED98Ioni Bowcher
1003Morrow RutaRussia2021-10-02Buckley Miller Wright PROPOSAL13Onyama Limba
1004Leja CaldareraGermany2021-09-29Rousseaux, Michael Esq NEW13Asiya Javayant
1005Ricardo GauchoFrance2021-10-13Rousseaux, Michael Esq QUALIFIED37Bernardo Dominic
1006Johnson SergiItaly2021-10-08Benton, John B Jr RENEWAL61Stephen Shaw
1007Juan WieserAustralia2021-10-21Rousseaux, Michael Esq RENEWAL45Xuxue Feng
1008Murillo MaletGermany2021-09-24Chemel, James L Cpa QUALIFIED71Amy Elsner
1009Ivar PaprockiAustralia2021-09-25Morlong Associates NEGOTIATION48Ioni Bowcher
1010Jefferson SchemmerBrazil2021-10-08Buckley Miller Wright NEW90Onyama Limba
1011Julie StensethRussia2021-09-28Benton, John B Jr QUALIFIED73Elwin Sharvill
1012Munro FerenczArgentina2021-10-08Benton, John B Jr NEGOTIATION22Onyama Limba
1013Jennifer AmigonAustralia2021-10-20Truhlar And Truhlar Attys PROPOSAL85Asiya Javayant
1014Jennifer AmigonBrazil2021-10-10Dorl, James J Esq QUALIFIED41Asiya Javayant
1015Munro FerenczItaly2021-10-12Truhlar And Truhlar Attys QUALIFIED3Amy Elsner
1016Cody SaylorsSpain2021-10-22Feiner Bros QUALIFIED34Asiya Javayant
1017Alejandro PerinRussia2021-10-12King, Christopher A Esq QUALIFIED52Ivan Magalhaes
1018Francesco ShinkoJapan2021-10-03Commercial Press QUALIFIED29Ivan Magalhaes
1019Jennifer AmigonArgentina2021-10-18Dorl, James J Esq UNQUALIFIED71Stephen Shaw
1020Murillo MaletCanada2021-10-18Chapman, Ross E Esq UNQUALIFIED48Asiya Javayant
1021Mayumi KolmetzSpain2021-10-05Rangoni Of Florence NEGOTIATION88Elwin Sharvill
1022Mayumi KolmetzFrance2021-10-01Commercial Press PROPOSAL86Ivan Magalhaes
1023David DarakjyCanada2021-10-22Buckley Miller Wright QUALIFIED78Bernardo Dominic
1024Misaki RoysterJapan2021-10-17Truhlar And Truhlar Attys RENEWAL33Amy Elsner
1025Mayumi KolmetzItaly2021-10-21Benton, John B Jr RENEWAL40Ioni Bowcher
1026Antonio CaudyCanada2021-10-15Chemel, James L Cpa RENEWAL16Onyama Limba
1027Costa DilliardCanada2021-10-04Feltz Printing Service UNQUALIFIED43Stephen Shaw
1028Johnson SergiFrance2021-10-22Feiner Bros NEGOTIATION56Xuxue Feng
1029Misaki RoysterUnited Kingdom2021-10-19Chemel, James L Cpa NEGOTIATION61Ioni Bowcher
1030Mujtaba NickaItaly2021-10-23Truhlar And Truhlar Attys RENEWAL54Bernardo Dominic
1031Juan WieserIndia2021-09-28Dorl, James J Esq RENEWAL9Stephen Shaw
1032Leja CaldareraIndia2021-10-23Feiner Bros PROPOSAL5Ivan Magalhaes
1033James ButtIndia2021-10-15Rousseaux, Michael Esq PROPOSAL87Xuxue Feng
1034Maria MarrierBrazil2021-10-18Truhlar And Truhlar Attys UNQUALIFIED30Bernardo Dominic
1035Leon OldroydItaly2021-09-29Chemel, James L Cpa NEW51Xuxue Feng
1036Silvio SlusarskiUnited Kingdom2021-10-06Dorl, James J Esq RENEWAL13Xuxue Feng
1037James ButtSpain2021-10-15Chapman, Ross E Esq NEGOTIATION52Xuxue Feng
1038Julie StensethItaly2021-10-17Buckley Miller Wright UNQUALIFIED78Onyama Limba
1039Mujtaba NickaBrazil2021-09-29Chanay, Jeffrey A Esq RENEWAL79Ivan Magalhaes
1040Cody SaylorsFrance2021-09-27Rangoni Of Florence PROPOSAL26Onyama Limba
1041Mujtaba NickaRussia2021-09-27Dorl, James J Esq RENEWAL5Amy Elsner
1042Rodrigues CampainArgentina2021-10-14Buckley Miller Wright PROPOSAL55Bernardo Dominic
1043Johnson SergiCanada2021-09-30Benton, John B Jr PROPOSAL76Xuxue Feng
1044Emily WhobreyIndia2021-10-07Rangoni Of Florence QUALIFIED40Stephen Shaw
1045Morrow RutaRussia2021-10-19Rangoni Of Florence QUALIFIED90Anna Fali
1046Greenwood BologniaIndia2021-09-26Chemel, James L Cpa NEGOTIATION5Onyama Limba
1047Ricardo GauchoRussia2021-09-30King, Christopher A Esq RENEWAL65Onyama Limba
1048Kadeem FlosiJapan2021-10-09Chapman, Ross E Esq NEGOTIATION62Asiya Javayant
1049Mujtaba NickaItaly2021-10-09Buckley Miller Wright PROPOSAL70Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Cody SaylorsJapanAnna Fali NEW
Adams MorascaBrazilXuxue Feng RENEWAL
Ashley DoeUnited KingdomIvan Magalhaes NEW
James ButtIndiaElwin Sharvill NEGOTIATION
Nicolas IturbideBrazilStephen Shaw UNQUALIFIED
Jones VocelkaAustraliaOnyama Limba NEGOTIATION
Arvin AlbaresRussiaOnyama Limba RENEWAL
Tony FollerUnited KingdomStephen Shaw QUALIFIED
Leon OldroydAustraliaElwin Sharvill PROPOSAL
Jones VocelkaArgentinaXuxue Feng QUALIFIED
Silvio SlusarskiBrazilStephen Shaw UNQUALIFIED
Ricardo GauchoItalyOnyama Limba NEGOTIATION
Leon OldroydIndiaAnna Fali QUALIFIED
Kadeem FlosiFranceIoni Bowcher UNQUALIFIED
Salvatore StockhamJapanIvan Magalhaes RENEWAL
Deepesh ChuiAustraliaXuxue Feng PROPOSAL
Cody SaylorsGermanyIoni Bowcher UNQUALIFIED
Aruna FigeroaIndiaAmy Elsner UNQUALIFIED
Leon OldroydAustraliaBernardo Dominic QUALIFIED
Ashley DoeSpainIvan Magalhaes PROPOSAL
Stacey MacleadJapanIoni Bowcher PROPOSAL
Jefferson SchemmerRussiaOnyama Limba UNQUALIFIED
Wickens NestleRussiaOnyama Limba NEGOTIATION
Maisha RulapaughSpainElwin Sharvill PROPOSAL
Aditya KuskoSpainAmy Elsner QUALIFIED
Wickens NestleUnited KingdomElwin Sharvill PROPOSAL
Adams MorascaCanadaBernardo Dominic RENEWAL
Smith GlickFranceBernardo Dominic NEW
Morrow RutaCanadaBernardo Dominic NEW
Emily WhobreyJapanStephen Shaw QUALIFIED
Deepesh ChuiBrazilXuxue Feng UNQUALIFIED
Emily WhobreyGermanyOnyama Limba RENEWAL
Leon OldroydRussiaElwin Sharvill PROPOSAL
Kadeem FlosiItalyAmy Elsner NEGOTIATION
Leja CaldareraJapanAmy Elsner NEGOTIATION
Clifford RimBrazilAmy Elsner PROPOSAL
Maria MarrierIndiaAsiya Javayant NEGOTIATION
Mayumi KolmetzRussiaIoni Bowcher RENEWAL
Juan WieserSpainIvan Magalhaes NEGOTIATION
Cody SaylorsCanadaOnyama Limba NEW
Salvatore StockhamSpainAsiya Javayant QUALIFIED
Juan WieserItalyBernardo Dominic QUALIFIED
Mayumi KolmetzAustraliaStephen Shaw PROPOSAL
Misaki RoysterBrazilXuxue Feng NEW
Arvin AlbaresAustraliaBernardo Dominic UNQUALIFIED
Maria MarrierIndiaStephen Shaw NEW
Chavez BriddickArgentinaIvan Magalhaes RENEWAL
Julie StensethArgentinaOnyama Limba NEW
Wickens NestleBrazilStephen Shaw QUALIFIED
Rodrigues CampainItalyElwin Sharvill UNQUALIFIED
Frozen Columns
Name
Francesco Shinko
Silvio Slusarski
Ricardo Gaucho
Kaitlin Ostrosky
Antonio Caudy
Faith Gillian
Francesco Shinko
Antonio Caudy
Greenwood Bolognia
Juan Wieser
Octavia Malet
Darci Poquette
Octavia Malet
Emily Whobrey
Costa Dilliard
Mujtaba Nicka
Leja Caldarera
Murillo Malet
Faith Gillian
Aditya Kusko
Leja Caldarera
Deepesh Chui
Salvatore Stockham
Mayumi Kolmetz
Leja Caldarera
Silvio Slusarski
James Butt
Cody Saylors
Francesco Shinko
David Darakjy
Salvatore Stockham
James Butt
Faith Gillian
Mujtaba Nicka
Wickens Nestle
Wickens Nestle
Wickens Nestle
Sinclair Waycott
Aditya Kusko
Leja Caldarera
Leon Oldroyd
Mayumi Kolmetz
Deepesh Chui
Sinclair Waycott
Leja Caldarera
Silvio Slusarski
Ashley Doe
Julie Stenseth
Misaki Royster
Mayumi Kolmetz
IdCountryDate
1000Argentina2021-09-27
1001Japan2021-10-07
1002Brazil2021-10-16
1003Japan2021-10-17
1004Russia2021-10-12
1005Canada2021-09-28
1006United Kingdom2021-10-07
1007Germany2021-09-25
1008India2021-09-25
1009Argentina2021-10-04
1010Russia2021-09-25
1011France2021-09-28
1012Italy2021-10-02
1013Italy2021-10-20
1014Australia2021-10-02
1015Australia2021-10-17
1016Brazil2021-10-06
1017Argentina2021-10-07
1018Australia2021-09-30
1019Argentina2021-10-18
1020Russia2021-10-23
1021Russia2021-09-28
1022United Kingdom2021-10-22
1023Russia2021-09-29
1024Brazil2021-10-09
1025Japan2021-10-03
1026Argentina2021-10-14
1027India2021-10-21
1028Japan2021-10-21
1029Argentina2021-10-07
1030Argentina2021-10-09
1031India2021-10-23
1032Brazil2021-09-27
1033India2021-10-18
1034Australia2021-10-02
1035Italy2021-09-29
1036Brazil2021-09-25
1037France2021-09-30
1038Spain2021-09-24
1039Russia2021-10-22
1040United Kingdom2021-10-18
1041Argentina2021-10-06
1042Argentina2021-10-18
1043Brazil2021-09-26
1044Italy2021-10-04
1045Canada2021-10-02
1046Australia2021-10-13
1047Germany2021-10-10
1048France2021-10-09
1049United Kingdom2021-09-27
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
No records found.

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