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
Chavez W WieserRussiaAnna Fali NEGOTIATION
Ricardo O PaprockiRussiaBernardo Dominic RENEWAL
Murillo K RutaAustraliaXuxue Feng RENEWAL
Aruna Y PerinItalyIoni Bowcher QUALIFIED
Adams W PerinUnited KingdomOnyama Limba NEW
Isabel L MacleadItalyBernardo Dominic UNQUALIFIED
Nicolas G BowleyIndiaAnna Fali QUALIFIED
Jefferson M AmigonRussiaAnna Fali RENEWAL
Kaitlin Z DarakjyFranceIoni Bowcher NEW
Adams V PoquetteArgentinaElwin Sharvill UNQUALIFIED
Octavia W NestleAustraliaIvan Magalhaes NEGOTIATION
Jones N VenereRussiaAsiya Javayant NEGOTIATION
Deepesh N RoysterFranceStephen Shaw PROPOSAL
Maria L BologniaGermanyXuxue Feng RENEWAL
Tony W CaldareraAustraliaAsiya Javayant PROPOSAL
Smith T OstroskyIndiaStephen Shaw PROPOSAL
Kaitlin W SergiRussiaAsiya Javayant NEGOTIATION
Maisha X MarrierCanadaXuxue Feng QUALIFIED
Costa J DoeAustraliaAmy Elsner UNQUALIFIED
Stacey M FollerBrazilAsiya Javayant NEW
Julie Z StensethGermanyXuxue Feng QUALIFIED
Mujtaba X MorascaItalyStephen Shaw NEGOTIATION
Leja S GillianSpainBernardo Dominic PROPOSAL
Morrow C SlusarskiGermanyIvan Magalhaes NEGOTIATION
Munro V MaletAustraliaIvan Magalhaes NEW
Kadeem A CampainArgentinaIvan Magalhaes PROPOSAL
Izzy L SlusarskiItalyAmy Elsner RENEWAL
Wickens V MaletUnited KingdomIvan Magalhaes UNQUALIFIED
Stacey A OldroydSpainOnyama Limba PROPOSAL
Leon B ChuiIndiaXuxue Feng NEGOTIATION
Mujtaba T SchemmerItalyAmy Elsner UNQUALIFIED
Morrow E TollnerAustraliaAnna Fali QUALIFIED
Sinclair R OldroydCanadaElwin Sharvill NEGOTIATION
Maisha O RulapaughRussiaBernardo Dominic NEW
Aika C VocelkaBrazilXuxue Feng PROPOSAL
Aika V FerenczAustraliaOnyama Limba QUALIFIED
Claire A StockhamFranceAsiya Javayant UNQUALIFIED
Salvatore T BologniaRussiaIoni Bowcher UNQUALIFIED
Kaitlin N FlosiUnited KingdomIoni Bowcher QUALIFIED
Tony C KuskoIndiaStephen Shaw UNQUALIFIED
Rodrigues Q SaylorsCanadaXuxue Feng NEW
Morrow O DoeBrazilStephen Shaw NEGOTIATION
Adams N KolmetzItalyIvan Magalhaes RENEWAL
Chavez F RimCanadaAsiya Javayant NEW
Maisha E BowleyGermanyOnyama Limba PROPOSAL
Silvio H IturbideRussiaOnyama Limba NEW
Chavez A DarakjyFranceAmy Elsner QUALIFIED
Mujtaba Y GillianJapanXuxue Feng NEW
Arvin P FerenczFranceStephen Shaw RENEWAL
Antonio J FollerIndiaOnyama Limba QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Octavia W StensethSpainAmy Elsner NEGOTIATION
Jeanfrancois P MaletAustraliaBernardo Dominic NEGOTIATION
Ivar E ButtUnited KingdomElwin Sharvill NEGOTIATION
Jones U TollnerRussiaIoni Bowcher PROPOSAL
Juan V RimCanadaOnyama Limba NEGOTIATION
Tony X FlosiAustraliaElwin Sharvill UNQUALIFIED
Kadeem H MaletJapanXuxue Feng UNQUALIFIED
Costa Y ShinkoGermanyAmy Elsner NEGOTIATION
Julie U FlosiAustraliaElwin Sharvill QUALIFIED
Greenwood J BowleyRussiaIvan Magalhaes NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ricardo W ChuiFrance2024-04-02Feltz Printing Service PROPOSAL49Bernardo Dominic
1001Arvin E TollnerGermany2024-04-21Truhlar And Truhlar Attys RENEWAL14Xuxue Feng
1002Faith Q WaycottAustralia2024-04-11Feltz Printing Service QUALIFIED64Asiya Javayant
1003Smith E AlbaresAustralia2024-03-27Chanay, Jeffrey A Esq NEW84Onyama Limba
1004Maria Z SergiItaly2024-04-12Printing Dimensions NEW17Ivan Magalhaes
1005Nicolas D GillianAustralia2024-04-08Dorl, James J Esq PROPOSAL41Amy Elsner
1006Clifford S MaletAustralia2024-04-09Chanay, Jeffrey A Esq PROPOSAL26Ioni Bowcher
1007Costa T DarakjyArgentina2024-04-16Rousseaux, Michael Esq NEGOTIATION0Ioni Bowcher
1008Wickens R RulapaughJapan2024-03-25King, Christopher A Esq PROPOSAL91Elwin Sharvill
1009Deepesh F BologniaCanada2024-04-07Rangoni Of Florence PROPOSAL35Xuxue Feng
1010Juan F DarakjyCanada2024-04-13Feiner Bros RENEWAL88Ivan Magalhaes
1011Alejandro N StockhamArgentina2024-04-22Buckley Miller Wright NEW44Ioni Bowcher
1012Salvatore S FollerCanada2024-04-10King, Christopher A Esq RENEWAL63Asiya Javayant
1013Faith L RoysterCanada2024-04-07Rousseaux, Michael Esq NEGOTIATION64Anna Fali
1014Jeanfrancois T PerinSpain2024-03-30Chanay, Jeffrey A Esq NEW2Asiya Javayant
1015Murillo F WieserCanada2024-04-21Rousseaux, Michael Esq NEGOTIATION10Ivan Magalhaes
1016Ivar R PaprockiFrance2024-03-27Printing Dimensions PROPOSAL49Stephen Shaw
1017Ashley G BriddickSpain2024-04-11Benton, John B Jr PROPOSAL33Onyama Limba
1018Costa Q SchemmerUnited Kingdom2024-04-22Feiner Bros NEW16Ioni Bowcher
1019Jones O RulapaughFrance2024-04-01Benton, John B Jr PROPOSAL25Anna Fali
1020Antonio Y MacleadCanada2024-04-05Rangoni Of Florence QUALIFIED71Xuxue Feng
1021Alejandro D WieserRussia2024-03-27Chanay, Jeffrey A Esq PROPOSAL51Onyama Limba
1022Greenwood P ShinkoItaly2024-03-29Chapman, Ross E Esq RENEWAL65Elwin Sharvill
1023Mayumi U FlosiRussia2024-04-15Benton, John B Jr NEW6Elwin Sharvill
1024Julie U WieserArgentina2024-04-04Rangoni Of Florence UNQUALIFIED42Xuxue Feng
1025Isabel Q SchemmerAustralia2024-04-11Chanay, Jeffrey A Esq RENEWAL38Elwin Sharvill
1026Juan M DoeGermany2024-04-11Buckley Miller Wright PROPOSAL43Ioni Bowcher
1027Aditya K NickaSpain2024-04-07Chemel, James L Cpa UNQUALIFIED95Bernardo Dominic
1028Salvatore J SlusarskiCanada2024-04-23Chanay, Jeffrey A Esq RENEWAL83Stephen Shaw
1029Ricardo A GillianGermany2024-03-26Commercial Press RENEWAL30Xuxue Feng
1030Claire T FlosiGermany2024-04-15Dorl, James J Esq QUALIFIED27Ioni Bowcher
1031Izzy B SergiGermany2024-04-08Feiner Bros NEGOTIATION90Xuxue Feng
1032Faith B MaletSpain2024-04-16Rousseaux, Michael Esq RENEWAL28Ivan Magalhaes
1033Smith X KolmetzBrazil2024-04-23Chapman, Ross E Esq UNQUALIFIED72Anna Fali
1034Adams C MacleadCanada2024-03-27Feiner Bros NEW62Asiya Javayant
1035Johnson T NickaSpain2024-04-01Feiner Bros UNQUALIFIED94Ioni Bowcher
1036Cody V SlusarskiRussia2024-04-14King, Christopher A Esq NEGOTIATION4Asiya Javayant
1037Jennifer S IturbideFrance2024-04-08King, Christopher A Esq QUALIFIED79Elwin Sharvill
1038Emily C NestleGermany2024-04-20Morlong Associates NEGOTIATION34Stephen Shaw
1039Antonio J GauchoSpain2024-04-08Printing Dimensions NEGOTIATION34Ivan Magalhaes
1040Leja N GauchoIndia2024-04-07Benton, John B Jr RENEWAL95Ioni Bowcher
1041Ivar G ButtFrance2024-04-11Truhlar And Truhlar Attys PROPOSAL2Ioni Bowcher
1042Leon L StensethSpain2024-03-26Rangoni Of Florence NEGOTIATION10Elwin Sharvill
1043James K FerenczRussia2024-04-23Chanay, Jeffrey A Esq QUALIFIED15Amy Elsner
1044Arvin A BriddickAustralia2024-04-10Rangoni Of Florence NEW9Onyama Limba
1045Leon S ShinkoFrance2024-04-04Commercial Press QUALIFIED85Xuxue Feng
1046Francesco Y ChuiAustralia2024-04-20Rousseaux, Michael Esq NEW18Elwin Sharvill
1047Arvin C BologniaCanada2024-04-11Commercial Press QUALIFIED27Anna Fali
1048Wickens A FerenczItaly2024-04-16Buckley Miller Wright RENEWAL86Asiya Javayant
1049Salvatore S CaldareraIndia2024-04-22Dorl, James J Esq QUALIFIED14Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Claire V SaylorsArgentinaStephen Shaw PROPOSAL
Octavia R RulapaughUnited KingdomElwin Sharvill PROPOSAL
Greenwood J FerenczArgentinaAsiya Javayant NEW
Jeanfrancois T PoquetteItalyIvan Magalhaes NEW
Emily F VenereUnited KingdomOnyama Limba NEGOTIATION
Sinclair V MorascaJapanElwin Sharvill RENEWAL
Wickens D IturbideUnited KingdomXuxue Feng PROPOSAL
James W RulapaughIndiaStephen Shaw QUALIFIED
Aruna C IturbideAustraliaAsiya Javayant QUALIFIED
Rodrigues D AmigonItalyIoni Bowcher UNQUALIFIED
Smith W BriddickItalyStephen Shaw RENEWAL
Aika T FlosiJapanAmy Elsner NEGOTIATION
Kaitlin Z BriddickFranceIvan Magalhaes NEW
Darci W RimCanadaAmy Elsner QUALIFIED
Deepesh M NestleArgentinaStephen Shaw QUALIFIED
Francesco E OstroskyBrazilStephen Shaw RENEWAL
Sinclair D WieserIndiaAnna Fali PROPOSAL
Greenwood A TollnerUnited KingdomBernardo Dominic NEW
Ashley W DoeGermanyAsiya Javayant RENEWAL
Mujtaba L PaprockiSpainAsiya Javayant UNQUALIFIED
Aika T WieserSpainIoni Bowcher NEGOTIATION
Francesco F GlickAustraliaElwin Sharvill UNQUALIFIED
Morrow V TollnerFranceAsiya Javayant UNQUALIFIED
Isabel X PaprockiRussiaIoni Bowcher NEGOTIATION
Aika V RutaBrazilAsiya Javayant NEW
Tony Z DarakjyCanadaBernardo Dominic UNQUALIFIED
Jeanfrancois Q RutaGermanyOnyama Limba PROPOSAL
Aruna D DarakjyCanadaXuxue Feng NEGOTIATION
Octavia S MarrierRussiaAmy Elsner NEGOTIATION
Faith F BologniaItalyXuxue Feng UNQUALIFIED
Silvio P FlosiFranceIoni Bowcher QUALIFIED
Cody X ChuiCanadaBernardo Dominic QUALIFIED
Aruna R AlbaresArgentinaStephen Shaw PROPOSAL
Claire P TollnerFranceAmy Elsner QUALIFIED
Alejandro F PaprockiRussiaIoni Bowcher NEW
Misaki Y MaletIndiaIoni Bowcher QUALIFIED
Nicolas B WhobreyBrazilAmy Elsner RENEWAL
Johnson G BriddickIndiaElwin Sharvill QUALIFIED
Costa V PerinJapanOnyama Limba PROPOSAL
Maisha V DarakjyCanadaIoni Bowcher NEW
Salvatore W CaudyArgentinaIoni Bowcher RENEWAL
Ricardo K AmigonItalyOnyama Limba UNQUALIFIED
Claire Q SergiGermanyStephen Shaw UNQUALIFIED
David S GauchoAustraliaBernardo Dominic QUALIFIED
Salvatore E IturbideIndiaBernardo Dominic NEW
Arvin K OstroskyArgentinaIvan Magalhaes RENEWAL
Greenwood N SchemmerIndiaOnyama Limba UNQUALIFIED
Ashley T MarrierArgentinaIoni Bowcher RENEWAL
Maria O FerenczUnited KingdomIvan Magalhaes QUALIFIED
Ashley B DarakjyUnited KingdomIoni Bowcher RENEWAL
Frozen Columns
Name
Maria N Inouye
Aditya A Butt
Francesco S Tollner
Ashley T Briddick
Ashley L Malet
Rodrigues Z Stockham
James J Shinko
Octavia T Figeroa
Alejandro J Iturbide
Alejandro N Ferencz
Arvin K Inouye
Francesco F Chui
Octavia N Stockham
Emily I Vocelka
Aika U Figeroa
Costa H Stenseth
Emily K Oldroyd
Morrow U Maclead
Mujtaba F Kusko
Maria F Sergi
Chavez S Bowley
Aditya E Vocelka
Maisha C Whobrey
Greenwood H Gillian
Sinclair J Ostrosky
Izzy M Malet
Rodrigues G Schemmer
Smith U Chui
Clifford B Whobrey
Alejandro K Malet
Julie B Dilliard
Mujtaba H Morasca
Cody X Amigon
Arvin X Stockham
Emily J Kolmetz
Emily Y Wieser
Morrow T Rulapaugh
Chavez R Garufi
Rodrigues Y Slusarski
David N Morasca
Munro M Dilliard
Johnson K Perin
Ashley L Caudy
Wickens D Ostrosky
Clifford I Amigon
Claire D Gaucho
Jefferson V Garufi
Jefferson M Malet
Silvio S Campain
Leon M Oldroyd
IdCountryDate
1000Spain2024-03-25
1001Brazil2024-04-21
1002Argentina2024-04-15
1003Canada2024-03-31
1004Italy2024-04-18
1005Italy2024-03-31
1006Japan2024-04-11
1007France2024-04-05
1008United Kingdom2024-04-23
1009India2024-04-18
1010Brazil2024-04-13
1011Australia2024-04-10
1012Russia2024-04-10
1013Italy2024-04-09
1014Australia2024-04-06
1015Brazil2024-03-29
1016Canada2024-04-20
1017United Kingdom2024-04-14
1018Spain2024-04-16
1019Spain2024-03-31
1020Argentina2024-03-31
1021Italy2024-03-28
1022Canada2024-04-09
1023Russia2024-04-04
1024India2024-03-27
1025United Kingdom2024-04-22
1026India2024-03-30
1027United Kingdom2024-04-16
1028Italy2024-04-12
1029Italy2024-04-12
1030Australia2024-04-20
1031France2024-03-31
1032Spain2024-03-31
1033India2024-04-01
1034Russia2024-04-13
1035Australia2024-04-05
1036Brazil2024-04-22
1037Spain2024-04-15
1038Brazil2024-03-28
1039Germany2024-04-22
1040India2024-04-08
1041India2024-04-08
1042Spain2024-04-20
1043Brazil2024-04-13
1044Italy2024-04-20
1045Germany2024-04-05
1046Germany2024-03-29
1047Australia2024-03-30
1048Russia2024-03-26
1049France2024-04-13

