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
Maria Y CampainJapanElwin Sharvill RENEWAL
Claire Y FigeroaArgentinaIvan Magalhaes RENEWAL
Jeanfrancois N BowleyCanadaStephen Shaw NEGOTIATION
Darci H BriddickRussiaXuxue Feng PROPOSAL
Aditya M SlusarskiUnited KingdomAmy Elsner QUALIFIED
Mujtaba C SergiBrazilBernardo Dominic UNQUALIFIED
Izzy A SchemmerRussiaXuxue Feng NEW
Leja G WhobreyIndiaOnyama Limba UNQUALIFIED
Jefferson H InouyeIndiaAmy Elsner RENEWAL
Faith R FollerIndiaIvan Magalhaes RENEWAL
Jennifer Z BriddickFranceStephen Shaw PROPOSAL
Isabel P MaletCanadaOnyama Limba RENEWAL
David U TollnerJapanIoni Bowcher RENEWAL
Faith F StensethBrazilXuxue Feng NEGOTIATION
Johnson R WhobreyItalyAnna Fali UNQUALIFIED
Adams P PaprockiSpainAmy Elsner QUALIFIED
Ashley I WieserBrazilIoni Bowcher UNQUALIFIED
Jennifer B SchemmerBrazilAmy Elsner NEW
Kadeem H MorascaUnited KingdomElwin Sharvill PROPOSAL
Rodrigues C WieserBrazilAmy Elsner UNQUALIFIED
Leja P RimCanadaBernardo Dominic PROPOSAL
Ricardo G VocelkaSpainOnyama Limba NEW
Claire S DilliardBrazilStephen Shaw QUALIFIED
Octavia N WieserCanadaOnyama Limba UNQUALIFIED
David F MacleadSpainIvan Magalhaes QUALIFIED
Francesco S IturbideSpainStephen Shaw NEW
James C RimIndiaAmy Elsner UNQUALIFIED
Johnson P CaldareraJapanAnna Fali RENEWAL
Sinclair L GlickCanadaOnyama Limba RENEWAL
Claire U NestleGermanyStephen Shaw RENEWAL
Isabel F FigeroaSpainIvan Magalhaes NEGOTIATION
Stacey B StockhamUnited KingdomAnna Fali PROPOSAL
Claire C GarufiGermanyIoni Bowcher PROPOSAL
Aika T SlusarskiJapanXuxue Feng RENEWAL
Ricardo D OstroskyItalyIoni Bowcher QUALIFIED
Adams N InouyeFranceXuxue Feng RENEWAL
Murillo T MaletGermanyAnna Fali PROPOSAL
Faith P TollnerFranceElwin Sharvill NEW
David P GauchoJapanOnyama Limba NEGOTIATION
Antonio A FollerFranceAsiya Javayant PROPOSAL
Sinclair P WieserFranceStephen Shaw NEGOTIATION
Alejandro F GauchoIndiaIoni Bowcher RENEWAL
Sinclair J DarakjyItalyAnna Fali PROPOSAL
Greenwood K DilliardCanadaAnna Fali NEW
Claire D DilliardRussiaStephen Shaw RENEWAL
Costa Y KolmetzCanadaIoni Bowcher NEGOTIATION
Kadeem O KolmetzCanadaAnna Fali RENEWAL
Maria V FlosiSpainStephen Shaw RENEWAL
Mujtaba P DoeJapanXuxue Feng RENEWAL
Costa L KuskoItalyStephen Shaw QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Ricardo C GarufiCanadaIoni Bowcher NEGOTIATION
David V SaylorsCanadaXuxue Feng PROPOSAL
Jones G IturbideGermanyIvan Magalhaes NEW
Jennifer Q RutaArgentinaAmy Elsner QUALIFIED
Ashley P AmigonFranceAsiya Javayant RENEWAL
Adams R ButtUnited KingdomIvan Magalhaes NEW
Ivar H VocelkaUnited KingdomStephen Shaw UNQUALIFIED
Octavia I CaldareraJapanAnna Fali UNQUALIFIED
Mujtaba U WaycottGermanyElwin Sharvill NEGOTIATION
Leja O RutaCanadaOnyama Limba QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leon O BologniaUnited Kingdom2024-04-23Benton, John B Jr UNQUALIFIED19Amy Elsner
1001Juan Y BriddickIndia2024-04-04Commercial Press NEW56Ivan Magalhaes
1002Johnson J PaprockiUnited Kingdom2024-03-31Morlong Associates RENEWAL70Ivan Magalhaes
1003Tony S SlusarskiArgentina2024-04-12Rousseaux, Michael Esq UNQUALIFIED2Ivan Magalhaes
1004Ashley E SchemmerFrance2024-04-23Truhlar And Truhlar Attys RENEWAL49Ioni Bowcher
1005Aruna M KolmetzBrazil2024-04-16King, Christopher A Esq QUALIFIED24Onyama Limba
1006Murillo L StockhamIndia2024-04-24Rousseaux, Michael Esq QUALIFIED3Asiya Javayant
1007Nicolas X PaprockiSpain2024-03-30Chapman, Ross E Esq PROPOSAL89Asiya Javayant
1008Leon D AmigonArgentina2024-04-26Chanay, Jeffrey A Esq NEW84Anna Fali
1009Francesco T FigeroaCanada2024-04-16Commercial Press PROPOSAL84Anna Fali
1010Maisha A SaylorsBrazil2024-03-29King, Christopher A Esq NEGOTIATION16Onyama Limba
1011Aruna B ChuiCanada2024-04-06Rousseaux, Michael Esq NEW95Asiya Javayant
1012Isabel W KolmetzJapan2024-04-10Chapman, Ross E Esq NEW19Anna Fali
1013Murillo V RutaAustralia2024-04-12Rangoni Of Florence UNQUALIFIED98Elwin Sharvill
1014Octavia E KuskoAustralia2024-04-03King, Christopher A Esq QUALIFIED36Amy Elsner
1015Sinclair L RulapaughItaly2024-04-02Commercial Press RENEWAL44Amy Elsner
1016Murillo C NestleItaly2024-04-01Feltz Printing Service RENEWAL3Xuxue Feng
1017Aditya K MacleadGermany2024-04-11Feltz Printing Service QUALIFIED84Ioni Bowcher
1018Jefferson V RulapaughCanada2024-04-15Feiner Bros QUALIFIED8Bernardo Dominic
1019James Z WaycottUnited Kingdom2024-04-14Feltz Printing Service QUALIFIED3Bernardo Dominic
1020James P RutaJapan2024-04-09Chanay, Jeffrey A Esq PROPOSAL37Elwin Sharvill
1021Nicolas V AmigonCanada2024-04-26Chemel, James L Cpa NEW68Xuxue Feng
1022Smith Z InouyeItaly2024-04-03Rangoni Of Florence PROPOSAL95Ioni Bowcher
1023Smith Y MacleadRussia2024-04-03Dorl, James J Esq RENEWAL97Bernardo Dominic
1024Greenwood R MaletIndia2024-04-25Printing Dimensions NEW39Asiya Javayant
1025Misaki A InouyeIndia2024-04-19Rangoni Of Florence RENEWAL11Onyama Limba
1026Deepesh I GauchoGermany2024-04-04Printing Dimensions NEW72Bernardo Dominic
1027Alejandro B ShinkoSpain2024-04-13Chapman, Ross E Esq NEW59Ioni Bowcher
1028Isabel W PaprockiRussia2024-04-04King, Christopher A Esq UNQUALIFIED3Elwin Sharvill
1029James D AlbaresItaly2024-03-29Rousseaux, Michael Esq NEW59Ioni Bowcher
1030Leon L StensethItaly2024-04-05King, Christopher A Esq RENEWAL79Stephen Shaw
1031Aditya J RutaAustralia2024-04-08Dorl, James J Esq PROPOSAL59Ivan Magalhaes
1032Kaitlin S SlusarskiSpain2024-04-10Buckley Miller Wright QUALIFIED76Anna Fali
1033Sinclair B SchemmerIndia2024-03-29Buckley Miller Wright PROPOSAL73Xuxue Feng
1034Faith J StockhamItaly2024-04-18Morlong Associates RENEWAL27Anna Fali
1035Arvin W CaudyBrazil2024-04-15Rangoni Of Florence NEW16Ioni Bowcher
1036Salvatore J MarrierSpain2024-04-23Rangoni Of Florence QUALIFIED1Amy Elsner
1037Leon F NickaAustralia2024-04-24Chapman, Ross E Esq UNQUALIFIED51Asiya Javayant
1038Clifford W TollnerFrance2024-04-03Printing Dimensions UNQUALIFIED9Elwin Sharvill
1039Stacey K AmigonAustralia2024-04-20Chapman, Ross E Esq QUALIFIED72Onyama Limba
1040Murillo J PoquetteRussia2024-04-10Dorl, James J Esq RENEWAL31Asiya Javayant
1041Adams F ButtUnited Kingdom2024-04-12Feltz Printing Service PROPOSAL62Anna Fali
1042Sinclair U RutaIndia2024-04-10Rangoni Of Florence UNQUALIFIED88Xuxue Feng
1043Jones V RulapaughSpain2024-04-14Chapman, Ross E Esq UNQUALIFIED53Ioni Bowcher
1044Salvatore G OldroydItaly2024-04-07Printing Dimensions NEGOTIATION7Anna Fali
1045Costa H GlickUnited Kingdom2024-04-14Buckley Miller Wright RENEWAL46Amy Elsner
1046Alejandro N NickaJapan2024-03-31Feltz Printing Service NEW75Amy Elsner
1047Greenwood C DilliardArgentina2024-04-12Morlong Associates NEGOTIATION7Ioni Bowcher
1048Morrow A DoeCanada2024-04-12Morlong Associates PROPOSAL0Elwin Sharvill
1049Izzy J FigeroaGermany2024-04-10Feltz Printing Service NEGOTIATION35Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Johnson U PerinItalyAsiya Javayant UNQUALIFIED
Jeanfrancois G NickaCanadaOnyama Limba NEGOTIATION
Mayumi X RimSpainAmy Elsner NEW
Rodrigues S MacleadUnited KingdomOnyama Limba NEGOTIATION
Wickens Z RulapaughRussiaIvan Magalhaes QUALIFIED
Kaitlin T FollerRussiaXuxue Feng PROPOSAL
Misaki V KuskoFranceStephen Shaw PROPOSAL
Maisha U PaprockiItalyIoni Bowcher PROPOSAL
Darci M KuskoSpainIvan Magalhaes NEGOTIATION
Stacey S KuskoFranceAmy Elsner NEGOTIATION
Leon I PerinBrazilIvan Magalhaes PROPOSAL
Stacey G WhobreyCanadaAsiya Javayant PROPOSAL
Julie U RulapaughBrazilBernardo Dominic NEGOTIATION
Jones K ChuiFranceIoni Bowcher NEW
Ricardo Q MacleadCanadaAmy Elsner PROPOSAL
Faith F KuskoArgentinaAsiya Javayant UNQUALIFIED
Jefferson M PaprockiCanadaBernardo Dominic UNQUALIFIED
Nicolas N BriddickSpainBernardo Dominic NEW
Emily B DoeItalyOnyama Limba UNQUALIFIED
Leon T DilliardSpainAmy Elsner NEW
Mujtaba Y FollerFranceElwin Sharvill UNQUALIFIED
Octavia U NestleArgentinaBernardo Dominic RENEWAL
Jeanfrancois U FlosiIndiaOnyama Limba PROPOSAL
Rodrigues X RutaCanadaStephen Shaw NEGOTIATION
Kaitlin J MarrierBrazilAnna Fali QUALIFIED
Silvio I FerenczIndiaXuxue Feng NEGOTIATION
Aditya Z GlickArgentinaAnna Fali QUALIFIED
Stacey K OldroydCanadaIoni Bowcher UNQUALIFIED
Kadeem V GauchoCanadaAmy Elsner UNQUALIFIED
Francesco J SergiCanadaStephen Shaw NEGOTIATION
Leon B KuskoGermanyAnna Fali RENEWAL
Ricardo O FollerUnited KingdomElwin Sharvill NEW
Murillo T CampainIndiaAnna Fali UNQUALIFIED
Stacey Q MorascaAustraliaElwin Sharvill NEGOTIATION
Jefferson P InouyeUnited KingdomAmy Elsner QUALIFIED
Maria X WhobreySpainAmy Elsner QUALIFIED
Sinclair C NickaBrazilBernardo Dominic NEW
Costa X KuskoJapanXuxue Feng UNQUALIFIED
Kadeem L NestleUnited KingdomAsiya Javayant NEGOTIATION
Ivar O MaletCanadaAsiya Javayant RENEWAL
Izzy R CaldareraIndiaStephen Shaw NEW
Deepesh V IturbideFranceAnna Fali UNQUALIFIED
Antonio Q FollerBrazilXuxue Feng NEW
Alejandro X BologniaItalyElwin Sharvill PROPOSAL
Aruna D FlosiArgentinaBernardo Dominic NEGOTIATION
Tony Y CaudyIndiaStephen Shaw RENEWAL
Murillo Z RulapaughSpainStephen Shaw NEGOTIATION
Misaki E StockhamUnited KingdomAsiya Javayant PROPOSAL
Tony I DilliardArgentinaOnyama Limba NEW
Murillo Q CampainUnited KingdomElwin Sharvill UNQUALIFIED
Frozen Columns
Name
Octavia O Nestle
Francesco O Briddick
Sinclair P Butt
Murillo M Slusarski
Adams A Glick
Faith S Oldroyd
Ivar Z Tollner
Cody I Rulapaugh
Rodrigues R Caldarera
Ivar Q Chui
Cody S Sergi
Wickens R Malet
Salvatore N Caldarera
Leja X Tollner
Salvatore K Ruta
Faith D Wieser
Misaki O Sergi
Chavez Q Shinko
Sinclair D Kusko
Silvio F Royster
Salvatore H Stenseth
Kaitlin O Poquette
Adams H Caudy
Jeanfrancois T Chui
Octavia Q Maclead
Mayumi O Amigon
Stacey T Slusarski
Izzy H Kusko
Morrow Y Waycott
Jones D Dilliard
Costa T Albares
Rodrigues X Saylors
Ashley L Sergi
Leja V Malet
Morrow E Sergi
James T Caldarera
Munro E Sergi
Jefferson W Morasca
Aruna B Malet
Kadeem I Butt
Munro C Figeroa
Greenwood Y Stenseth
Smith E Butt
Ashley L Garufi
Deepesh A Dilliard
Rodrigues C Kolmetz
Ashley V Marrier
Antonio O Chui
Leja J Oldroyd
Jeanfrancois I Slusarski
IdCountryDate
1000United Kingdom2024-04-14
1001United Kingdom2024-04-11
1002India2024-03-31
1003Germany2024-04-09
1004Brazil2024-04-25
1005India2024-04-02
1006Japan2024-03-31
1007Canada2024-04-16
1008Brazil2024-04-11
1009Argentina2024-04-24
1010Germany2024-04-24
1011Italy2024-04-11
1012Brazil2024-04-02
1013United Kingdom2024-04-06
1014India2024-04-21
1015Argentina2024-04-10
1016Argentina2024-04-21
1017Australia2024-03-29
1018Italy2024-04-06
1019United Kingdom2024-04-13
1020Brazil2024-04-18
1021Japan2024-04-11
1022Spain2024-04-13
1023Argentina2024-03-28
1024Brazil2024-04-26
1025Argentina2024-04-10
1026Germany2024-04-14
1027France2024-04-06
1028India2024-04-08
1029Russia2024-04-14
1030Brazil2024-04-06
1031India2024-04-22
1032Russia2024-04-15
1033Germany2024-03-31
1034Russia2024-04-01
1035United Kingdom2024-04-06
1036Russia2024-04-12
1037Argentina2024-04-06
1038United Kingdom2024-04-26
1039Canada2024-04-15
1040Australia2024-04-22
1041France2024-04-21
1042Germany2024-04-21
1043Argentina2024-04-15
1044Japan2024-04-24
1045Japan2024-04-04
1046Argentina2024-04-01
1047Russia2024-04-21
1048Canada2024-03-30
1049India2024-04-20

