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
Aditya KuskoJapanAmy Elsner PROPOSAL
Cody SaylorsSpainIoni Bowcher NEGOTIATION
Misaki RoysterJapanXuxue Feng QUALIFIED
Clifford RimRussiaAmy Elsner PROPOSAL
Kadeem FlosiUnited KingdomXuxue Feng UNQUALIFIED
Octavia MaletAustraliaIoni Bowcher PROPOSAL
David DarakjyJapanAsiya Javayant NEW
Costa DilliardIndiaAsiya Javayant NEGOTIATION
Faith GillianUnited KingdomBernardo Dominic RENEWAL
Chavez BriddickCanadaIvan Magalhaes QUALIFIED
Leon OldroydBrazilAnna Fali NEW
Deepesh ChuiSpainIvan Magalhaes RENEWAL
James ButtJapanAnna Fali RENEWAL
Adams MorascaAustraliaBernardo Dominic QUALIFIED
Wickens NestleUnited KingdomOnyama Limba QUALIFIED
Kaitlin OstroskyGermanyXuxue Feng UNQUALIFIED
Wickens NestleArgentinaIvan Magalhaes PROPOSAL
Mayumi KolmetzBrazilAsiya Javayant UNQUALIFIED
Wickens NestleCanadaIvan Magalhaes NEW
Morrow RutaJapanStephen Shaw UNQUALIFIED
Misaki RoysterSpainAsiya Javayant UNQUALIFIED
Jennifer AmigonGermanyAsiya Javayant QUALIFIED
Juan WieserFranceElwin Sharvill UNQUALIFIED
Misaki RoysterAustraliaAmy Elsner UNQUALIFIED
David DarakjyItalyBernardo Dominic QUALIFIED
Deepesh ChuiCanadaIvan Magalhaes NEGOTIATION
Murillo MaletArgentinaAsiya Javayant NEW
Misaki RoysterBrazilStephen Shaw PROPOSAL
Aika InouyeJapanStephen Shaw NEGOTIATION
Jeanfrancois VenereGermanyOnyama Limba NEW
Sinclair WaycottUnited KingdomBernardo Dominic NEGOTIATION
Aditya KuskoBrazilElwin Sharvill UNQUALIFIED
Faith GillianJapanXuxue Feng RENEWAL
David DarakjyIndiaAmy Elsner QUALIFIED
Ivar PaprockiArgentinaIvan Magalhaes UNQUALIFIED
Jeanfrancois VenereFranceOnyama Limba NEGOTIATION
Aika InouyeRussiaAnna Fali NEGOTIATION
Jones VocelkaSpainIvan Magalhaes NEW
Jones VocelkaRussiaAnna Fali PROPOSAL
Chavez BriddickIndiaXuxue Feng NEGOTIATION
Jennifer AmigonFranceAnna Fali PROPOSAL
Morrow RutaBrazilOnyama Limba PROPOSAL
Adams MorascaFranceIvan Magalhaes QUALIFIED
Emily WhobreyAustraliaXuxue Feng UNQUALIFIED
Johnson SergiGermanyBernardo Dominic NEW
Isabel BowleyFranceElwin Sharvill PROPOSAL
Cody SaylorsFranceIvan Magalhaes QUALIFIED
Chavez BriddickArgentinaIoni Bowcher NEGOTIATION
Juan WieserItalyIvan Magalhaes PROPOSAL
Rodrigues CampainJapanIvan Magalhaes RENEWAL
Horizontal
NameCountryRepresentativeStatus
Francesco ShinkoIndiaIvan Magalhaes QUALIFIED
Mayumi KolmetzBrazilAnna Fali PROPOSAL
Aruna FigeroaBrazilAnna Fali RENEWAL
David DarakjyCanadaAsiya Javayant QUALIFIED
Arvin AlbaresAustraliaStephen Shaw RENEWAL
Deepesh ChuiCanadaElwin Sharvill QUALIFIED
Leon OldroydItalyAsiya Javayant PROPOSAL
Ashley DoeArgentinaAsiya Javayant QUALIFIED
Leon OldroydIndiaXuxue Feng RENEWAL
Alejandro PerinSpainAnna Fali NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mayumi KolmetzIndia2021-09-22Printing Dimensions UNQUALIFIED50Elwin Sharvill
1001Mujtaba NickaItaly2021-09-30Rousseaux, Michael Esq NEW2Xuxue Feng
1002Deepesh ChuiArgentina2021-10-12Commercial Press PROPOSAL95Stephen Shaw
1003Johnson SergiGermany2021-09-28Rousseaux, Michael Esq UNQUALIFIED87Anna Fali
1004Munro FerenczGermany2021-09-28Morlong Associates PROPOSAL49Bernardo Dominic
1005Emily WhobreyBrazil2021-10-20Benton, John B Jr NEW85Xuxue Feng
1006Clifford RimArgentina2021-09-28Chanay, Jeffrey A Esq RENEWAL95Stephen Shaw
1007Darci PoquetteUnited Kingdom2021-10-10Buckley Miller Wright NEGOTIATION3Stephen Shaw
1008Sinclair WaycottAustralia2021-09-25King, Christopher A Esq UNQUALIFIED53Stephen Shaw
1009Alejandro PerinGermany2021-09-24Morlong Associates NEGOTIATION95Ioni Bowcher
1010Antonio CaudyBrazil2021-09-22Morlong Associates NEGOTIATION2Xuxue Feng
1011Jefferson SchemmerBrazil2021-10-08Chapman, Ross E Esq QUALIFIED89Elwin Sharvill
1012Aditya KuskoSpain2021-09-28Chemel, James L Cpa UNQUALIFIED90Stephen Shaw
1013Kadeem FlosiBrazil2021-10-19Benton, John B Jr UNQUALIFIED19Amy Elsner
1014Claire TollnerFrance2021-09-26Dorl, James J Esq RENEWAL40Ioni Bowcher
1015Chavez BriddickItaly2021-10-15Truhlar And Truhlar Attys NEGOTIATION93Amy Elsner
1016Salvatore StockhamCanada2021-10-20Feltz Printing Service QUALIFIED65Ioni Bowcher
1017Claire TollnerJapan2021-09-27Commercial Press QUALIFIED73Bernardo Dominic
1018Mujtaba NickaSpain2021-10-08Benton, John B Jr UNQUALIFIED54Amy Elsner
1019Morrow RutaItaly2021-10-17Printing Dimensions NEW77Asiya Javayant
1020Ashley DoeItaly2021-10-11Rangoni Of Florence QUALIFIED21Bernardo Dominic
1021Leon OldroydFrance2021-09-27Truhlar And Truhlar Attys NEW69Bernardo Dominic
1022Kadeem FlosiRussia2021-10-09Feltz Printing Service UNQUALIFIED84Xuxue Feng
1023Mayumi KolmetzItaly2021-09-29Feltz Printing Service NEW85Elwin Sharvill
1024Ricardo GauchoAustralia2021-10-10King, Christopher A Esq NEW43Onyama Limba
1025Arvin AlbaresCanada2021-09-23Truhlar And Truhlar Attys NEW23Xuxue Feng
1026Maria MarrierArgentina2021-10-12Truhlar And Truhlar Attys UNQUALIFIED19Bernardo Dominic
1027Clifford RimSpain2021-09-22Dorl, James J Esq QUALIFIED40Anna Fali
1028Ivar PaprockiRussia2021-10-19Commercial Press QUALIFIED66Stephen Shaw
1029Costa DilliardBrazil2021-10-20Benton, John B Jr QUALIFIED76Stephen Shaw
1030Munro FerenczAustralia2021-10-15King, Christopher A Esq QUALIFIED19Bernardo Dominic
1031Nicolas IturbideCanada2021-10-20Buckley Miller Wright PROPOSAL69Anna Fali
1032Faith GillianIndia2021-10-11Buckley Miller Wright NEW76Onyama Limba
1033Arvin AlbaresRussia2021-10-01Benton, John B Jr NEGOTIATION30Elwin Sharvill
1034Cody SaylorsSpain2021-10-03Commercial Press QUALIFIED88Ioni Bowcher
1035Ivar PaprockiSpain2021-09-28King, Christopher A Esq NEW68Anna Fali
1036Mujtaba NickaFrance2021-10-18Truhlar And Truhlar Attys PROPOSAL30Anna Fali
1037Silvio SlusarskiUnited Kingdom2021-09-23Benton, John B Jr UNQUALIFIED74Elwin Sharvill
1038Arvin AlbaresJapan2021-10-16Dorl, James J Esq RENEWAL89Ioni Bowcher
1039Salvatore StockhamSpain2021-09-28Dorl, James J Esq QUALIFIED50Asiya Javayant
1040Misaki RoysterIndia2021-10-17Printing Dimensions NEGOTIATION23Anna Fali
1041David DarakjyArgentina2021-10-08Printing Dimensions NEGOTIATION25Ioni Bowcher
1042David DarakjyAustralia2021-10-04Benton, John B Jr PROPOSAL37Xuxue Feng
1043Deepesh ChuiUnited Kingdom2021-10-04Chanay, Jeffrey A Esq RENEWAL82Ivan Magalhaes
1044Leon OldroydFrance2021-10-18Feltz Printing Service RENEWAL91Anna Fali
1045Jeanfrancois VenereRussia2021-10-05Truhlar And Truhlar Attys QUALIFIED62Elwin Sharvill
1046Jefferson SchemmerIndia2021-10-16Feiner Bros UNQUALIFIED73Asiya Javayant
1047Johnson SergiRussia2021-10-12Rangoni Of Florence QUALIFIED6Ivan Magalhaes
1048Arvin AlbaresGermany2021-10-01Chemel, James L Cpa PROPOSAL74Bernardo Dominic
1049Misaki RoysterGermany2021-09-21Feltz Printing Service NEGOTIATION33Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Antonio CaudyItalyAnna Fali UNQUALIFIED
Isabel BowleyGermanyBernardo Dominic QUALIFIED
Maisha RulapaughRussiaElwin Sharvill NEGOTIATION
Silvio SlusarskiItalyBernardo Dominic UNQUALIFIED
Maisha RulapaughBrazilElwin Sharvill RENEWAL
James ButtArgentinaAsiya Javayant UNQUALIFIED
Cody SaylorsCanadaXuxue Feng QUALIFIED
Costa DilliardJapanIvan Magalhaes NEGOTIATION
Costa DilliardArgentinaXuxue Feng PROPOSAL
Ivar PaprockiSpainBernardo Dominic QUALIFIED
Munro FerenczBrazilStephen Shaw QUALIFIED
Stacey MacleadAustraliaOnyama Limba NEW
Maria MarrierBrazilStephen Shaw NEW
Emily WhobreyItalyStephen Shaw NEW
Smith GlickUnited KingdomAmy Elsner QUALIFIED
Mayumi KolmetzUnited KingdomAsiya Javayant UNQUALIFIED
Emily WhobreyItalyOnyama Limba UNQUALIFIED
Jefferson SchemmerBrazilAmy Elsner PROPOSAL
Stacey MacleadSpainStephen Shaw UNQUALIFIED
Francesco ShinkoAustraliaBernardo Dominic UNQUALIFIED
Nicolas IturbideJapanXuxue Feng QUALIFIED
Ivar PaprockiAustraliaAsiya Javayant NEGOTIATION
Octavia MaletIndiaOnyama Limba NEGOTIATION
Munro FerenczJapanStephen Shaw RENEWAL
Aruna FigeroaItalyAmy Elsner QUALIFIED
Maisha RulapaughIndiaOnyama Limba QUALIFIED
Maisha RulapaughFranceAmy Elsner NEGOTIATION
Salvatore StockhamIndiaAmy Elsner QUALIFIED
Costa DilliardUnited KingdomAmy Elsner QUALIFIED
Chavez BriddickItalyBernardo Dominic QUALIFIED
Tony FollerGermanyIoni Bowcher PROPOSAL
Chavez BriddickRussiaStephen Shaw QUALIFIED
Faith GillianGermanyBernardo Dominic UNQUALIFIED
Darci PoquetteBrazilOnyama Limba NEGOTIATION
James ButtCanadaIoni Bowcher PROPOSAL
Ivar PaprockiItalyAmy Elsner RENEWAL
Tony FollerArgentinaStephen Shaw PROPOSAL
Antonio CaudyRussiaIoni Bowcher QUALIFIED
Antonio CaudyBrazilOnyama Limba UNQUALIFIED
Claire TollnerIndiaStephen Shaw PROPOSAL
Ivar PaprockiSpainAsiya Javayant QUALIFIED
Wickens NestleArgentinaBernardo Dominic UNQUALIFIED
Julie StensethJapanAnna Fali NEGOTIATION
Mayumi KolmetzRussiaXuxue Feng RENEWAL
Morrow RutaIndiaIvan Magalhaes NEGOTIATION
Silvio SlusarskiBrazilAnna Fali PROPOSAL
Isabel BowleyGermanyIoni Bowcher UNQUALIFIED
James ButtRussiaOnyama Limba PROPOSAL
Wickens NestleGermanyBernardo Dominic QUALIFIED
Kaitlin OstroskyUnited KingdomIvan Magalhaes RENEWAL
Frozen Columns
Name
Leon Oldroyd
Deepesh Chui
Cody Saylors
Greenwood Bolognia
Isabel Bowley
Ivar Paprocki
Greenwood Bolognia
Tony Foller
Tony Foller
Cody Saylors
Mayumi Kolmetz
Mayumi Kolmetz
Kadeem Flosi
Silvio Slusarski
Johnson Sergi
Izzy Garufi
Greenwood Bolognia
Juan Wieser
Kaitlin Ostrosky
Faith Gillian
Silvio Slusarski
Alejandro Perin
Arvin Albares
Emily Whobrey
Claire Tollner
Arvin Albares
Kadeem Flosi
Isabel Bowley
Mujtaba Nicka
Wickens Nestle
Alejandro Perin
Aruna Figeroa
Leja Caldarera
Juan Wieser
Claire Tollner
Jeanfrancois Venere
Sinclair Waycott
Izzy Garufi
Munro Ferencz
Greenwood Bolognia
Darci Poquette
Leja Caldarera
Chavez Briddick
Mujtaba Nicka
Darci Poquette
Octavia Malet
Cody Saylors
Salvatore Stockham
Faith Gillian
Deepesh Chui
IdCountryDate
1000Brazil2021-10-14
1001Canada2021-10-02
1002Russia2021-10-17
1003Germany2021-10-18
1004India2021-09-23
1005France2021-10-18
1006France2021-10-13
1007Russia2021-10-09
1008Canada2021-10-09
1009Brazil2021-10-01
1010Germany2021-10-12
1011Argentina2021-10-02
1012Argentina2021-09-26
1013Spain2021-09-29
1014France2021-09-29
1015Spain2021-09-23
1016Italy2021-10-20
1017Japan2021-09-23
1018Brazil2021-10-04
1019India2021-09-25
1020Italy2021-10-19
1021Germany2021-10-01
1022Spain2021-10-05
1023India2021-09-22
1024France2021-10-14
1025Germany2021-09-24
1026France2021-10-06
1027Argentina2021-10-18
1028Japan2021-10-07
1029Spain2021-10-07
1030Australia2021-10-12
1031Russia2021-09-26
1032Canada2021-10-10
1033Brazil2021-09-25
1034Argentina2021-10-05
1035France2021-09-23
1036Brazil2021-09-30
1037Brazil2021-10-09
1038United Kingdom2021-09-29
1039Germany2021-10-06
1040United Kingdom2021-09-27
1041India2021-09-21
1042Italy2021-09-24
1043Russia2021-10-11
1044Canada2021-09-30
1045Germany2021-09-29
1046India2021-10-01
1047India2021-09-27
1048Russia2021-10-20
1049Brazil2021-10-18
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: