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
Jennifer E BriddickCanadaAsiya Javayant RENEWAL
Jones N BriddickUnited KingdomXuxue Feng UNQUALIFIED
Izzy P MorascaIndiaStephen Shaw PROPOSAL
Aditya G ShinkoItalyXuxue Feng PROPOSAL
Aditya K MaletItalyXuxue Feng PROPOSAL
Aruna S SergiItalyAsiya Javayant NEW
Salvatore A RutaGermanyXuxue Feng QUALIFIED
Faith V FigeroaCanadaAmy Elsner UNQUALIFIED
Tony Q CampainItalyAmy Elsner NEW
Morrow Q ShinkoBrazilIvan Magalhaes PROPOSAL
Darci H KuskoIndiaElwin Sharvill RENEWAL
Mujtaba E MaletCanadaStephen Shaw NEGOTIATION
Adams Z ButtAustraliaXuxue Feng QUALIFIED
David C ShinkoAustraliaOnyama Limba PROPOSAL
Aika S GauchoUnited KingdomAsiya Javayant RENEWAL
Kaitlin Z GillianRussiaIvan Magalhaes NEGOTIATION
Aruna H NestleJapanIoni Bowcher QUALIFIED
Adams O VenereFranceXuxue Feng PROPOSAL
Jones P FigeroaJapanAmy Elsner QUALIFIED
Octavia Y KuskoUnited KingdomXuxue Feng RENEWAL
Stacey P DilliardBrazilAmy Elsner PROPOSAL
Aruna C RutaJapanAnna Fali NEW
Isabel G AmigonSpainIvan Magalhaes NEGOTIATION
Julie O DarakjySpainXuxue Feng PROPOSAL
Claire Y StockhamBrazilAsiya Javayant PROPOSAL
Tony G VocelkaJapanAnna Fali PROPOSAL
Claire K PoquetteSpainElwin Sharvill NEGOTIATION
Cody B BriddickAustraliaElwin Sharvill PROPOSAL
David M GlickGermanyXuxue Feng RENEWAL
Silvio I ButtIndiaOnyama Limba RENEWAL
Leon C ChuiGermanyAmy Elsner PROPOSAL
Alejandro X CaldareraGermanyAnna Fali QUALIFIED
Juan N FlosiCanadaOnyama Limba UNQUALIFIED
Ivar K CaldareraJapanElwin Sharvill RENEWAL
Salvatore E GarufiIndiaAmy Elsner PROPOSAL
Silvio N FerenczRussiaAsiya Javayant UNQUALIFIED
Mujtaba D DarakjyUnited KingdomElwin Sharvill UNQUALIFIED
Juan P SchemmerIndiaElwin Sharvill RENEWAL
Murillo N MaletBrazilXuxue Feng UNQUALIFIED
Jefferson H CampainUnited KingdomStephen Shaw PROPOSAL
Antonio E RimRussiaXuxue Feng UNQUALIFIED
Kadeem N NickaGermanyAsiya Javayant QUALIFIED
Emily I ButtRussiaXuxue Feng RENEWAL
Jefferson O FollerRussiaAnna Fali RENEWAL
James G StensethRussiaAsiya Javayant QUALIFIED
Adams X FigeroaItalyOnyama Limba NEW
Emily Z CampainRussiaIvan Magalhaes NEGOTIATION
Wickens S MaletJapanStephen Shaw NEW
Murillo A SlusarskiBrazilStephen Shaw NEGOTIATION
Ricardo L DilliardCanadaOnyama Limba PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Misaki L CampainSpainXuxue Feng QUALIFIED
Faith M InouyeAustraliaXuxue Feng QUALIFIED
Octavia J AmigonFranceIvan Magalhaes UNQUALIFIED
Deepesh T MorascaRussiaIvan Magalhaes NEW
Julie T InouyeArgentinaElwin Sharvill RENEWAL
Rodrigues V PerinBrazilStephen Shaw NEGOTIATION
Deepesh M BriddickFranceAnna Fali PROPOSAL
Juan P VocelkaSpainAmy Elsner QUALIFIED
Jeanfrancois X MacleadGermanyAnna Fali UNQUALIFIED
Rodrigues N GlickItalyBernardo Dominic UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Smith L CaudyUnited Kingdom2024-04-03Benton, John B Jr NEGOTIATION4Amy Elsner
1001Tony S CaldareraAustralia2024-04-04Benton, John B Jr RENEWAL34Anna Fali
1002Aika V PaprockiFrance2024-04-16Printing Dimensions NEGOTIATION66Stephen Shaw
1003Julie N KolmetzArgentina2024-04-13Feiner Bros RENEWAL35Amy Elsner
1004Leon V BriddickGermany2024-04-06Dorl, James J Esq UNQUALIFIED76Onyama Limba
1005Jefferson C PoquetteItaly2024-04-18Truhlar And Truhlar Attys RENEWAL25Ioni Bowcher
1006Johnson X KolmetzGermany2024-04-08Feiner Bros NEGOTIATION82Ivan Magalhaes
1007Clifford R StensethRussia2024-03-27Chemel, James L Cpa UNQUALIFIED64Onyama Limba
1008Costa F RoysterIndia2024-04-01Feltz Printing Service RENEWAL58Bernardo Dominic
1009Arvin G FollerCanada2024-04-19King, Christopher A Esq NEW88Onyama Limba
1010Antonio L ShinkoArgentina2024-04-13Chemel, James L Cpa QUALIFIED18Asiya Javayant
1011Adams X RimItaly2024-03-25Rousseaux, Michael Esq NEW37Asiya Javayant
1012Sinclair G DilliardFrance2024-03-30Rangoni Of Florence UNQUALIFIED23Elwin Sharvill
1013Octavia W RulapaughBrazil2024-04-04Rangoni Of Florence RENEWAL29Asiya Javayant
1014Cody F MaletGermany2024-04-15Buckley Miller Wright QUALIFIED7Xuxue Feng
1015Aika D OldroydIndia2024-03-21Commercial Press PROPOSAL46Onyama Limba
1016Francesco K MaletGermany2024-04-12Feiner Bros RENEWAL0Xuxue Feng
1017Adams J MorascaFrance2024-04-09Rousseaux, Michael Esq UNQUALIFIED72Ivan Magalhaes
1018Rodrigues M OstroskyGermany2024-03-26Rangoni Of Florence PROPOSAL84Xuxue Feng
1019Misaki C FlosiCanada2024-04-13King, Christopher A Esq NEW2Ioni Bowcher
1020Antonio U CaldareraRussia2024-04-17Chanay, Jeffrey A Esq QUALIFIED95Elwin Sharvill
1021Jefferson Z BologniaCanada2024-03-25King, Christopher A Esq UNQUALIFIED10Ivan Magalhaes
1022Rodrigues L OldroydGermany2024-03-23Truhlar And Truhlar Attys QUALIFIED55Onyama Limba
1023Kaitlin P VocelkaFrance2024-03-22Dorl, James J Esq PROPOSAL1Xuxue Feng
1024Murillo D SergiCanada2024-03-30Rangoni Of Florence UNQUALIFIED28Elwin Sharvill
1025Ivar L SergiAustralia2024-04-10Feiner Bros UNQUALIFIED19Ioni Bowcher
1026Deepesh W OstroskyJapan2024-03-22Truhlar And Truhlar Attys NEW71Onyama Limba
1027Rodrigues J CaldareraItaly2024-03-26Rousseaux, Michael Esq UNQUALIFIED46Bernardo Dominic
1028Julie Y NickaUnited Kingdom2024-04-17Feiner Bros RENEWAL43Elwin Sharvill
1029Tony P TollnerFrance2024-04-01Feltz Printing Service QUALIFIED51Asiya Javayant
1030Jones N AmigonBrazil2024-04-02King, Christopher A Esq NEGOTIATION15Bernardo Dominic
1031Chavez B VenereSpain2024-04-02Benton, John B Jr PROPOSAL2Onyama Limba
1032Costa B DarakjyCanada2024-04-07Chanay, Jeffrey A Esq PROPOSAL3Stephen Shaw
1033Munro Q VocelkaBrazil2024-04-07Rangoni Of Florence QUALIFIED29Anna Fali
1034David G WhobreyItaly2024-04-13Commercial Press QUALIFIED56Bernardo Dominic
1035Mujtaba H FlosiGermany2024-03-28Commercial Press PROPOSAL69Bernardo Dominic
1036Smith B KuskoJapan2024-04-08Rangoni Of Florence RENEWAL77Elwin Sharvill
1037Alejandro N FlosiFrance2024-03-29Commercial Press QUALIFIED46Elwin Sharvill
1038Salvatore P KolmetzJapan2024-03-30Benton, John B Jr NEGOTIATION73Xuxue Feng
1039Smith Z RoysterFrance2024-03-23Chanay, Jeffrey A Esq RENEWAL62Asiya Javayant
1040David L WieserGermany2024-04-03Printing Dimensions NEGOTIATION27Anna Fali
1041Misaki M PerinCanada2024-03-30Buckley Miller Wright NEW8Xuxue Feng
1042Leon V TollnerIndia2024-04-19Feltz Printing Service PROPOSAL39Elwin Sharvill
1043Salvatore D TollnerIndia2024-04-02Chapman, Ross E Esq RENEWAL47Asiya Javayant
1044Tony O ButtFrance2024-04-17Feiner Bros QUALIFIED0Anna Fali
1045Salvatore T ChuiFrance2024-03-24Buckley Miller Wright NEGOTIATION2Ivan Magalhaes
1046Octavia I GauchoCanada2024-04-15Chanay, Jeffrey A Esq UNQUALIFIED36Xuxue Feng
1047Clifford D NestleArgentina2024-04-09Printing Dimensions UNQUALIFIED14Ivan Magalhaes
1048Murillo I GarufiArgentina2024-04-01Chanay, Jeffrey A Esq NEW83Stephen Shaw
1049James L SaylorsFrance2024-03-28Chapman, Ross E Esq RENEWAL53Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Alejandro Z WaycottRussiaXuxue Feng NEGOTIATION
Alejandro I ChuiJapanAmy Elsner UNQUALIFIED
Nicolas C BowleyFranceOnyama Limba NEGOTIATION
Isabel K VenereIndiaOnyama Limba NEW
Maisha Y FerenczIndiaAnna Fali NEGOTIATION
Antonio E GauchoGermanyXuxue Feng QUALIFIED
Stacey N CaudyArgentinaStephen Shaw RENEWAL
Johnson V DoeBrazilStephen Shaw PROPOSAL
Antonio O NestleArgentinaIvan Magalhaes QUALIFIED
Arvin H IturbideRussiaAnna Fali QUALIFIED
Mayumi B BologniaGermanyAsiya Javayant QUALIFIED
Leon H DarakjyArgentinaOnyama Limba UNQUALIFIED
Leon F MaletIndiaXuxue Feng QUALIFIED
Izzy A MarrierIndiaBernardo Dominic PROPOSAL
Antonio Y KolmetzFranceBernardo Dominic RENEWAL
Ricardo D GarufiAustraliaElwin Sharvill NEW
Alejandro H IturbideGermanyOnyama Limba NEW
Murillo P TollnerIndiaBernardo Dominic QUALIFIED
Alejandro D GlickArgentinaAnna Fali NEGOTIATION
Greenwood X DoeArgentinaOnyama Limba PROPOSAL
Ashley A DilliardAustraliaBernardo Dominic QUALIFIED
Jennifer X PerinRussiaStephen Shaw RENEWAL
Cody E AlbaresArgentinaXuxue Feng UNQUALIFIED
Julie Z BologniaCanadaXuxue Feng RENEWAL
Johnson I CaldareraBrazilOnyama Limba PROPOSAL
Ashley Z WaycottIndiaIvan Magalhaes PROPOSAL
Jennifer L CaldareraRussiaBernardo Dominic RENEWAL
Wickens V GillianCanadaStephen Shaw NEGOTIATION
David L SergiJapanAmy Elsner NEGOTIATION
Mayumi Y PaprockiSpainAsiya Javayant RENEWAL
Murillo X ShinkoIndiaAsiya Javayant NEGOTIATION
Murillo O SaylorsUnited KingdomOnyama Limba NEW
Aditya Z StensethGermanyOnyama Limba RENEWAL
David X KuskoBrazilAmy Elsner NEGOTIATION
Darci N TollnerIndiaAsiya Javayant PROPOSAL
Munro K NestleArgentinaElwin Sharvill RENEWAL
Aika T RulapaughRussiaAmy Elsner PROPOSAL
Kadeem C RulapaughAustraliaBernardo Dominic QUALIFIED
Kaitlin T GlickSpainIvan Magalhaes QUALIFIED
Costa I InouyeRussiaOnyama Limba NEGOTIATION
Murillo C RimBrazilOnyama Limba QUALIFIED
Misaki X RoysterIndiaXuxue Feng RENEWAL
Costa N DoeCanadaBernardo Dominic NEW
Alejandro D PaprockiUnited KingdomOnyama Limba PROPOSAL
Emily T VocelkaBrazilAnna Fali PROPOSAL
Tony U FigeroaAustraliaAnna Fali QUALIFIED
Julie V MarrierGermanyAsiya Javayant QUALIFIED
Juan Q SlusarskiArgentinaElwin Sharvill QUALIFIED
Izzy E OstroskyUnited KingdomXuxue Feng PROPOSAL
Arvin C MarrierBrazilElwin Sharvill UNQUALIFIED
Frozen Columns
Name
Misaki D Ostrosky
Morrow X Bowley
Tony K Malet
Mujtaba R Tollner
Leon C Iturbide
Aditya S Poquette
Leja Z Dilliard
Murillo Y Bolognia
Faith N Ruta
Chavez G Vocelka
Tony C Schemmer
Ashley S Briddick
Mayumi B Venere
Izzy N Rulapaugh
Sinclair C Inouye
Alejandro J Marrier
Johnson E Dilliard
Misaki T Doe
Isabel D Amigon
Kaitlin A Bowley
Jefferson N Inouye
Salvatore K Bolognia
Jennifer R Malet
Julie X Glick
Aika F Maclead
Costa T Whobrey
Wickens T Dilliard
Kaitlin I Ruta
Misaki N Albares
Munro D Darakjy
Claire R Iturbide
Sinclair O Gillian
Isabel P Glick
Chavez U Perin
Clifford D Stockham
Ashley O Stockham
Kadeem Y Stenseth
Jones Q Whobrey
Ivar S Malet
David F Rim
Maisha P Bowley
Francesco C Bolognia
Octavia C Oldroyd
Morrow O Whobrey
Cody G Flosi
James H Wieser
Maria L Foller
Greenwood H Bolognia
Silvio Y Tollner
Arvin S Nestle
IdCountryDate
1000Italy2024-04-08
1001Argentina2024-04-08
1002Argentina2024-04-17
1003India2024-03-26
1004Spain2024-04-19
1005Italy2024-04-10
1006Canada2024-04-04
1007Brazil2024-03-26
1008India2024-04-13
1009Spain2024-04-12
1010Argentina2024-03-27
1011Argentina2024-04-04
1012Australia2024-03-30
1013Italy2024-04-11
1014Germany2024-04-12
1015France2024-03-31
1016Japan2024-04-01
1017Japan2024-04-10
1018Spain2024-04-08
1019Canada2024-04-15
1020Canada2024-04-15
1021France2024-03-25
1022Canada2024-04-07
1023Japan2024-04-04
1024Japan2024-04-08
1025India2024-03-26
1026France2024-04-12
1027Argentina2024-04-05
1028Germany2024-04-08
1029Brazil2024-04-04
1030Japan2024-04-10
1031Germany2024-04-17
1032France2024-03-31
1033Spain2024-04-09
1034Germany2024-03-31
1035India2024-04-01
1036Australia2024-04-12
1037Brazil2024-04-02
1038Japan2024-04-04
1039Italy2024-04-02
1040Brazil2024-04-10
1041United Kingdom2024-04-07
1042United Kingdom2024-04-15
1043Australia2024-04-13
1044France2024-04-05
1045Argentina2024-04-11
1046Japan2024-04-03
1047Canada2024-04-12
1048France2024-03-22
1049Germany2024-04-14

