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
Aika InouyeAustraliaAsiya Javayant PROPOSAL
Ivar PaprockiJapanAmy Elsner UNQUALIFIED
Smith GlickFranceElwin Sharvill NEW
Chavez BriddickSpainIvan Magalhaes NEGOTIATION
Faith GillianIndiaXuxue Feng QUALIFIED
Chavez BriddickFranceElwin Sharvill NEW
Jefferson SchemmerFranceXuxue Feng UNQUALIFIED
Izzy GarufiArgentinaAmy Elsner PROPOSAL
Antonio CaudyItalyElwin Sharvill UNQUALIFIED
Costa DilliardSpainXuxue Feng RENEWAL
Greenwood BologniaBrazilIoni Bowcher NEW
Kaitlin OstroskyBrazilElwin Sharvill RENEWAL
Claire TollnerArgentinaOnyama Limba UNQUALIFIED
James ButtAustraliaBernardo Dominic NEW
Ashley DoeFranceStephen Shaw RENEWAL
Ashley DoeFranceIoni Bowcher PROPOSAL
Greenwood BologniaBrazilAmy Elsner NEW
James ButtCanadaAnna Fali UNQUALIFIED
Tony FollerArgentinaIvan Magalhaes RENEWAL
Emily WhobreyAustraliaAnna Fali NEGOTIATION
Mujtaba NickaGermanyIoni Bowcher PROPOSAL
Emily WhobreyAustraliaAsiya Javayant PROPOSAL
Rodrigues CampainItalyAnna Fali NEW
Isabel BowleyAustraliaAnna Fali PROPOSAL
Juan WieserUnited KingdomStephen Shaw UNQUALIFIED
Aruna FigeroaBrazilAnna Fali NEGOTIATION
Aditya KuskoSpainAmy Elsner PROPOSAL
Juan WieserAustraliaElwin Sharvill PROPOSAL
Leja CaldareraFranceStephen Shaw UNQUALIFIED
Leja CaldareraIndiaAnna Fali NEGOTIATION
Jones VocelkaJapanOnyama Limba NEGOTIATION
Leja CaldareraUnited KingdomOnyama Limba RENEWAL
Kadeem FlosiFranceElwin Sharvill RENEWAL
Aditya KuskoJapanXuxue Feng RENEWAL
Maria MarrierUnited KingdomAsiya Javayant NEW
Ivar PaprockiArgentinaElwin Sharvill NEW
Smith GlickCanadaElwin Sharvill RENEWAL
Kaitlin OstroskyGermanyOnyama Limba PROPOSAL
Silvio SlusarskiUnited KingdomAmy Elsner NEW
Antonio CaudyIndiaIoni Bowcher PROPOSAL
Aditya KuskoAustraliaOnyama Limba QUALIFIED
Sinclair WaycottArgentinaAsiya Javayant NEGOTIATION
Aruna FigeroaBrazilBernardo Dominic RENEWAL
Darci PoquetteBrazilElwin Sharvill UNQUALIFIED
Rodrigues CampainRussiaIvan Magalhaes PROPOSAL
Arvin AlbaresJapanXuxue Feng UNQUALIFIED
Leja CaldareraFranceIoni Bowcher PROPOSAL
Leon OldroydIndiaAsiya Javayant UNQUALIFIED
Jefferson SchemmerRussiaAsiya Javayant NEGOTIATION
Jefferson SchemmerGermanyAsiya Javayant NEW
Horizontal
NameCountryRepresentativeStatus
Chavez BriddickBrazilXuxue Feng QUALIFIED
Leon OldroydBrazilElwin Sharvill UNQUALIFIED
Izzy GarufiItalyAmy Elsner QUALIFIED
Cody SaylorsSpainAsiya Javayant QUALIFIED
Leja CaldareraFranceAnna Fali NEW
Aditya KuskoIndiaAsiya Javayant QUALIFIED
Izzy GarufiAustraliaXuxue Feng QUALIFIED
Cody SaylorsAustraliaIoni Bowcher UNQUALIFIED
Chavez BriddickItalyIoni Bowcher NEW
Stacey MacleadJapanAsiya Javayant QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mayumi KolmetzAustralia2022-01-07Chapman, Ross E Esq PROPOSAL64Anna Fali
1001Tony FollerItaly2021-12-30Chemel, James L Cpa PROPOSAL55Elwin Sharvill
1002Jeanfrancois VenereSpain2022-01-12King, Christopher A Esq PROPOSAL45Xuxue Feng
1003Kaitlin OstroskyIndia2022-01-12Feltz Printing Service QUALIFIED91Asiya Javayant
1004Jones VocelkaGermany2022-01-05Rangoni Of Florence UNQUALIFIED42Ioni Bowcher
1005Jefferson SchemmerJapan2022-01-27Benton, John B Jr NEGOTIATION7Xuxue Feng
1006Ashley DoeArgentina2022-01-08Chemel, James L Cpa RENEWAL99Elwin Sharvill
1007David DarakjyCanada2022-01-06Printing Dimensions NEGOTIATION93Asiya Javayant
1008Ashley DoeCanada2022-01-17Feiner Bros RENEWAL30Bernardo Dominic
1009Ivar PaprockiFrance2022-01-26Commercial Press RENEWAL67Ioni Bowcher
1010Julie StensethJapan2022-01-26Rangoni Of Florence QUALIFIED9Onyama Limba
1011Mayumi KolmetzIndia2022-01-03King, Christopher A Esq PROPOSAL57Stephen Shaw
1012Isabel BowleySpain2022-01-14Chanay, Jeffrey A Esq NEGOTIATION4Anna Fali
1013Julie StensethGermany2022-01-14Feiner Bros NEGOTIATION68Bernardo Dominic
1014Aditya KuskoGermany2022-01-06Rousseaux, Michael Esq NEGOTIATION98Elwin Sharvill
1015Aruna FigeroaRussia2022-01-22King, Christopher A Esq QUALIFIED32Anna Fali
1016Tony FollerJapan2022-01-22Morlong Associates QUALIFIED91Anna Fali
1017Kadeem FlosiIndia2022-01-01Dorl, James J Esq PROPOSAL51Bernardo Dominic
1018Kaitlin OstroskyArgentina2021-12-31Commercial Press RENEWAL23Xuxue Feng
1019Ivar PaprockiArgentina2022-01-27Rangoni Of Florence RENEWAL24Anna Fali
1020Wickens NestleCanada2022-01-05King, Christopher A Esq QUALIFIED39Stephen Shaw
1021Misaki RoysterBrazil2022-01-17Feltz Printing Service QUALIFIED57Ivan Magalhaes
1022Aruna FigeroaItaly2022-01-21Dorl, James J Esq RENEWAL66Ivan Magalhaes
1023Ricardo GauchoAustralia2022-01-14Morlong Associates NEW84Onyama Limba
1024Aruna FigeroaArgentina2022-01-15Buckley Miller Wright NEW32Ioni Bowcher
1025Kadeem FlosiGermany2021-12-30Printing Dimensions QUALIFIED81Onyama Limba
1026Francesco ShinkoAustralia2022-01-27Morlong Associates UNQUALIFIED34Onyama Limba
1027Arvin AlbaresJapan2022-01-22Chapman, Ross E Esq QUALIFIED37Elwin Sharvill
1028Greenwood BologniaRussia2022-01-19Truhlar And Truhlar Attys RENEWAL31Ivan Magalhaes
1029Jefferson SchemmerUnited Kingdom2022-01-04Morlong Associates NEW63Ioni Bowcher
1030Ashley DoeSpain2022-01-23Rousseaux, Michael Esq NEGOTIATION38Onyama Limba
1031Jeanfrancois VenereBrazil2022-01-23Dorl, James J Esq PROPOSAL57Onyama Limba
1032Maria MarrierAustralia2022-01-09Printing Dimensions UNQUALIFIED14Asiya Javayant
1033Stacey MacleadJapan2022-01-24Printing Dimensions RENEWAL15Elwin Sharvill
1034Johnson SergiCanada2022-01-04King, Christopher A Esq PROPOSAL93Ioni Bowcher
1035David DarakjyAustralia2022-01-27Benton, John B Jr RENEWAL63Bernardo Dominic
1036Greenwood BologniaBrazil2022-01-15Chapman, Ross E Esq PROPOSAL15Amy Elsner
1037Adams MorascaArgentina2022-01-23Rangoni Of Florence UNQUALIFIED71Ivan Magalhaes
1038Wickens NestleBrazil2022-01-05Morlong Associates QUALIFIED76Ioni Bowcher
1039Claire TollnerSpain2022-01-11Commercial Press UNQUALIFIED15Asiya Javayant
1040Ricardo GauchoUnited Kingdom2021-12-30Chapman, Ross E Esq RENEWAL19Bernardo Dominic
1041Julie StensethSpain2022-01-05Rangoni Of Florence NEW78Elwin Sharvill
1042Ashley DoeSpain2021-12-30Rangoni Of Florence QUALIFIED15Onyama Limba
1043Antonio CaudyIndia2022-01-03Rangoni Of Florence RENEWAL90Ioni Bowcher
1044Johnson SergiJapan2022-01-24Benton, John B Jr NEW36Amy Elsner
1045Maria MarrierSpain2021-12-31Morlong Associates UNQUALIFIED63Amy Elsner
1046Aruna FigeroaJapan2022-01-15Commercial Press NEGOTIATION44Amy Elsner
1047Morrow RutaArgentina2022-01-07Feiner Bros NEW36Xuxue Feng
1048Aditya KuskoBrazil2022-01-10Truhlar And Truhlar Attys NEW9Xuxue Feng
1049Faith GillianArgentina2022-01-01King, Christopher A Esq QUALIFIED6Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Salvatore StockhamJapanStephen Shaw PROPOSAL
Kadeem FlosiGermanyAnna Fali QUALIFIED
Darci PoquetteIndiaElwin Sharvill RENEWAL
Antonio CaudyAustraliaOnyama Limba NEGOTIATION
Claire TollnerSpainOnyama Limba NEGOTIATION
Kaitlin OstroskyArgentinaIoni Bowcher NEGOTIATION
Francesco ShinkoItalyIoni Bowcher RENEWAL
Smith GlickArgentinaIoni Bowcher NEW
Ricardo GauchoSpainAnna Fali NEW
Aditya KuskoAustraliaAmy Elsner QUALIFIED
Juan WieserFranceBernardo Dominic QUALIFIED
Jennifer AmigonIndiaStephen Shaw PROPOSAL
Maria MarrierFranceOnyama Limba QUALIFIED
Silvio SlusarskiCanadaElwin Sharvill QUALIFIED
Leja CaldareraBrazilStephen Shaw PROPOSAL
David DarakjyFranceBernardo Dominic UNQUALIFIED
Alejandro PerinFranceAsiya Javayant NEW
Juan WieserCanadaIvan Magalhaes NEW
Antonio CaudyArgentinaAsiya Javayant UNQUALIFIED
Costa DilliardArgentinaOnyama Limba PROPOSAL
Julie StensethJapanIvan Magalhaes UNQUALIFIED
David DarakjyFranceIvan Magalhaes UNQUALIFIED
Ivar PaprockiRussiaAmy Elsner QUALIFIED
Ricardo GauchoSpainAnna Fali QUALIFIED
Kadeem FlosiSpainBernardo Dominic RENEWAL
Emily WhobreyGermanyElwin Sharvill QUALIFIED
Emily WhobreyRussiaAsiya Javayant RENEWAL
Clifford RimSpainIoni Bowcher NEGOTIATION
Leja CaldareraUnited KingdomElwin Sharvill NEW
Leon OldroydBrazilElwin Sharvill RENEWAL
Francesco ShinkoUnited KingdomOnyama Limba NEW
Morrow RutaAustraliaAsiya Javayant NEW
Mayumi KolmetzCanadaBernardo Dominic PROPOSAL
Silvio SlusarskiArgentinaIoni Bowcher NEGOTIATION
Jones VocelkaJapanBernardo Dominic NEW
Ashley DoeCanadaAmy Elsner NEGOTIATION
Deepesh ChuiSpainElwin Sharvill RENEWAL
Claire TollnerItalyIvan Magalhaes NEGOTIATION
Cody SaylorsGermanyBernardo Dominic QUALIFIED
Aruna FigeroaCanadaXuxue Feng NEW
Rodrigues CampainJapanIvan Magalhaes UNQUALIFIED
Isabel BowleyGermanyAmy Elsner PROPOSAL
Silvio SlusarskiItalyOnyama Limba QUALIFIED
Salvatore StockhamUnited KingdomOnyama Limba PROPOSAL
Aruna FigeroaGermanyElwin Sharvill QUALIFIED
Sinclair WaycottFranceAnna Fali UNQUALIFIED
Ivar PaprockiAustraliaAnna Fali QUALIFIED
Francesco ShinkoCanadaStephen Shaw PROPOSAL
Alejandro PerinItalyAnna Fali QUALIFIED
Julie StensethJapanBernardo Dominic PROPOSAL
Frozen Columns
Name
Aditya Kusko
Jeanfrancois Venere
Salvatore Stockham
Aditya Kusko
Adams Morasca
Sinclair Waycott
James Butt
Faith Gillian
Jeanfrancois Venere
Antonio Caudy
Faith Gillian
Kadeem Flosi
Costa Dilliard
Ashley Doe
Leon Oldroyd
Clifford Rim
Octavia Malet
Alejandro Perin
Maria Marrier
Julie Stenseth
Mujtaba Nicka
Darci Poquette
Morrow Ruta
Morrow Ruta
Maisha Rulapaugh
Jefferson Schemmer
Darci Poquette
Isabel Bowley
Cody Saylors
Murillo Malet
Munro Ferencz
Izzy Garufi
Adams Morasca
Darci Poquette
Aika Inouye
Emily Whobrey
Faith Gillian
Leon Oldroyd
Julie Stenseth
Kadeem Flosi
Antonio Caudy
Jefferson Schemmer
Aditya Kusko
Clifford Rim
Salvatore Stockham
Johnson Sergi
Smith Glick
Rodrigues Campain
Nicolas Iturbide
Ashley Doe
IdCountryDate
1000Japan2022-01-03
1001Spain2022-01-17
1002Japan2022-01-17
1003Germany2022-01-15
1004Argentina2022-01-05
1005Australia2022-01-07
1006Brazil2022-01-12
1007Japan2022-01-14
1008Russia2022-01-08
1009Italy2022-01-21
1010Argentina2022-01-11
1011Australia2021-12-29
1012Canada2022-01-09
1013France2022-01-24
1014France2022-01-04
1015United Kingdom2022-01-12
1016Australia2022-01-26
1017India2022-01-11
1018Australia2022-01-03
1019Russia2022-01-14
1020Germany2022-01-02
1021Argentina2022-01-16
1022Germany2022-01-04
1023Canada2022-01-26
1024Germany2022-01-15
1025France2022-01-09
1026Russia2022-01-13
1027Italy2022-01-04
1028Germany2022-01-14
1029Italy2022-01-04
1030France2022-01-11
1031France2022-01-13
1032Russia2022-01-15
1033Argentina2022-01-04
1034United Kingdom2022-01-15
1035Japan2022-01-21
1036United Kingdom2022-01-20
1037Argentina2022-01-08
1038Spain2021-12-29
1039Italy2022-01-12
1040Argentina2021-12-31
1041Italy2022-01-21
1042Italy2022-01-22
1043Japan2022-01-02
1044Spain2022-01-10
1045India2022-01-10
1046Russia2021-12-30
1047Argentina2022-01-18
1048France2022-01-18
1049Germany2022-01-27
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Smith GlickSpainOnyama Limba NEGOTIATION
Izzy GarufiIndiaIvan Magalhaes NEW
Aika InouyeUnited KingdomAsiya Javayant PROPOSAL
Ricardo GauchoIndiaIoni Bowcher QUALIFIED
Izzy GarufiAustraliaAsiya Javayant RENEWAL
Arvin AlbaresSpainAnna Fali NEGOTIATION
Ashley DoeArgentinaElwin Sharvill UNQUALIFIED
Morrow RutaRussiaAnna Fali NEGOTIATION
Jones VocelkaBrazilOnyama Limba NEGOTIATION
Izzy GarufiSpainAnna Fali UNQUALIFIED
Cody SaylorsGermanyAnna Fali UNQUALIFIED
Emily WhobreyIndiaAsiya Javayant RENEWAL
Ashley DoeArgentinaAmy Elsner PROPOSAL
Adams MorascaJapanElwin Sharvill RENEWAL
Aruna FigeroaSpainIoni Bowcher QUALIFIED
Ricardo GauchoGermanyElwin Sharvill NEGOTIATION
Misaki RoysterJapanIoni Bowcher NEW
Francesco ShinkoItalyAmy Elsner QUALIFIED
Maria MarrierRussiaXuxue Feng NEGOTIATION
David DarakjyGermanyAmy Elsner QUALIFIED
Ashley DoeGermanyAnna Fali PROPOSAL
Jefferson SchemmerItalyOnyama Limba PROPOSAL
Maisha RulapaughBrazilAnna Fali RENEWAL
Murillo MaletArgentinaOnyama Limba RENEWAL
Mujtaba NickaSpainAmy Elsner UNQUALIFIED
Julie StensethUnited KingdomIvan Magalhaes RENEWAL
Maisha RulapaughJapanAmy Elsner RENEWAL
Claire TollnerCanadaIoni Bowcher NEW
Ricardo GauchoAustraliaXuxue Feng UNQUALIFIED
Jones VocelkaAustraliaAnna Fali PROPOSAL
Murillo MaletSpainIoni Bowcher UNQUALIFIED
Greenwood BologniaJapanStephen Shaw UNQUALIFIED
Jones VocelkaUnited KingdomIvan Magalhaes UNQUALIFIED
Aruna FigeroaJapanElwin Sharvill QUALIFIED
Mayumi KolmetzFranceXuxue Feng RENEWAL
Mujtaba NickaIndiaBernardo Dominic PROPOSAL
Leon OldroydUnited KingdomIvan Magalhaes NEW
Stacey MacleadGermanyBernardo Dominic QUALIFIED
Alejandro PerinCanadaAmy Elsner RENEWAL
Ivar PaprockiFranceAsiya Javayant 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: