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
Clifford RimUnited KingdomIoni Bowcher PROPOSAL
Chavez BriddickJapanStephen Shaw RENEWAL
Mujtaba NickaCanadaAnna Fali NEGOTIATION
Smith GlickBrazilXuxue Feng UNQUALIFIED
Costa DilliardRussiaAmy Elsner NEGOTIATION
Isabel BowleyAustraliaStephen Shaw NEGOTIATION
Faith GillianJapanStephen Shaw UNQUALIFIED
Aruna FigeroaAustraliaIvan Magalhaes NEW
James ButtCanadaXuxue Feng NEW
Francesco ShinkoFranceIvan Magalhaes NEW
Ricardo GauchoAustraliaIoni Bowcher PROPOSAL
Leja CaldareraSpainIvan Magalhaes QUALIFIED
Silvio SlusarskiJapanIvan Magalhaes QUALIFIED
Stacey MacleadAustraliaIvan Magalhaes RENEWAL
Tony FollerRussiaXuxue Feng NEW
Alejandro PerinArgentinaElwin Sharvill QUALIFIED
Jefferson SchemmerArgentinaStephen Shaw RENEWAL
Faith GillianItalyOnyama Limba UNQUALIFIED
Julie StensethUnited KingdomBernardo Dominic UNQUALIFIED
Greenwood BologniaJapanElwin Sharvill QUALIFIED
Izzy GarufiCanadaIvan Magalhaes QUALIFIED
Costa DilliardSpainXuxue Feng NEGOTIATION
Antonio CaudyRussiaIoni Bowcher QUALIFIED
Morrow RutaItalyIvan Magalhaes QUALIFIED
Deepesh ChuiSpainOnyama Limba QUALIFIED
Ivar PaprockiRussiaOnyama Limba NEGOTIATION
Kaitlin OstroskyArgentinaOnyama Limba RENEWAL
Mujtaba NickaRussiaOnyama Limba PROPOSAL
Emily WhobreyGermanyIoni Bowcher QUALIFIED
Isabel BowleySpainElwin Sharvill NEGOTIATION
Tony FollerFranceAnna Fali UNQUALIFIED
Tony FollerUnited KingdomElwin Sharvill UNQUALIFIED
Maria MarrierArgentinaIoni Bowcher RENEWAL
Jefferson SchemmerSpainXuxue Feng QUALIFIED
Aruna FigeroaBrazilIvan Magalhaes RENEWAL
Sinclair WaycottArgentinaOnyama Limba NEGOTIATION
Misaki RoysterCanadaXuxue Feng NEGOTIATION
Smith GlickItalyBernardo Dominic UNQUALIFIED
Clifford RimRussiaElwin Sharvill RENEWAL
Francesco ShinkoIndiaOnyama Limba PROPOSAL
Adams MorascaSpainStephen Shaw UNQUALIFIED
Alejandro PerinGermanyAsiya Javayant RENEWAL
Antonio CaudyUnited KingdomIvan Magalhaes UNQUALIFIED
Sinclair WaycottSpainBernardo Dominic NEW
Chavez BriddickGermanyStephen Shaw QUALIFIED
Faith GillianArgentinaBernardo Dominic PROPOSAL
Tony FollerUnited KingdomElwin Sharvill RENEWAL
Juan WieserRussiaAmy Elsner UNQUALIFIED
Smith GlickIndiaAsiya Javayant PROPOSAL
Rodrigues CampainSpainIoni Bowcher NEW
Horizontal
NameCountryRepresentativeStatus
Francesco ShinkoArgentinaXuxue Feng RENEWAL
Cody SaylorsGermanyAsiya Javayant QUALIFIED
Maisha RulapaughBrazilAnna Fali UNQUALIFIED
Leja CaldareraBrazilAmy Elsner PROPOSAL
Aruna FigeroaArgentinaAmy Elsner NEGOTIATION
Clifford RimAustraliaOnyama Limba PROPOSAL
Aika InouyeItalyIvan Magalhaes UNQUALIFIED
Misaki RoysterFranceAsiya Javayant QUALIFIED
Jefferson SchemmerGermanyStephen Shaw QUALIFIED
Tony FollerCanadaIvan Magalhaes NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Tony FollerFrance2022-01-02Feiner Bros RENEWAL70Bernardo Dominic
1001Emily WhobreyUnited Kingdom2022-01-14Chemel, James L Cpa NEGOTIATION86Ivan Magalhaes
1002Alejandro PerinCanada2022-01-15Morlong Associates PROPOSAL84Anna Fali
1003Julie StensethItaly2022-01-17Benton, John B Jr NEW6Stephen Shaw
1004Ashley DoeIndia2022-01-08Benton, John B Jr NEW21Ivan Magalhaes
1005Francesco ShinkoRussia2022-01-05Benton, John B Jr UNQUALIFIED54Asiya Javayant
1006Mujtaba NickaItaly2022-01-17Chanay, Jeffrey A Esq UNQUALIFIED17Bernardo Dominic
1007Aika InouyeFrance2022-01-08Rousseaux, Michael Esq PROPOSAL14Ivan Magalhaes
1008Darci PoquetteItaly2021-12-27Chemel, James L Cpa NEW33Stephen Shaw
1009David DarakjyArgentina2022-01-20Chapman, Ross E Esq PROPOSAL79Bernardo Dominic
1010Clifford RimRussia2021-12-23Truhlar And Truhlar Attys NEW65Anna Fali
1011Johnson SergiSpain2022-01-13Feltz Printing Service NEW43Ivan Magalhaes
1012Rodrigues CampainJapan2021-12-30King, Christopher A Esq NEW7Elwin Sharvill
1013Kaitlin OstroskyBrazil2021-12-24Dorl, James J Esq NEGOTIATION73Bernardo Dominic
1014Rodrigues CampainBrazil2021-12-28Feltz Printing Service RENEWAL26Xuxue Feng
1015Rodrigues CampainIndia2021-12-26Chanay, Jeffrey A Esq PROPOSAL24Onyama Limba
1016Ivar PaprockiArgentina2022-01-13Printing Dimensions NEGOTIATION89Anna Fali
1017Tony FollerRussia2021-12-27Feltz Printing Service RENEWAL16Xuxue Feng
1018Francesco ShinkoFrance2022-01-06Buckley Miller Wright NEW86Bernardo Dominic
1019Faith GillianCanada2022-01-12Printing Dimensions NEW23Stephen Shaw
1020Aditya KuskoAustralia2022-01-21King, Christopher A Esq RENEWAL88Ivan Magalhaes
1021Deepesh ChuiArgentina2022-01-16Rangoni Of Florence RENEWAL59Ivan Magalhaes
1022Octavia MaletSpain2022-01-09Commercial Press QUALIFIED62Onyama Limba
1023Murillo MaletArgentina2021-12-24Commercial Press RENEWAL74Amy Elsner
1024Nicolas IturbideAustralia2021-12-27Buckley Miller Wright RENEWAL37Bernardo Dominic
1025Julie StensethIndia2022-01-13Commercial Press UNQUALIFIED79Onyama Limba
1026Maria MarrierBrazil2022-01-02Feiner Bros QUALIFIED87Xuxue Feng
1027Isabel BowleyArgentina2022-01-06Feltz Printing Service PROPOSAL25Elwin Sharvill
1028Claire TollnerGermany2022-01-17Benton, John B Jr RENEWAL15Elwin Sharvill
1029Munro FerenczCanada2022-01-15Feltz Printing Service NEGOTIATION38Onyama Limba
1030Mujtaba NickaJapan2021-12-24Rangoni Of Florence UNQUALIFIED31Anna Fali
1031Juan WieserCanada2022-01-11Rangoni Of Florence UNQUALIFIED27Amy Elsner
1032Darci PoquetteItaly2022-01-21Rousseaux, Michael Esq NEGOTIATION5Bernardo Dominic
1033Ricardo GauchoItaly2022-01-11Rousseaux, Michael Esq PROPOSAL36Anna Fali
1034Misaki RoysterCanada2021-12-23King, Christopher A Esq NEGOTIATION21Amy Elsner
1035Izzy GarufiUnited Kingdom2021-12-31Commercial Press NEW2Bernardo Dominic
1036Deepesh ChuiCanada2022-01-10Rangoni Of Florence RENEWAL94Onyama Limba
1037Francesco ShinkoJapan2022-01-15Chemel, James L Cpa NEW27Xuxue Feng
1038Faith GillianUnited Kingdom2022-01-03Dorl, James J Esq RENEWAL85Xuxue Feng
1039Morrow RutaFrance2022-01-11Chanay, Jeffrey A Esq NEGOTIATION24Xuxue Feng
1040Kaitlin OstroskyBrazil2022-01-07Rangoni Of Florence NEGOTIATION41Asiya Javayant
1041Costa DilliardFrance2021-12-28Chapman, Ross E Esq UNQUALIFIED32Elwin Sharvill
1042Ashley DoeFrance2022-01-07Rangoni Of Florence NEGOTIATION74Xuxue Feng
1043Cody SaylorsAustralia2022-01-20Buckley Miller Wright UNQUALIFIED48Anna Fali
1044Kadeem FlosiBrazil2022-01-03Chapman, Ross E Esq NEW70Bernardo Dominic
1045Costa DilliardFrance2022-01-02Chemel, James L Cpa UNQUALIFIED32Stephen Shaw
1046Emily WhobreyRussia2022-01-03Chapman, Ross E Esq RENEWAL30Bernardo Dominic
1047Silvio SlusarskiItaly2021-12-31Printing Dimensions UNQUALIFIED38Stephen Shaw
1048Julie StensethJapan2022-01-08Dorl, James J Esq NEGOTIATION93Stephen Shaw
1049Clifford RimFrance2021-12-27Benton, John B Jr PROPOSAL33Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Chavez BriddickJapanIvan Magalhaes NEW
Greenwood BologniaSpainAnna Fali NEW
Deepesh ChuiFranceBernardo Dominic NEW
Deepesh ChuiIndiaElwin Sharvill RENEWAL
Maria MarrierSpainBernardo Dominic NEGOTIATION
Leja CaldareraGermanyElwin Sharvill RENEWAL
Johnson SergiJapanStephen Shaw QUALIFIED
Munro FerenczGermanyIvan Magalhaes NEW
James ButtArgentinaAsiya Javayant QUALIFIED
Alejandro PerinBrazilOnyama Limba PROPOSAL
Ashley DoeArgentinaStephen Shaw PROPOSAL
Smith GlickArgentinaStephen Shaw PROPOSAL
Jeanfrancois VenereItalyBernardo Dominic PROPOSAL
Deepesh ChuiCanadaStephen Shaw NEGOTIATION
Mayumi KolmetzGermanyAsiya Javayant QUALIFIED
Deepesh ChuiSpainAnna Fali UNQUALIFIED
Wickens NestleIndiaXuxue Feng UNQUALIFIED
Izzy GarufiIndiaAsiya Javayant QUALIFIED
Costa DilliardRussiaIvan Magalhaes QUALIFIED
Emily WhobreyUnited KingdomElwin Sharvill QUALIFIED
Mayumi KolmetzRussiaBernardo Dominic NEW
Antonio CaudyUnited KingdomXuxue Feng UNQUALIFIED
Aika InouyeBrazilElwin Sharvill UNQUALIFIED
Wickens NestleGermanyIoni Bowcher NEGOTIATION
Stacey MacleadAustraliaOnyama Limba QUALIFIED
Emily WhobreyJapanElwin Sharvill PROPOSAL
Cody SaylorsArgentinaAsiya Javayant NEGOTIATION
Jefferson SchemmerCanadaElwin Sharvill QUALIFIED
Francesco ShinkoAustraliaXuxue Feng QUALIFIED
Faith GillianGermanyStephen Shaw NEGOTIATION
Aruna FigeroaUnited KingdomAnna Fali RENEWAL
Silvio SlusarskiIndiaOnyama Limba NEGOTIATION
Julie StensethFranceStephen Shaw UNQUALIFIED
Tony FollerGermanyElwin Sharvill RENEWAL
Arvin AlbaresBrazilIvan Magalhaes NEW
Jeanfrancois VenereCanadaAnna Fali NEW
Wickens NestleRussiaStephen Shaw QUALIFIED
Cody SaylorsAustraliaXuxue Feng NEGOTIATION
Stacey MacleadArgentinaAsiya Javayant QUALIFIED
Misaki RoysterArgentinaOnyama Limba RENEWAL
Aruna FigeroaCanadaAnna Fali PROPOSAL
Maisha RulapaughIndiaAsiya Javayant PROPOSAL
Claire TollnerBrazilBernardo Dominic UNQUALIFIED
Aika InouyeArgentinaAnna Fali PROPOSAL
Misaki RoysterBrazilAmy Elsner PROPOSAL
Greenwood BologniaJapanAsiya Javayant QUALIFIED
Sinclair WaycottAustraliaAnna Fali NEGOTIATION
Chavez BriddickArgentinaBernardo Dominic PROPOSAL
Leon OldroydIndiaBernardo Dominic NEGOTIATION
David DarakjyUnited KingdomXuxue Feng PROPOSAL
Frozen Columns
Name
Rodrigues Campain
Antonio Caudy
Johnson Sergi
Jefferson Schemmer
Mujtaba Nicka
Chavez Briddick
Jefferson Schemmer
Deepesh Chui
Maisha Rulapaugh
Murillo Malet
Misaki Royster
Adams Morasca
James Butt
Tony Foller
Kaitlin Ostrosky
Smith Glick
Chavez Briddick
Izzy Garufi
Emily Whobrey
Octavia Malet
Silvio Slusarski
James Butt
Sinclair Waycott
Ricardo Gaucho
Rodrigues Campain
Mayumi Kolmetz
Mujtaba Nicka
Ricardo Gaucho
Alejandro Perin
Julie Stenseth
Leja Caldarera
Salvatore Stockham
Nicolas Iturbide
Isabel Bowley
Juan Wieser
Aruna Figeroa
Antonio Caudy
Jeanfrancois Venere
Nicolas Iturbide
Julie Stenseth
Clifford Rim
David Darakjy
James Butt
Murillo Malet
Aruna Figeroa
Jennifer Amigon
Munro Ferencz
Smith Glick
Chavez Briddick
Greenwood Bolognia
IdCountryDate
1000Italy2021-12-31
1001Germany2022-01-07
1002France2022-01-15
1003United Kingdom2022-01-01
1004Spain2022-01-09
1005France2022-01-03
1006Canada2021-12-24
1007Spain2022-01-19
1008Italy2021-12-24
1009Japan2021-12-29
1010Brazil2022-01-17
1011France2022-01-12
1012Brazil2022-01-15
1013Canada2022-01-21
1014Australia2021-12-24
1015Italy2021-12-25
1016Canada2021-12-31
1017Russia2022-01-15
1018Japan2022-01-05
1019Germany2022-01-21
1020Russia2021-12-25
1021Brazil2021-12-23
1022India2022-01-12
1023Italy2022-01-11
1024Japan2022-01-02
1025Canada2021-12-26
1026France2022-01-03
1027Australia2022-01-17
1028Australia2022-01-19
1029United Kingdom2022-01-03
1030Brazil2022-01-11
1031Japan2022-01-01
1032India2022-01-02
1033India2022-01-17
1034Russia2022-01-01
1035Argentina2022-01-02
1036Australia2021-12-24
1037Spain2022-01-11
1038Argentina2022-01-03
1039France2022-01-13
1040France2021-12-27
1041Spain2022-01-10
1042United Kingdom2022-01-19
1043Spain2022-01-16
1044India2022-01-15
1045Russia2022-01-10
1046United Kingdom2022-01-20
1047Germany2022-01-11
1048Brazil2022-01-12
1049Australia2022-01-16
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Munro FerenczJapanAsiya Javayant QUALIFIED
Adams MorascaUnited KingdomBernardo Dominic NEW
Alejandro PerinArgentinaAsiya Javayant QUALIFIED
Aditya KuskoFranceAnna Fali UNQUALIFIED
Emily WhobreyFranceOnyama Limba QUALIFIED
Maria MarrierBrazilElwin Sharvill RENEWAL
Clifford RimItalyOnyama Limba UNQUALIFIED
Ashley DoeCanadaStephen Shaw PROPOSAL
Aditya KuskoFranceBernardo Dominic QUALIFIED
Smith GlickCanadaIvan Magalhaes NEW
Aditya KuskoFranceAnna Fali NEGOTIATION
Juan WieserIndiaIoni Bowcher PROPOSAL
Arvin AlbaresRussiaAmy Elsner NEGOTIATION
Alejandro PerinJapanAnna Fali RENEWAL
Aditya KuskoRussiaBernardo Dominic NEW
Deepesh ChuiJapanStephen Shaw PROPOSAL
Nicolas IturbideItalyIvan Magalhaes PROPOSAL
Ivar PaprockiRussiaBernardo Dominic PROPOSAL
Jefferson SchemmerJapanAsiya Javayant UNQUALIFIED
Rodrigues CampainAustraliaStephen Shaw NEW
Kadeem FlosiUnited KingdomStephen Shaw PROPOSAL
Maisha RulapaughUnited KingdomIvan Magalhaes PROPOSAL
Maria MarrierIndiaBernardo Dominic NEW
Claire TollnerSpainBernardo Dominic RENEWAL
Ricardo GauchoItalyElwin Sharvill UNQUALIFIED
Octavia MaletIndiaAsiya Javayant UNQUALIFIED
Sinclair WaycottFranceAsiya Javayant RENEWAL
Murillo MaletGermanyElwin Sharvill RENEWAL
Johnson SergiSpainElwin Sharvill QUALIFIED
Antonio CaudyCanadaElwin Sharvill RENEWAL
Francesco ShinkoArgentinaIoni Bowcher QUALIFIED
Johnson SergiIndiaBernardo Dominic UNQUALIFIED
Munro FerenczGermanyBernardo Dominic NEGOTIATION
James ButtGermanyBernardo Dominic NEGOTIATION
Jeanfrancois VenereCanadaXuxue Feng NEW
Aruna FigeroaUnited KingdomAnna Fali NEGOTIATION
Darci PoquetteRussiaIvan Magalhaes NEGOTIATION
Darci PoquetteRussiaAnna Fali UNQUALIFIED
Jefferson SchemmerIndiaBernardo Dominic NEW
Faith GillianFranceOnyama Limba NEW

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