On-Demand Data

NameIdCountryDate
Munro T Stenseth1000Germany2024-04-11
Murillo G Oldroyd1001Canada2024-04-14
Antonio B Slusarski1002France2024-03-27
Mujtaba O Whobrey1003Russia2024-04-02
Jefferson G Shinko1004Spain2024-03-30
Faith N Darakjy1005Japan2024-04-07
Mayumi K Glick1006Spain2024-04-11
Jones T Figeroa1007Australia2024-04-14
Greenwood N Schemmer1008Australia2024-04-01
Darci C Saylors1009Italy2024-04-10
Francesco R Ostrosky1010Germany2024-03-29
Juan I Slusarski1011Russia2024-04-09
Francesco O Oldroyd1012Japan2024-04-06
Greenwood Y Royster1013Germany2024-04-05
Juan K Sergi1014Canada2024-04-10
Nicolas X Chui1015Brazil2024-04-06
Mujtaba O Wieser1016Canada2024-04-14
Darci X Caldarera1017Japan2024-03-22
Sinclair B Morasca1018United Kingdom2024-04-07
Francesco M Ostrosky1019Argentina2024-03-27
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Sinclair Z ButtJapanXuxue Feng PROPOSAL
Aditya D PoquetteRussiaOnyama Limba PROPOSAL
Aruna P PerinGermanyAmy Elsner UNQUALIFIED
Tony M TollnerIndiaAnna Fali UNQUALIFIED
Mayumi J MaletGermanyIvan Magalhaes NEGOTIATION
Kadeem J MorascaUnited KingdomAsiya Javayant UNQUALIFIED
Francesco G FollerFranceAnna Fali NEGOTIATION
Deepesh K RulapaughFranceAsiya Javayant UNQUALIFIED
Greenwood F BologniaAustraliaBernardo Dominic PROPOSAL
Faith O PerinGermanyAsiya Javayant QUALIFIED
Leon Y GarufiSpainOnyama Limba PROPOSAL
Cody O RutaJapanAsiya Javayant NEGOTIATION
Nicolas T CaudyUnited KingdomOnyama Limba UNQUALIFIED
Julie X SergiArgentinaXuxue Feng RENEWAL
Smith V CaudyArgentinaAsiya Javayant NEGOTIATION
Johnson S FollerFranceOnyama Limba RENEWAL
Alejandro G FollerFranceAnna Fali QUALIFIED
Salvatore N MarrierUnited KingdomBernardo Dominic UNQUALIFIED
Emily O NestleUnited KingdomIvan Magalhaes PROPOSAL
Izzy T VenereBrazilOnyama Limba RENEWAL
Alejandro L MorascaCanadaOnyama Limba PROPOSAL
Jeanfrancois P KuskoSpainStephen Shaw PROPOSAL
Octavia N BologniaItalyElwin Sharvill QUALIFIED
Chavez V GlickJapanXuxue Feng QUALIFIED
Alejandro U AlbaresItalyStephen Shaw RENEWAL
Leon F SaylorsAustraliaBernardo Dominic NEW
Leja J ShinkoArgentinaIoni Bowcher UNQUALIFIED
Maria T KolmetzItalyAnna Fali QUALIFIED
Mayumi L VocelkaUnited KingdomOnyama Limba RENEWAL
Octavia J MorascaJapanAnna Fali PROPOSAL
Antonio U DarakjyGermanyAmy Elsner PROPOSAL
Munro V AmigonJapanAsiya Javayant QUALIFIED
Stacey J PoquetteAustraliaBernardo Dominic NEW
Costa U IturbideItalyAsiya Javayant RENEWAL
Morrow F InouyeBrazilAmy Elsner RENEWAL
Adams U VocelkaCanadaOnyama Limba UNQUALIFIED
Aditya C RutaGermanyAnna Fali UNQUALIFIED
Faith J VenereGermanyElwin Sharvill QUALIFIED
Maria L AmigonGermanyOnyama Limba PROPOSAL
Murillo X WhobreyJapanStephen Shaw NEGOTIATION

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