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
Mujtaba D PerinSpainElwin Sharvill PROPOSAL
Kaitlin L DilliardGermanyXuxue Feng PROPOSAL
Deepesh G BowleyIndiaXuxue Feng NEW
Smith R InouyeCanadaBernardo Dominic UNQUALIFIED
Tony Q CampainFranceIoni Bowcher QUALIFIED
Clifford N MacleadRussiaAmy Elsner NEW
Darci M ButtItalyOnyama Limba PROPOSAL
Aditya O StensethItalyElwin Sharvill PROPOSAL
Aditya J RulapaughIndiaBernardo Dominic RENEWAL
Emily L SergiJapanBernardo Dominic PROPOSAL
Isabel V NestleCanadaAnna Fali PROPOSAL
Tony T GlickArgentinaBernardo Dominic NEGOTIATION
Ricardo E FlosiIndiaBernardo Dominic QUALIFIED
Silvio F GarufiUnited KingdomStephen Shaw PROPOSAL
Chavez O KolmetzItalyStephen Shaw PROPOSAL
Francesco S SaylorsUnited KingdomXuxue Feng UNQUALIFIED
Chavez U StensethItalyStephen Shaw RENEWAL
Aika A VenereIndiaAmy Elsner UNQUALIFIED
Aruna Y IturbideGermanyAsiya Javayant NEW
Greenwood P PaprockiSpainAnna Fali RENEWAL
Deepesh X IturbideBrazilStephen Shaw QUALIFIED
Arvin W StensethIndiaBernardo Dominic QUALIFIED
Aika K MaletGermanyXuxue Feng NEGOTIATION
Maria P MaletGermanyOnyama Limba PROPOSAL
Ashley B FigeroaFranceElwin Sharvill NEW
Munro Q TollnerRussiaIvan Magalhaes QUALIFIED
Jones V FlosiIndiaXuxue Feng UNQUALIFIED
Stacey N NestleBrazilAsiya Javayant NEW
Ashley S RulapaughSpainXuxue Feng RENEWAL
Cody I BowleyIndiaAnna Fali UNQUALIFIED
Aditya T FigeroaIndiaOnyama Limba QUALIFIED
Cody Y FerenczRussiaOnyama Limba PROPOSAL
Misaki S CaldareraItalyAnna Fali QUALIFIED
Tony K FollerFranceStephen Shaw UNQUALIFIED
Jones E OldroydAustraliaXuxue Feng PROPOSAL
Nicolas Z DoeGermanyAmy Elsner QUALIFIED
Deepesh U GlickArgentinaIoni Bowcher PROPOSAL
Silvio A NestleAustraliaAsiya Javayant QUALIFIED
Adams Z AmigonFranceBernardo Dominic NEW
Isabel L OldroydArgentinaIvan Magalhaes PROPOSAL
Smith E RutaGermanyBernardo Dominic PROPOSAL
Johnson G CaldareraGermanyXuxue Feng QUALIFIED
Silvio Q StensethAustraliaAnna Fali NEW
Kaitlin U GillianUnited KingdomIoni Bowcher RENEWAL
Leja Q PoquetteCanadaAsiya Javayant NEW
Isabel N KuskoArgentinaAsiya Javayant QUALIFIED
Maisha W MacleadBrazilElwin Sharvill UNQUALIFIED
Deepesh J StensethArgentinaAsiya Javayant PROPOSAL
Adams Q KolmetzBrazilIoni Bowcher QUALIFIED
Claire V RutaAustraliaOnyama Limba PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Deepesh E CaldareraAustraliaElwin Sharvill QUALIFIED
Francesco P FigeroaItalyStephen Shaw NEW
Jefferson E MaletFranceBernardo Dominic RENEWAL
Izzy X TollnerItalyOnyama Limba RENEWAL
Francesco X PaprockiFranceAnna Fali RENEWAL
Darci F OstroskyCanadaBernardo Dominic PROPOSAL
Maisha H RulapaughJapanStephen Shaw PROPOSAL
Deepesh U PaprockiSpainAnna Fali NEW
Emily D BologniaJapanAsiya Javayant UNQUALIFIED
Leja T MarrierIndiaStephen Shaw RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Misaki N WaycottFrance2024-04-23Rangoni Of Florence RENEWAL78Amy Elsner
1001Kaitlin F PoquetteAustralia2024-04-19Dorl, James J Esq NEW61Onyama Limba
1002Ivar X MorascaAustralia2024-04-14Benton, John B Jr UNQUALIFIED79Amy Elsner
1003Misaki A SergiUnited Kingdom2024-04-04Chanay, Jeffrey A Esq NEGOTIATION56Amy Elsner
1004Mujtaba L SlusarskiGermany2024-03-30Feiner Bros NEGOTIATION64Amy Elsner
1005David P ButtArgentina2024-04-08Rangoni Of Florence NEW5Elwin Sharvill
1006Izzy P IturbideItaly2024-04-17Chanay, Jeffrey A Esq RENEWAL25Onyama Limba
1007Johnson V WieserItaly2024-03-31Rousseaux, Michael Esq PROPOSAL0Anna Fali
1008Maria P SaylorsIndia2024-03-29Truhlar And Truhlar Attys QUALIFIED67Asiya Javayant
1009Adams Z AlbaresJapan2024-04-05Buckley Miller Wright RENEWAL21Bernardo Dominic
1010Mujtaba N KolmetzFrance2024-04-18Chapman, Ross E Esq PROPOSAL36Stephen Shaw
1011Maisha Z RulapaughItaly2024-04-16Buckley Miller Wright PROPOSAL26Onyama Limba
1012Arvin G PerinUnited Kingdom2024-04-24Rousseaux, Michael Esq PROPOSAL23Elwin Sharvill
1013Darci Z RutaCanada2024-04-06Truhlar And Truhlar Attys RENEWAL66Elwin Sharvill
1014Octavia X ButtCanada2024-04-24Chapman, Ross E Esq NEGOTIATION34Anna Fali
1015Jennifer X SaylorsIndia2024-04-17Truhlar And Truhlar Attys RENEWAL95Asiya Javayant
1016Misaki F InouyeCanada2024-04-12Commercial Press UNQUALIFIED46Asiya Javayant
1017Mujtaba L BologniaItaly2024-04-12Printing Dimensions NEGOTIATION17Xuxue Feng
1018Octavia M DilliardAustralia2024-04-22Feiner Bros NEW22Ivan Magalhaes
1019Claire I CampainBrazil2024-04-15Commercial Press UNQUALIFIED21Amy Elsner
1020Sinclair K RimSpain2024-04-02Chemel, James L Cpa PROPOSAL63Anna Fali
1021Rodrigues K DilliardFrance2024-04-01Chapman, Ross E Esq UNQUALIFIED65Xuxue Feng
1022Misaki U SlusarskiRussia2024-03-31Chapman, Ross E Esq UNQUALIFIED30Amy Elsner
1023Jennifer R InouyeGermany2024-04-18Chemel, James L Cpa PROPOSAL28Anna Fali
1024Sinclair Z KolmetzUnited Kingdom2024-04-15Feltz Printing Service RENEWAL34Anna Fali
1025David W PerinBrazil2024-04-11Dorl, James J Esq NEGOTIATION35Bernardo Dominic
1026Claire J PerinSpain2024-04-07Dorl, James J Esq QUALIFIED30Xuxue Feng
1027Sinclair O ButtAustralia2024-04-23Dorl, James J Esq NEGOTIATION98Ivan Magalhaes
1028Leja Q RimUnited Kingdom2024-04-05Feiner Bros PROPOSAL65Anna Fali
1029Silvio G StensethGermany2024-04-02Morlong Associates UNQUALIFIED60Ioni Bowcher
1030Deepesh I WaycottJapan2024-04-02Chanay, Jeffrey A Esq NEGOTIATION50Ivan Magalhaes
1031Kadeem U OldroydBrazil2024-04-17Feltz Printing Service RENEWAL27Elwin Sharvill
1032Aruna S RutaFrance2024-04-14Chemel, James L Cpa UNQUALIFIED27Amy Elsner
1033Aditya G GlickGermany2024-03-28Feltz Printing Service NEW28Onyama Limba
1034Deepesh Y SaylorsUnited Kingdom2024-04-21Chanay, Jeffrey A Esq UNQUALIFIED51Stephen Shaw
1035Kadeem H KuskoSpain2024-04-24Feltz Printing Service PROPOSAL65Xuxue Feng
1036Jennifer V FlosiGermany2024-04-08Rangoni Of Florence PROPOSAL20Xuxue Feng
1037Maisha U GauchoBrazil2024-04-01Rousseaux, Michael Esq NEW97Bernardo Dominic
1038Chavez E BologniaFrance2024-04-13Feiner Bros NEW1Xuxue Feng
1039Julie G ShinkoGermany2024-04-01King, Christopher A Esq PROPOSAL2Ivan Magalhaes
1040Sinclair M CaudyJapan2024-04-13King, Christopher A Esq NEGOTIATION61Ivan Magalhaes
1041Salvatore E GauchoJapan2024-04-01Benton, John B Jr UNQUALIFIED96Amy Elsner
1042Arvin O FerenczBrazil2024-03-29Chemel, James L Cpa QUALIFIED95Ioni Bowcher
1043Kaitlin L WaycottJapan2024-03-29Chanay, Jeffrey A Esq NEGOTIATION25Ivan Magalhaes
1044David P DarakjyUnited Kingdom2024-03-29Feltz Printing Service RENEWAL85Amy Elsner
1045Adams J CampainRussia2024-04-01Rousseaux, Michael Esq RENEWAL54Asiya Javayant
1046Ivar T BriddickRussia2024-04-21Truhlar And Truhlar Attys NEGOTIATION86Onyama Limba
1047Leon X FerenczArgentina2024-04-26Benton, John B Jr QUALIFIED14Ioni Bowcher
1048Aditya Y PoquetteGermany2024-03-28Rangoni Of Florence RENEWAL16Stephen Shaw
1049Ivar W BowleyIndia2024-04-23Chanay, Jeffrey A Esq NEGOTIATION9Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Costa K KolmetzArgentinaElwin Sharvill UNQUALIFIED
Jefferson P RimItalyStephen Shaw PROPOSAL
Rodrigues T OstroskyRussiaOnyama Limba NEW
Nicolas E BowleyArgentinaElwin Sharvill NEW
Jennifer P ButtFranceIoni Bowcher NEW
Stacey A MacleadJapanAnna Fali RENEWAL
Arvin B VenereAustraliaOnyama Limba QUALIFIED
Jefferson H DilliardRussiaIvan Magalhaes QUALIFIED
David O RulapaughJapanOnyama Limba RENEWAL
Kadeem Q RutaJapanIvan Magalhaes NEW
Mayumi M SchemmerUnited KingdomAsiya Javayant RENEWAL
Morrow Y VenereUnited KingdomBernardo Dominic UNQUALIFIED
Wickens P MaletUnited KingdomXuxue Feng UNQUALIFIED
Maisha I ChuiAustraliaAsiya Javayant RENEWAL
Claire W SlusarskiRussiaIvan Magalhaes QUALIFIED
Jennifer Z SergiGermanyIoni Bowcher QUALIFIED
Darci W GlickAustraliaAnna Fali RENEWAL
Deepesh P RimCanadaIoni Bowcher NEW
Sinclair S ShinkoCanadaIoni Bowcher NEGOTIATION
Costa J SlusarskiUnited KingdomAnna Fali RENEWAL
Ivar G RulapaughRussiaAnna Fali RENEWAL
Salvatore I AlbaresGermanyOnyama Limba NEW
Isabel T StockhamCanadaBernardo Dominic PROPOSAL
Silvio E WieserJapanIvan Magalhaes PROPOSAL
Alejandro B GillianRussiaAmy Elsner UNQUALIFIED
Tony Q GillianCanadaXuxue Feng QUALIFIED
Francesco L BologniaSpainXuxue Feng RENEWAL
Smith P NestleSpainOnyama Limba NEW
Costa H RulapaughAustraliaStephen Shaw NEW
James L FlosiJapanOnyama Limba RENEWAL
Mujtaba N IturbideGermanyIvan Magalhaes NEW
James O MaletArgentinaXuxue Feng NEGOTIATION
Isabel B AlbaresSpainAnna Fali NEGOTIATION
Aika I RimFranceAnna Fali NEW
Salvatore I VocelkaArgentinaElwin Sharvill RENEWAL
Izzy T SaylorsIndiaAnna Fali UNQUALIFIED
Jones O FerenczJapanOnyama Limba NEW
Wickens T NickaAustraliaStephen Shaw QUALIFIED
Arvin C NickaCanadaAsiya Javayant RENEWAL
David W SlusarskiSpainIoni Bowcher RENEWAL
Aruna V RoysterItalyAmy Elsner NEGOTIATION
Alejandro C RutaFranceAnna Fali RENEWAL
Octavia G TollnerBrazilAsiya Javayant UNQUALIFIED
Julie S SchemmerGermanyOnyama Limba NEGOTIATION
Maisha W SaylorsSpainAmy Elsner NEW
Arvin L CaudyRussiaElwin Sharvill RENEWAL
Nicolas Q OldroydItalyAnna Fali NEGOTIATION
Smith T RulapaughGermanyIvan Magalhaes NEGOTIATION
Silvio A GillianJapanStephen Shaw RENEWAL
Darci G GillianCanadaElwin Sharvill QUALIFIED
Frozen Columns
Name
Morrow Z Briddick
Aditya I Butt
Mujtaba G Malet
Francesco P Foller
Antonio Y Schemmer
Octavia N Whobrey
Adams P Campain
Jones E Darakjy
Salvatore U Maclead
Sinclair X Royster
Silvio K Tollner
Leja U Oldroyd
Francesco K Inouye
Nicolas A Malet
Mujtaba P Gillian
Maisha E Figeroa
Chavez P Caudy
Ivar C Malet
Julie N Caldarera
Darci O Chui
Tony U Glick
Emily P Tollner
Leon S Gillian
David X Rulapaugh
Misaki X Saylors
Antonio A Stenseth
Sinclair H Doe
Sinclair Q Doe
Smith R Iturbide
Silvio I Amigon
Octavia V Stockham
Ricardo P Bolognia
Juan Q Foller
Arvin S Glick
James U Kusko
Maisha B Schemmer
Jefferson J Ruta
Clifford R Ostrosky
Johnson A Perin
Aika C Saylors
Smith L Campain
Isabel K Vocelka
Jefferson C Whobrey
Julie D Malet
Jones S Shinko
Kadeem D Bowley
Claire T Nestle
James H Perin
Francesco K Vocelka
Claire B Albares
IdCountryDate
1000France2024-04-04
1001Argentina2024-04-08
1002United Kingdom2024-04-25
1003United Kingdom2024-03-28
1004Russia2024-04-19
1005United Kingdom2024-04-02
1006Brazil2024-04-03
1007Japan2024-04-04
1008Italy2024-04-10
1009Australia2024-04-18
1010Italy2024-04-22
1011Germany2024-04-03
1012France2024-04-11
1013Brazil2024-04-16
1014Argentina2024-04-21
1015United Kingdom2024-04-04
1016India2024-04-21
1017Australia2024-04-18
1018Australia2024-04-08
1019France2024-04-13
1020Japan2024-04-16
1021Italy2024-04-04
1022Brazil2024-04-20
1023Russia2024-04-11
1024India2024-03-30
1025Japan2024-04-09
1026France2024-04-19
1027Spain2024-04-18
1028Canada2024-04-19
1029Australia2024-04-12
1030Australia2024-04-16
1031Germany2024-04-23
1032Australia2024-04-15
1033India2024-04-08
1034France2024-03-31
1035Spain2024-04-10
1036France2024-04-10
1037France2024-04-02
1038India2024-04-16
1039India2024-04-08
1040United Kingdom2024-04-13
1041Argentina2024-04-15
1042Germany2024-04-16
1043United Kingdom2024-03-30
1044Australia2024-04-14
1045Russia2024-04-25
1046Spain2024-03-29
1047Italy2024-04-12
1048France2024-04-24
1049Russia2024-04-13

