Locale

Change the locale of the datepicker, schedule and client side validation messages.

Language
English
French
German
Italian
Korean
Spanish
Catalan
Dutch
Portuguese
Portuguese
Arabic
Czech
Greek
Persian
Hindi
Indonesian
Croatian
Japanese
Hungarian
Hebrew
Georgian
Lithuanian
Latvian
Norwegian
Polish
Romanian
Russian
Slovak
Slovenian
Serbian
Swedish
Turkish
Ukrainian
Vietnamese
Chinese
Chinese

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
Antonio V CampainArgentinaIvan Magalhaes PROPOSAL
Cody O DarakjyCanadaStephen Shaw PROPOSAL
Deepesh E SlusarskiSpainAmy Elsner NEGOTIATION
Wickens X ShinkoRussiaIvan Magalhaes QUALIFIED
Faith R WaycottBrazilIoni Bowcher RENEWAL
Mujtaba V MarrierAustraliaAsiya Javayant PROPOSAL
Leja F GarufiFranceAnna Fali NEGOTIATION
Aruna I TollnerAustraliaIvan Magalhaes UNQUALIFIED
Julie A GarufiJapanIvan Magalhaes PROPOSAL
Claire Y GlickRussiaIoni Bowcher QUALIFIED
Kaitlin N SlusarskiItalyStephen Shaw RENEWAL
Izzy R SaylorsJapanAmy Elsner RENEWAL
Izzy I OstroskyJapanElwin Sharvill QUALIFIED
Aruna K MacleadArgentinaIvan Magalhaes PROPOSAL
Deepesh R VenereItalyOnyama Limba QUALIFIED
Greenwood Q BowleyFranceIoni Bowcher NEGOTIATION
Cody I MacleadGermanyBernardo Dominic QUALIFIED
Chavez P MaletUnited KingdomAmy Elsner UNQUALIFIED
Stacey F DoeAustraliaOnyama Limba RENEWAL
Chavez D TollnerJapanStephen Shaw QUALIFIED
Alejandro S MacleadIndiaBernardo Dominic RENEWAL
Rodrigues U SchemmerJapanXuxue Feng QUALIFIED
Kaitlin I DoeSpainAnna Fali RENEWAL
Francesco L SaylorsSpainIvan Magalhaes NEW
Ivar B KolmetzFranceStephen Shaw UNQUALIFIED
Aruna Y KuskoGermanyIoni Bowcher PROPOSAL
Adams Z RulapaughRussiaIoni Bowcher RENEWAL
Johnson E SlusarskiCanadaElwin Sharvill RENEWAL
Aditya F DoeItalyElwin Sharvill NEW
Cody N FlosiJapanIvan Magalhaes PROPOSAL
Francesco B MarrierArgentinaElwin Sharvill NEW
Alejandro D FigeroaItalyAsiya Javayant UNQUALIFIED
Mujtaba Q OstroskyCanadaAmy Elsner NEW
Tony G CampainArgentinaIoni Bowcher UNQUALIFIED
Misaki T VocelkaSpainAsiya Javayant UNQUALIFIED
Ricardo V RutaAustraliaIvan Magalhaes PROPOSAL
Claire U FerenczIndiaIoni Bowcher RENEWAL
Ricardo J DarakjyIndiaAmy Elsner QUALIFIED
Kadeem Q WaycottCanadaStephen Shaw PROPOSAL
Leja W ShinkoRussiaXuxue Feng QUALIFIED
Costa Y CampainIndiaIoni Bowcher RENEWAL
Sinclair I GarufiFranceIvan Magalhaes QUALIFIED
Sinclair N DoeCanadaBernardo Dominic UNQUALIFIED
David N CaudySpainElwin Sharvill RENEWAL
Rodrigues P ChuiBrazilAnna Fali QUALIFIED
Costa J AlbaresRussiaElwin Sharvill NEGOTIATION
Leja M RoysterIndiaIvan Magalhaes NEGOTIATION
Darci M IturbideAustraliaIoni Bowcher RENEWAL
Aika S KuskoJapanIvan Magalhaes UNQUALIFIED
Costa Y NickaIndiaElwin Sharvill RENEWAL
Horizontal
NameCountryRepresentativeStatus
Wickens L WieserJapanXuxue Feng NEW
Costa O AlbaresIndiaIoni Bowcher QUALIFIED
Silvio V MacleadIndiaBernardo Dominic NEGOTIATION
Kaitlin S OldroydIndiaAnna Fali UNQUALIFIED
Juan E MaletJapanXuxue Feng UNQUALIFIED
Leja O PerinArgentinaAsiya Javayant NEGOTIATION
Smith N SaylorsFranceElwin Sharvill RENEWAL
James J SchemmerAustraliaOnyama Limba QUALIFIED
Munro F SaylorsArgentinaBernardo Dominic PROPOSAL
Sinclair U ShinkoGermanyAmy Elsner UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Julie S PerinGermany2024-03-27Truhlar And Truhlar Attys NEGOTIATION32Onyama Limba
1001Francesco I AmigonItaly2024-04-07Buckley Miller Wright RENEWAL0Stephen Shaw
1002David U WieserBrazil2024-04-21Morlong Associates NEGOTIATION62Anna Fali
1003Mujtaba O KolmetzRussia2024-03-30Printing Dimensions QUALIFIED87Amy Elsner
1004Aika N DoeBrazil2024-04-04Truhlar And Truhlar Attys UNQUALIFIED41Asiya Javayant
1005Jones Q DarakjyJapan2024-04-16Rangoni Of Florence UNQUALIFIED11Xuxue Feng
1006Ivar F MorascaFrance2024-03-31Chapman, Ross E Esq NEW85Xuxue Feng
1007Aditya L InouyeFrance2024-04-02Morlong Associates QUALIFIED33Asiya Javayant
1008Octavia W MacleadArgentina2024-04-01King, Christopher A Esq UNQUALIFIED76Xuxue Feng
1009Silvio G FollerArgentina2024-04-08Truhlar And Truhlar Attys PROPOSAL62Bernardo Dominic
1010Claire I SchemmerAustralia2024-04-24Rousseaux, Michael Esq PROPOSAL39Anna Fali
1011Chavez B NestleRussia2024-03-28Truhlar And Truhlar Attys RENEWAL99Ivan Magalhaes
1012Cody V CaudyArgentina2024-04-06Feltz Printing Service QUALIFIED22Amy Elsner
1013Alejandro F GlickFrance2024-03-28Truhlar And Truhlar Attys NEW72Bernardo Dominic
1014Kadeem Y CampainAustralia2024-04-22Feltz Printing Service PROPOSAL28Ivan Magalhaes
1015Johnson N RoysterJapan2024-04-05King, Christopher A Esq RENEWAL32Asiya Javayant
1016Maria T FerenczArgentina2024-04-13Commercial Press UNQUALIFIED24Asiya Javayant
1017Izzy M GarufiRussia2024-03-27Feltz Printing Service QUALIFIED72Bernardo Dominic
1018Mayumi P GauchoArgentina2024-03-31Chemel, James L Cpa UNQUALIFIED75Asiya Javayant
1019Misaki P MacleadUnited Kingdom2024-04-20Printing Dimensions QUALIFIED68Stephen Shaw
1020Silvio E FollerArgentina2024-04-19Printing Dimensions RENEWAL99Amy Elsner
1021Jennifer W PaprockiAustralia2024-04-24Dorl, James J Esq NEW36Asiya Javayant
1022Maisha H AmigonArgentina2024-04-14Feiner Bros NEGOTIATION40Onyama Limba
1023David O RutaUnited Kingdom2024-04-14Commercial Press RENEWAL69Bernardo Dominic
1024Tony Z ChuiFrance2024-04-20Truhlar And Truhlar Attys UNQUALIFIED62Anna Fali
1025Alejandro K BriddickBrazil2024-03-31Truhlar And Truhlar Attys NEW5Amy Elsner
1026Faith P OldroydAustralia2024-04-03Dorl, James J Esq QUALIFIED10Elwin Sharvill
1027Leja K ShinkoBrazil2024-04-04Buckley Miller Wright NEGOTIATION66Elwin Sharvill
1028Julie K CampainUnited Kingdom2024-04-25Rangoni Of Florence NEW66Xuxue Feng
1029Maisha O SaylorsArgentina2024-04-17Feltz Printing Service RENEWAL25Anna Fali
1030Jones G MacleadBrazil2024-04-10Commercial Press PROPOSAL32Ioni Bowcher
1031Darci G AlbaresArgentina2024-04-16Buckley Miller Wright UNQUALIFIED64Ivan Magalhaes
1032Francesco T GauchoBrazil2024-04-03Truhlar And Truhlar Attys UNQUALIFIED25Anna Fali
1033Morrow X RutaAustralia2024-04-19Chanay, Jeffrey A Esq PROPOSAL91Ioni Bowcher
1034Aditya O RoysterRussia2024-04-18Printing Dimensions NEW8Asiya Javayant
1035Francesco P GillianRussia2024-04-25Commercial Press QUALIFIED69Stephen Shaw
1036Ricardo B VenereAustralia2024-04-02Benton, John B Jr NEW5Onyama Limba
1037Aruna F DarakjyJapan2024-04-24Buckley Miller Wright PROPOSAL23Ivan Magalhaes
1038Aika I TollnerJapan2024-04-22Chapman, Ross E Esq NEGOTIATION41Ioni Bowcher
1039Leon Q ButtCanada2024-04-10Feltz Printing Service RENEWAL24Ioni Bowcher
1040Morrow W StockhamArgentina2024-03-31Commercial Press RENEWAL99Ivan Magalhaes
1041Mujtaba X OstroskyUnited Kingdom2024-04-20Chemel, James L Cpa NEGOTIATION56Onyama Limba
1042Cody R FollerBrazil2024-04-05Buckley Miller Wright NEGOTIATION71Onyama Limba
1043Jefferson O WieserBrazil2024-04-07Rousseaux, Michael Esq NEW57Ioni Bowcher
1044Johnson U VenereUnited Kingdom2024-04-02Rousseaux, Michael Esq RENEWAL38Onyama Limba
1045Jeanfrancois S WhobreySpain2024-04-19Printing Dimensions QUALIFIED46Bernardo Dominic
1046Emily G FerenczRussia2024-04-11Chanay, Jeffrey A Esq NEW71Stephen Shaw
1047Nicolas Q BologniaAustralia2024-04-10Benton, John B Jr PROPOSAL83Anna Fali
1048Chavez B FerenczCanada2024-04-20Chemel, James L Cpa RENEWAL15Onyama Limba
1049Leja A NestleIndia2024-04-19King, Christopher A Esq NEGOTIATION35Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Claire N PerinBrazilIoni Bowcher PROPOSAL
Murillo C GillianIndiaAnna Fali UNQUALIFIED
Morrow H AmigonRussiaOnyama Limba NEW
Jefferson K SlusarskiItalyAnna Fali QUALIFIED
Juan Q FlosiJapanElwin Sharvill QUALIFIED
Stacey M RoysterIndiaIoni Bowcher RENEWAL
Jefferson A MaletUnited KingdomAmy Elsner UNQUALIFIED
Munro K BriddickCanadaIoni Bowcher UNQUALIFIED
Ashley C DoeRussiaIoni Bowcher PROPOSAL
Silvio I NestleUnited KingdomOnyama Limba NEW
David E BriddickIndiaElwin Sharvill NEW
Salvatore T PerinBrazilOnyama Limba RENEWAL
Silvio V WhobreyGermanyAsiya Javayant UNQUALIFIED
Tony U NickaArgentinaAnna Fali PROPOSAL
Leja K RimBrazilElwin Sharvill NEW
Arvin C PerinFranceOnyama Limba PROPOSAL
Maria K WaycottAustraliaElwin Sharvill PROPOSAL
Silvio U BologniaGermanyOnyama Limba NEGOTIATION
Jefferson C WieserArgentinaAsiya Javayant QUALIFIED
Costa F GlickJapanXuxue Feng QUALIFIED
Faith T GauchoFranceBernardo Dominic NEW
Mujtaba Q PoquetteArgentinaAnna Fali NEW
Emily F RutaGermanyAnna Fali RENEWAL
Leja T RulapaughCanadaElwin Sharvill NEW
Faith W WaycottItalyIoni Bowcher QUALIFIED
Jefferson G WaycottCanadaIvan Magalhaes RENEWAL
Alejandro O NestleJapanAnna Fali RENEWAL
Aika W MorascaItalyBernardo Dominic QUALIFIED
Maria F PerinItalyBernardo Dominic PROPOSAL
Morrow L SchemmerAustraliaOnyama Limba RENEWAL
Ashley V NickaAustraliaAsiya Javayant UNQUALIFIED
Octavia C StockhamItalyAmy Elsner RENEWAL
Johnson T ShinkoBrazilAmy Elsner QUALIFIED
Izzy S VocelkaGermanyIvan Magalhaes PROPOSAL
Jeanfrancois F OstroskyItalyBernardo Dominic PROPOSAL
Sinclair U RulapaughUnited KingdomIoni Bowcher UNQUALIFIED
Francesco M DilliardCanadaIoni Bowcher PROPOSAL
Jones M FigeroaSpainAmy Elsner QUALIFIED
Juan A GarufiUnited KingdomElwin Sharvill UNQUALIFIED
Mujtaba D AlbaresJapanOnyama Limba NEW
Aditya Q DarakjyArgentinaStephen Shaw QUALIFIED
Maria N KuskoCanadaElwin Sharvill NEW
Darci Y RutaItalyOnyama Limba NEGOTIATION
Leja L GarufiIndiaAmy Elsner QUALIFIED
Rodrigues U WhobreyIndiaAnna Fali PROPOSAL
Deepesh B MarrierAustraliaAsiya Javayant NEGOTIATION
Munro R SlusarskiCanadaIvan Magalhaes UNQUALIFIED
Claire K DoeItalyAsiya Javayant NEW
Mayumi G RimIndiaIvan Magalhaes RENEWAL
Munro G InouyeRussiaAsiya Javayant PROPOSAL
Frozen Columns
Name
Leon W Maclead
Aruna P Venere
Kadeem T Marrier
Aika Y Slusarski
Smith N Morasca
Jeanfrancois Q Perin
Cody B Venere
Greenwood V Albares
Smith E Gillian
Claire W Darakjy
David C Rulapaugh
Alejandro C Kolmetz
Costa L Tollner
Juan H Ostrosky
Johnson S Stenseth
Silvio Q Briddick
Emily Q Shinko
Rodrigues C Briddick
Murillo A Ferencz
Jefferson D Ruta
Aika M Waycott
David U Inouye
Mayumi C Butt
Leon H Ruta
Maisha R Tollner
Leon U Gaucho
Ivar S Slusarski
Chavez L Chui
Johnson C Butt
Salvatore Y Gaucho
Francesco D Shinko
Rodrigues O Iturbide
Stacey E Darakjy
Silvio S Caudy
Jeanfrancois Z Amigon
Juan G Whobrey
Clifford T Rim
Julie N Caudy
Wickens G Tollner
Adams S Kusko
Greenwood E Waycott
Tony M Stockham
Munro N Shinko
Clifford R Marrier
Nicolas N Bolognia
Francesco H Bolognia
Cody Y Doe
Julie Q Wieser
Johnson B Foller
Darci M Kolmetz
IdCountryDate
1000Australia2024-04-07
1001Brazil2024-04-20
1002India2024-04-19
1003India2024-04-14
1004Canada2024-03-31
1005Japan2024-04-23
1006Australia2024-04-10
1007United Kingdom2024-04-11
1008Spain2024-04-16
1009India2024-04-14
1010Germany2024-04-17
1011India2024-04-25
1012Brazil2024-04-03
1013Brazil2024-03-28
1014Italy2024-04-07
1015India2024-04-07
1016Brazil2024-04-23
1017India2024-04-10
1018Brazil2024-04-16
1019Russia2024-04-25
1020Germany2024-04-03
1021Brazil2024-04-09
1022Japan2024-03-30
1023France2024-04-09
1024India2024-04-04
1025Spain2024-04-12
1026Australia2024-04-11
1027Canada2024-04-01
1028Brazil2024-04-04
1029France2024-04-02
1030Russia2024-03-28
1031Germany2024-04-05
1032Germany2024-04-16
1033Australia2024-04-01
1034Argentina2024-04-24
1035India2024-03-27
1036Australia2024-04-14
1037Argentina2024-04-12
1038Italy2024-03-29
1039Argentina2024-03-31
1040Russia2024-04-11
1041Brazil2024-04-02
1042Spain2024-04-22
1043France2024-03-30
1044Germany2024-03-28
1045Brazil2024-04-22
1046Spain2024-04-07
1047Canada2024-04-06
1048Argentina2024-04-22
1049Russia2024-04-21