On-Demand Data

NameIdCountryDate
Munro W Kusko1000Australia2024-04-25
Izzy I Sergi1001France2024-04-02
Emily L Gillian1002Germany2024-04-18
Aruna N Poquette1003Spain2024-04-11
Leon H Butt1004Germany2024-04-01
Aruna G Doe1005Italy2024-04-01
Ivar O Darakjy1006Germany2024-04-22
Ricardo Q Ferencz1007Canada2024-04-16
Octavia P Perin1008India2024-04-08
Ivar E Sergi1009Brazil2024-04-09
Maria H Foller1010Spain2024-04-02
Costa B Nicka1011Germany2024-04-13
Morrow X Gillian1012United Kingdom2024-04-18
Johnson J Foller1013Italy2024-03-30
Aditya K Marrier1014India2024-04-20
Isabel N Figeroa1015Germany2024-04-01
Octavia C Wieser1016Italy2024-04-04
Jeanfrancois N Figeroa1017Russia2024-04-09
Sinclair B Doe1018Spain2024-04-20
Alejandro B Venere1019India2024-04-12
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ashley N ShinkoFranceAsiya Javayant NEW
Francesco L CaudyCanadaIoni Bowcher RENEWAL
Maria C StensethRussiaOnyama Limba NEW
Rodrigues L FlosiUnited KingdomAsiya Javayant PROPOSAL
Murillo X VenereBrazilIoni Bowcher QUALIFIED
Leja S SaylorsJapanAsiya Javayant UNQUALIFIED
Leja Z SlusarskiUnited KingdomAmy Elsner NEGOTIATION
David E FerenczRussiaOnyama Limba PROPOSAL
Rodrigues I PerinJapanIoni Bowcher UNQUALIFIED
Ashley P GlickArgentinaAnna Fali PROPOSAL
Ivar D BowleySpainBernardo Dominic UNQUALIFIED
Emily E AmigonFranceElwin Sharvill RENEWAL
Juan O OstroskyRussiaIvan Magalhaes PROPOSAL
Octavia N DarakjyJapanAmy Elsner QUALIFIED
Ivar J MarrierGermanyElwin Sharvill RENEWAL
Morrow P MaletCanadaAsiya Javayant NEGOTIATION
Munro U MarrierBrazilStephen Shaw NEW
Nicolas M WhobreyIndiaAnna Fali QUALIFIED
Smith M OldroydItalyAnna Fali NEGOTIATION
Jeanfrancois W RulapaughFranceStephen Shaw NEGOTIATION
Tony K RutaAustraliaXuxue Feng UNQUALIFIED
Juan N MorascaUnited KingdomBernardo Dominic RENEWAL
Maisha Q VocelkaBrazilElwin Sharvill NEW
Juan Q TollnerUnited KingdomAmy Elsner RENEWAL
Jennifer C WhobreyGermanyBernardo Dominic QUALIFIED
Nicolas W IturbideSpainElwin Sharvill NEGOTIATION
Smith B DilliardArgentinaElwin Sharvill RENEWAL
Faith N RulapaughItalyBernardo Dominic QUALIFIED
Jeanfrancois P MacleadBrazilElwin Sharvill UNQUALIFIED
Wickens S WieserRussiaOnyama Limba NEW
Arvin P GillianAustraliaXuxue Feng UNQUALIFIED
Murillo F GillianSpainXuxue Feng NEGOTIATION
Kaitlin B SlusarskiItalyXuxue Feng QUALIFIED
Mayumi O DoeUnited KingdomXuxue Feng RENEWAL
Wickens M RulapaughFranceIoni Bowcher UNQUALIFIED
Francesco R SchemmerFranceXuxue Feng QUALIFIED
Jones V GarufiItalyIoni Bowcher RENEWAL
Chavez K InouyeIndiaAsiya Javayant PROPOSAL
Silvio R SergiCanadaIvan Magalhaes NEW
Munro O OstroskyCanadaBernardo Dominic RENEWAL

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