On-Demand Data

NameIdCountryDate
Maria X Caudy1000Germany2024-04-21
Juan J Rulapaugh1001India2024-04-08
Maisha J Oldroyd1002Russia2024-04-11
Octavia D Nestle1003India2024-04-16
Claire V Ruta1004Germany2024-04-20
Julie G Shinko1005Brazil2024-04-04
Murillo D Rim1006United Kingdom2024-04-24
Jones M Ostrosky1007Germany2024-04-25
Mujtaba P Caudy1008Australia2024-04-25
Octavia P Paprocki1009Canada2024-04-15
Alejandro F Dilliard1010France2024-04-03
Johnson E Glick1011Italy2024-04-21
Jefferson H Slusarski1012Spain2024-04-15
Jefferson X Wieser1013Russia2024-03-28
Darci X Oldroyd1014Canada2024-03-30
Maisha N Ferencz1015United Kingdom2024-03-28
Stacey C Poquette1016France2024-03-29
Munro K Kolmetz1017Australia2024-04-10
Antonio A Malet1018Russia2024-04-07
Sinclair Y Oldroyd1019France2024-04-06
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Silvio N CaldareraUnited KingdomStephen Shaw NEW
Chavez B GarufiFranceBernardo Dominic UNQUALIFIED
Nicolas Y SergiItalyElwin Sharvill UNQUALIFIED
Morrow E VenereJapanAmy Elsner NEW
Tony E DarakjyBrazilAmy Elsner NEW
Leja I WaycottRussiaIoni Bowcher QUALIFIED
Adams X ButtUnited KingdomIoni Bowcher RENEWAL
Aditya S GillianCanadaOnyama Limba PROPOSAL
Juan I NestleArgentinaAnna Fali UNQUALIFIED
Smith S PerinAustraliaXuxue Feng PROPOSAL
Cody V SergiCanadaAsiya Javayant RENEWAL
Ricardo X PaprockiIndiaStephen Shaw RENEWAL
Darci B GlickIndiaAsiya Javayant QUALIFIED
Jeanfrancois Y WaycottGermanyStephen Shaw NEW
Greenwood L FollerGermanyIvan Magalhaes NEGOTIATION
Izzy M AmigonArgentinaAsiya Javayant NEW
Maisha Q OldroydFranceXuxue Feng PROPOSAL
Adams E DoeJapanIoni Bowcher NEW
Faith N ButtAustraliaIoni Bowcher PROPOSAL
Deepesh S GlickAustraliaStephen Shaw PROPOSAL
Juan N GillianIndiaAmy Elsner NEW
Aruna E NickaIndiaAmy Elsner PROPOSAL
Clifford N FerenczRussiaStephen Shaw QUALIFIED
Aruna C KolmetzBrazilStephen Shaw RENEWAL
Tony U WaycottAustraliaAsiya Javayant NEGOTIATION
Johnson R CaldareraBrazilAnna Fali PROPOSAL
Johnson U MorascaBrazilBernardo Dominic QUALIFIED
Maria Q NestleRussiaBernardo Dominic RENEWAL
Antonio B BologniaSpainAnna Fali UNQUALIFIED
Jones U PerinIndiaAnna Fali NEW
Deepesh G SaylorsSpainElwin Sharvill NEGOTIATION
Aika Z WhobreyCanadaAmy Elsner PROPOSAL
Claire S RulapaughItalyOnyama Limba NEW
James X BowleyJapanOnyama Limba QUALIFIED
Rodrigues T ButtCanadaAnna Fali RENEWAL
Wickens N BriddickIndiaElwin Sharvill NEW
Smith X ChuiIndiaBernardo Dominic UNQUALIFIED
Greenwood T ShinkoSpainBernardo Dominic NEW
Stacey I SchemmerGermanyBernardo Dominic NEW
Arvin H WhobreyRussiaIoni Bowcher NEW

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