On-Demand Data

NameIdCountryDate
Mujtaba R Ferencz1000Canada2024-04-10
Stacey H Marrier1001Australia2024-04-04
Munro D Ostrosky1002Canada2024-04-15
Arvin E Rulapaugh1003Canada2024-04-12
Izzy M Rulapaugh1004United Kingdom2024-04-12
Aditya M Shinko1005Japan2024-04-06
Johnson J Inouye1006Canada2024-04-12
Darci V Poquette1007Germany2024-04-13
Smith Y Malet1008Germany2024-04-05
Darci U Ferencz1009Argentina2024-04-24
Sinclair B Glick1010France2024-04-14
Alejandro U Gillian1011Russia2024-04-08
Arvin P Figeroa1012India2024-04-09
Kadeem W Ostrosky1013Japan2024-04-02
Jennifer J Vocelka1014Japan2024-04-05
Smith O Figeroa1015Canada2024-03-29
Leon N Stenseth1016Spain2024-04-18
Chavez A Poquette1017Germany2024-04-07
Leja G Venere1018Japan2024-04-06
Costa B Kolmetz1019Russia2024-04-25
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Munro K StockhamCanadaStephen Shaw PROPOSAL
Chavez B PoquetteGermanyAmy Elsner QUALIFIED
David A TollnerRussiaBernardo Dominic NEGOTIATION
Octavia M KolmetzFranceAmy Elsner UNQUALIFIED
Jennifer Q CaldareraBrazilStephen Shaw NEGOTIATION
Johnson T FollerSpainAsiya Javayant NEGOTIATION
Jennifer V GillianRussiaBernardo Dominic PROPOSAL
Kaitlin H VenereBrazilBernardo Dominic NEW
Cody B AlbaresSpainStephen Shaw NEGOTIATION
Darci V MaletCanadaXuxue Feng QUALIFIED
Maisha S GillianRussiaOnyama Limba PROPOSAL
Mujtaba O PaprockiBrazilAnna Fali PROPOSAL
Kadeem H DoeIndiaOnyama Limba UNQUALIFIED
Francesco O VenereIndiaStephen Shaw NEGOTIATION
Octavia O CaudyAustraliaAnna Fali NEGOTIATION
Nicolas Q AmigonAustraliaElwin Sharvill NEW
Jones T PoquetteBrazilIoni Bowcher NEGOTIATION
Faith B SchemmerArgentinaAmy Elsner UNQUALIFIED
Francesco O GlickJapanOnyama Limba UNQUALIFIED
Tony J MaletCanadaIoni Bowcher UNQUALIFIED
Isabel N DilliardArgentinaBernardo Dominic NEGOTIATION
Maria H TollnerSpainStephen Shaw UNQUALIFIED
Octavia I FigeroaAustraliaBernardo Dominic NEGOTIATION
Ashley F PoquetteSpainIvan Magalhaes NEGOTIATION
Aruna W MaletArgentinaOnyama Limba NEGOTIATION
Stacey X ButtJapanAmy Elsner NEW
Jones U ButtRussiaStephen Shaw RENEWAL
Sinclair B GauchoArgentinaXuxue Feng NEW
Murillo L DarakjySpainIoni Bowcher RENEWAL
Costa N GauchoItalyAnna Fali QUALIFIED
Aditya E FigeroaUnited KingdomIvan Magalhaes QUALIFIED
Antonio U MaletCanadaAnna Fali NEGOTIATION
Antonio U DarakjySpainIvan Magalhaes RENEWAL
Johnson O PaprockiBrazilIvan Magalhaes QUALIFIED
Clifford Y BologniaBrazilAnna Fali PROPOSAL
Munro E RimBrazilAsiya Javayant PROPOSAL
Antonio P BriddickAustraliaOnyama Limba RENEWAL
Emily D SergiRussiaOnyama Limba RENEWAL
Morrow Y DarakjyFranceAnna Fali PROPOSAL
Aditya D RutaIndiaElwin Sharvill PROPOSAL

<style>
    .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">
        <h3>On-Demand Data</h3>
        <p:dataTable var="customer" value="#{dtScrollView.customers6}" scrollRows="20" scrollable="true" liveScroll="true" scrollHeight="150">
            <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>