On-Demand Data

NameIdCountryDate
Claire V Morasca1000United Kingdom2024-04-10
Aruna D Tollner1001Canada2024-04-18
Ricardo B Oldroyd1002India2024-04-05
Jefferson P Stockham1003United Kingdom2024-04-17
Cody X Amigon1004Germany2024-04-11
Smith C Kolmetz1005Russia2024-03-30
Darci A Foller1006Germany2024-04-21
Deepesh D Saylors1007Spain2024-04-10
David K Doe1008Italy2024-03-29
Wickens Y Perin1009Germany2024-03-27
James P Darakjy1010Germany2024-03-29
Kaitlin I Ruta1011Russia2024-04-18
Misaki Z Amigon1012Russia2024-04-20
Kadeem T Rim1013India2024-03-31
Ivar N Venere1014Italy2024-04-14
Izzy A Nicka1015Argentina2024-04-13
Leja E Darakjy1016Brazil2024-04-07
Morrow S Marrier1017Australia2024-03-25
Darci J Albares1018India2024-04-23
Leon V Ruta1019Australia2024-04-07
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Claire U VenereUnited KingdomAnna Fali NEW
Jones L SlusarskiGermanyXuxue Feng NEW
Mayumi D VocelkaItalyAmy Elsner RENEWAL
Smith V KuskoItalyAsiya Javayant NEGOTIATION
Antonio E CampainItalyXuxue Feng PROPOSAL
Claire I FigeroaFranceIvan Magalhaes PROPOSAL
Cody D StockhamRussiaOnyama Limba QUALIFIED
Aruna K RoysterSpainIvan Magalhaes NEW
Mujtaba S CaudyAustraliaIoni Bowcher NEW
Jeanfrancois W WaycottSpainAmy Elsner UNQUALIFIED
Arvin K GlickBrazilElwin Sharvill NEGOTIATION
Deepesh Y MaletArgentinaAsiya Javayant UNQUALIFIED
Darci V PaprockiGermanyIvan Magalhaes QUALIFIED
Jefferson P MaletAustraliaIvan Magalhaes PROPOSAL
Tony X SlusarskiGermanyAnna Fali NEW
Aditya R DarakjyIndiaIoni Bowcher UNQUALIFIED
Jefferson V FlosiArgentinaElwin Sharvill NEW
Maisha Y FlosiJapanBernardo Dominic RENEWAL
Arvin E BriddickAustraliaXuxue Feng QUALIFIED
Faith Y StensethRussiaAmy Elsner PROPOSAL
Octavia X InouyeGermanyBernardo Dominic QUALIFIED
Emily L VocelkaArgentinaStephen Shaw QUALIFIED
Rodrigues J MarrierJapanBernardo Dominic NEW
David U BologniaRussiaAnna Fali QUALIFIED
Sinclair E CampainCanadaIvan Magalhaes NEW
Rodrigues D IturbideCanadaAnna Fali QUALIFIED
Jennifer O FigeroaArgentinaXuxue Feng NEW
Rodrigues B ButtJapanElwin Sharvill NEW
Izzy Z ShinkoIndiaOnyama Limba NEW
Mujtaba K WhobreyRussiaAnna Fali QUALIFIED
Isabel U OldroydArgentinaIvan Magalhaes NEGOTIATION
Silvio W PaprockiFranceIvan Magalhaes NEGOTIATION
Darci O IturbideUnited KingdomStephen Shaw NEGOTIATION
Cody I FigeroaAustraliaIoni Bowcher QUALIFIED
Juan B BologniaGermanyAnna Fali RENEWAL
Murillo Y GillianGermanyIvan Magalhaes NEW
Deepesh W DilliardFranceElwin Sharvill PROPOSAL
Murillo W SergiUnited KingdomOnyama Limba NEW
Costa I GauchoBrazilOnyama Limba QUALIFIED
Leon X ButtCanadaXuxue Feng 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>