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
Arvin P BriddickFranceIoni Bowcher UNQUALIFIED
Alejandro I GarufiFranceIoni Bowcher PROPOSAL
Adams V ShinkoIndiaIvan Magalhaes PROPOSAL
Cody Q CaldareraJapanAsiya Javayant NEGOTIATION
Kaitlin I DarakjyGermanyXuxue Feng NEW
Stacey H RimBrazilStephen Shaw QUALIFIED
Maisha B VenereItalyIvan Magalhaes PROPOSAL
Johnson C DoeFranceStephen Shaw NEW
Maria N DoeCanadaIoni Bowcher PROPOSAL
Arvin A BologniaIndiaAnna Fali UNQUALIFIED
Smith M BologniaUnited KingdomAsiya Javayant NEGOTIATION
Rodrigues J ButtFranceIvan Magalhaes NEW
Octavia B TollnerJapanIoni Bowcher RENEWAL
Misaki U CaldareraGermanyAnna Fali NEW
Munro Q MaletArgentinaIoni Bowcher PROPOSAL
Silvio M MaletItalyAnna Fali PROPOSAL
Jefferson L NestleCanadaElwin Sharvill NEGOTIATION
Mujtaba X DilliardSpainElwin Sharvill PROPOSAL
Faith D SaylorsItalyXuxue Feng UNQUALIFIED
Cody W StockhamJapanAsiya Javayant PROPOSAL
Greenwood M RutaBrazilStephen Shaw UNQUALIFIED
Chavez G BowleyUnited KingdomIoni Bowcher RENEWAL
Isabel L FollerSpainOnyama Limba RENEWAL
Nicolas Q VocelkaIndiaElwin Sharvill NEGOTIATION
Nicolas L FerenczItalyAnna Fali PROPOSAL
Munro U BologniaGermanyIvan Magalhaes QUALIFIED
Morrow G CampainRussiaIvan Magalhaes UNQUALIFIED
Nicolas S WhobreyCanadaXuxue Feng NEW
Isabel W MorascaGermanyOnyama Limba QUALIFIED
Nicolas V FollerSpainBernardo Dominic UNQUALIFIED
Francesco Y MaletRussiaAnna Fali NEW
Francesco D StockhamGermanyAmy Elsner NEW
Tony E SaylorsCanadaOnyama Limba UNQUALIFIED
Mayumi I CaudyArgentinaOnyama Limba NEW
Johnson R PaprockiItalyAmy Elsner NEW
Emily C IturbideSpainAsiya Javayant RENEWAL
Sinclair V MarrierIndiaAnna Fali UNQUALIFIED
Tony G ChuiRussiaStephen Shaw RENEWAL
James T GlickIndiaIvan Magalhaes RENEWAL
Johnson A KuskoAustraliaXuxue Feng QUALIFIED
Smith U GauchoFranceBernardo Dominic NEGOTIATION
Alejandro Z MacleadArgentinaIvan Magalhaes UNQUALIFIED
Jefferson Y DoeGermanyStephen Shaw RENEWAL
Murillo S StockhamIndiaElwin Sharvill QUALIFIED
Francesco L SchemmerGermanyIoni Bowcher NEW
Leon P FollerJapanAmy Elsner PROPOSAL
Morrow F FollerJapanAnna Fali RENEWAL
Adams R OstroskySpainElwin Sharvill UNQUALIFIED
Octavia G IturbideSpainOnyama Limba NEGOTIATION
Greenwood A SaylorsUnited KingdomAmy Elsner UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Claire U MarrierJapanStephen Shaw NEW
Deepesh M SaylorsGermanyElwin Sharvill NEW
Faith S MaletAustraliaBernardo Dominic QUALIFIED
Cody A GillianArgentinaIoni Bowcher NEGOTIATION
Misaki P MaletJapanElwin Sharvill RENEWAL
Morrow F VenereRussiaXuxue Feng UNQUALIFIED
Jeanfrancois G BologniaSpainXuxue Feng RENEWAL
Smith E SchemmerUnited KingdomOnyama Limba NEGOTIATION
Julie Z SlusarskiArgentinaOnyama Limba PROPOSAL
Aditya B CaudyArgentinaBernardo Dominic NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ivar X WhobreyGermany2024-04-25Feiner Bros PROPOSAL68Onyama Limba
1001Arvin K CampainGermany2024-04-17Feltz Printing Service NEW89Anna Fali
1002Jennifer P StockhamJapan2024-04-02Chanay, Jeffrey A Esq NEGOTIATION14Amy Elsner
1003James N StensethBrazil2024-03-29Chanay, Jeffrey A Esq PROPOSAL73Ioni Bowcher
1004Smith U StensethFrance2024-04-07Chanay, Jeffrey A Esq NEW7Elwin Sharvill
1005Silvio F SchemmerItaly2024-04-22Printing Dimensions PROPOSAL11Ivan Magalhaes
1006Jefferson C IturbideUnited Kingdom2024-04-01Rousseaux, Michael Esq PROPOSAL46Stephen Shaw
1007James F PaprockiRussia2024-04-24Rangoni Of Florence UNQUALIFIED51Xuxue Feng
1008Juan S BowleyGermany2024-04-18Morlong Associates NEW87Xuxue Feng
1009Johnson G GauchoJapan2024-04-04Feltz Printing Service PROPOSAL59Elwin Sharvill
1010Alejandro D GlickRussia2024-04-20Truhlar And Truhlar Attys NEW49Xuxue Feng
1011Cody X MaletRussia2024-04-15Buckley Miller Wright PROPOSAL96Amy Elsner
1012Costa H PerinItaly2024-04-13Commercial Press NEW83Xuxue Feng
1013Misaki H GillianArgentina2024-04-19Rangoni Of Florence QUALIFIED59Ioni Bowcher
1014Tony C GillianIndia2024-04-08Feiner Bros UNQUALIFIED30Xuxue Feng
1015Aruna W AmigonUnited Kingdom2024-04-24Feiner Bros RENEWAL42Bernardo Dominic
1016Maisha F PaprockiFrance2024-03-29Feiner Bros NEW7Anna Fali
1017Aruna K KolmetzItaly2024-03-29Commercial Press QUALIFIED61Asiya Javayant
1018Maria Z MorascaCanada2024-04-16Benton, John B Jr PROPOSAL16Ivan Magalhaes
1019Octavia T VocelkaArgentina2024-04-07Commercial Press PROPOSAL57Amy Elsner
1020Darci C VocelkaItaly2024-03-30Buckley Miller Wright QUALIFIED2Elwin Sharvill
1021Stacey P RulapaughFrance2024-04-15Buckley Miller Wright QUALIFIED59Asiya Javayant
1022Stacey M RutaJapan2024-03-27Benton, John B Jr UNQUALIFIED19Stephen Shaw
1023Kaitlin G AlbaresAustralia2024-04-18Truhlar And Truhlar Attys QUALIFIED90Stephen Shaw
1024Greenwood T BologniaArgentina2024-04-11Feiner Bros PROPOSAL54Xuxue Feng
1025Claire C ButtArgentina2024-04-08Chanay, Jeffrey A Esq RENEWAL23Asiya Javayant
1026Jeanfrancois D FlosiItaly2024-04-13Buckley Miller Wright NEW93Amy Elsner
1027Chavez D IturbideSpain2024-04-23Chanay, Jeffrey A Esq RENEWAL47Bernardo Dominic
1028Misaki M CaudyBrazil2024-04-03Rangoni Of Florence PROPOSAL88Elwin Sharvill
1029Rodrigues Q BriddickFrance2024-04-20Chapman, Ross E Esq QUALIFIED55Onyama Limba
1030Isabel R WhobreyArgentina2024-03-27Rangoni Of Florence UNQUALIFIED21Bernardo Dominic
1031Arvin Q WieserIndia2024-04-24Buckley Miller Wright RENEWAL59Stephen Shaw
1032Claire F SchemmerAustralia2024-03-30Chemel, James L Cpa QUALIFIED74Onyama Limba
1033Jefferson B ShinkoRussia2024-04-03King, Christopher A Esq PROPOSAL27Bernardo Dominic
1034Costa R StensethBrazil2024-04-21Buckley Miller Wright UNQUALIFIED48Ivan Magalhaes
1035Kaitlin K NickaUnited Kingdom2024-04-04Printing Dimensions RENEWAL95Onyama Limba
1036Aika D PoquetteJapan2024-04-11Rousseaux, Michael Esq NEGOTIATION51Xuxue Feng
1037Munro K WieserRussia2024-04-07Feltz Printing Service NEW0Stephen Shaw
1038Alejandro J RutaJapan2024-03-27Truhlar And Truhlar Attys NEGOTIATION85Asiya Javayant
1039Silvio L NickaItaly2024-04-16Morlong Associates UNQUALIFIED65Elwin Sharvill
1040Jones J StockhamItaly2024-04-16Commercial Press PROPOSAL8Asiya Javayant
1041Adams F VenereIndia2024-04-14Printing Dimensions RENEWAL90Asiya Javayant
1042Clifford F InouyeIndia2024-04-14Benton, John B Jr UNQUALIFIED44Stephen Shaw
1043Kadeem O GarufiJapan2024-04-01Rangoni Of Florence NEW30Elwin Sharvill
1044Juan S CampainGermany2024-04-22Morlong Associates PROPOSAL39Onyama Limba
1045Jennifer O GarufiItaly2024-04-23Rangoni Of Florence NEW91Asiya Javayant
1046Jeanfrancois U IturbideIndia2024-03-27King, Christopher A Esq NEW29Asiya Javayant
1047Tony V VenereCanada2024-04-25Truhlar And Truhlar Attys UNQUALIFIED2Ivan Magalhaes
1048Ricardo G GarufiUnited Kingdom2024-04-08Feiner Bros NEW89Anna Fali
1049Jennifer N BologniaArgentina2024-04-20Chapman, Ross E Esq QUALIFIED40Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Antonio A VenereJapanStephen Shaw NEW
Cody R PoquetteSpainOnyama Limba QUALIFIED
Murillo I AlbaresSpainAmy Elsner UNQUALIFIED
Ricardo E MorascaGermanyElwin Sharvill NEW
Cody E PoquetteGermanyOnyama Limba QUALIFIED
Maria M GauchoJapanXuxue Feng NEGOTIATION
Jeanfrancois V DarakjyAustraliaOnyama Limba PROPOSAL
Alejandro D DoeFranceAnna Fali NEGOTIATION
Kadeem O MaletItalyStephen Shaw UNQUALIFIED
Salvatore X SergiItalyXuxue Feng NEGOTIATION
Leon R MaletBrazilAmy Elsner UNQUALIFIED
Maria O StockhamRussiaOnyama Limba UNQUALIFIED
Morrow K FerenczAustraliaXuxue Feng UNQUALIFIED
Smith T RoysterJapanAnna Fali RENEWAL
Johnson D CaldareraFranceXuxue Feng RENEWAL
Faith E NickaRussiaIvan Magalhaes PROPOSAL
Mayumi H PaprockiRussiaOnyama Limba NEW
Claire E StockhamBrazilXuxue Feng UNQUALIFIED
Stacey M CaudyRussiaAsiya Javayant UNQUALIFIED
Jennifer A CaudyCanadaStephen Shaw RENEWAL
Leon X SchemmerItalyAsiya Javayant QUALIFIED
Adams Z GauchoIndiaElwin Sharvill QUALIFIED
Adams C DoeRussiaOnyama Limba RENEWAL
Clifford K PaprockiJapanOnyama Limba NEGOTIATION
Alejandro Y WaycottUnited KingdomOnyama Limba QUALIFIED
Munro B StensethFranceOnyama Limba NEW
Kaitlin W NestleArgentinaIvan Magalhaes NEW
Julie U AmigonFranceAsiya Javayant PROPOSAL
Leja G StensethSpainXuxue Feng NEGOTIATION
Ashley R StensethUnited KingdomIvan Magalhaes UNQUALIFIED
James B AlbaresJapanOnyama Limba RENEWAL
Isabel Y OldroydBrazilAnna Fali RENEWAL
Alejandro K GillianFranceAmy Elsner NEW
Munro N RulapaughUnited KingdomOnyama Limba QUALIFIED
Francesco N PoquetteBrazilIvan Magalhaes PROPOSAL
Sinclair R StockhamFranceIoni Bowcher NEGOTIATION
Adams J KuskoSpainBernardo Dominic RENEWAL
Leja Y NickaRussiaAmy Elsner NEGOTIATION
Clifford G OstroskyGermanyAsiya Javayant PROPOSAL
Murillo H GauchoFranceIvan Magalhaes NEW
Aruna K RutaRussiaAmy Elsner PROPOSAL
Maria F AmigonIndiaIoni Bowcher NEGOTIATION
Deepesh E SlusarskiCanadaElwin Sharvill QUALIFIED
Stacey T WieserJapanXuxue Feng NEGOTIATION
Rodrigues R TollnerGermanyAmy Elsner UNQUALIFIED
Tony O RutaRussiaAmy Elsner PROPOSAL
Ashley H PerinGermanyIoni Bowcher NEGOTIATION
Jefferson O GillianJapanStephen Shaw QUALIFIED
Claire Q GarufiCanadaOnyama Limba UNQUALIFIED
Izzy Z RulapaughAustraliaOnyama Limba NEGOTIATION
Frozen Columns
Name
Leon S Butt
Kadeem V Ferencz
Greenwood W Foller
Smith W Schemmer
Izzy F Schemmer
Jeanfrancois S Wieser
Murillo C Campain
Ivar R Chui
Clifford C Malet
Jones F Dilliard
Adams B Chui
Juan T Poquette
Julie K Oldroyd
Darci V Stockham
Faith K Nicka
Aruna Y Ruta
Cody D Paprocki
Maisha N Darakjy
Silvio T Nestle
Juan G Vocelka
Francesco D Foller
Izzy P Royster
James B Bolognia
Aditya O Malet
Mujtaba P Rim
Deepesh L Stenseth
Salvatore Q Doe
Aika J Kusko
Julie H Nestle
Aika O Dilliard
Ashley W Amigon
Stacey J Chui
James J Perin
Tony T Darakjy
Greenwood V Schemmer
Jeanfrancois B Morasca
Jones M Whobrey
Jones P Maclead
Jennifer P Nicka
Juan R Darakjy
Kaitlin R Marrier
Juan U Foller
Kadeem H Rulapaugh
Kaitlin Y Rulapaugh
Misaki Y Amigon
Antonio X Stenseth
Greenwood I Saylors
Ashley B Malet
Murillo Y Oldroyd
Jefferson X Tollner
IdCountryDate
1000France2024-04-15
1001India2024-04-08
1002India2024-04-20
1003Spain2024-04-15
1004France2024-04-14
1005Australia2024-04-18
1006Canada2024-04-03
1007Spain2024-04-15
1008India2024-04-01
1009Spain2024-04-25
1010Canada2024-04-17
1011Japan2024-04-09
1012Argentina2024-04-17
1013Germany2024-04-06
1014Italy2024-04-24
1015India2024-04-03
1016Japan2024-04-22
1017Australia2024-04-17
1018India2024-04-08
1019Australia2024-04-21
1020Italy2024-04-05
1021Argentina2024-04-23
1022Australia2024-04-07
1023United Kingdom2024-04-02
1024Russia2024-04-13
1025Russia2024-04-08
1026Canada2024-04-12
1027Russia2024-04-14
1028France2024-04-02
1029Italy2024-04-09
1030Germany2024-03-31
1031Spain2024-04-24
1032India2024-04-05
1033Spain2024-04-07
1034Argentina2024-03-31
1035Australia2024-03-27
1036Australia2024-04-16
1037Germany2024-04-08
1038Italy2024-03-28
1039Japan2024-04-20
1040Germany2024-04-16
1041Canada2024-04-14
1042United Kingdom2024-04-21
1043Japan2024-04-19
1044Argentina2024-04-19
1045Russia2024-04-08
1046Canada2024-04-22
1047Germany2024-04-06
1048Italy2024-03-28
1049Italy2024-04-01

On-Demand Data

NameIdCountryDate
Misaki I Rulapaugh1000Canada2024-04-24
Tony J Rulapaugh1001Brazil2024-04-04
Cody B Doe1002Argentina2024-03-28
Julie X Ostrosky1003Japan2024-03-29
Leon K Albares1004Russia2024-04-20
Faith I Ostrosky1005Argentina2024-04-12
Smith M Morasca1006Russia2024-04-10
Emily V Caudy1007Argentina2024-04-14
Morrow X Albares1008United Kingdom2024-03-29
Octavia V Dilliard1009Australia2024-03-27
Antonio Z Garufi1010India2024-04-20
Stacey U Figeroa1011France2024-04-02
Maria I Campain1012Italy2024-04-12
Mayumi P Shinko1013Brazil2024-04-24
Jefferson H Oldroyd1014Australia2024-04-25
Tony E Shinko1015Canada2024-04-25
Jefferson X Amigon1016Spain2024-03-31
Aruna C Paprocki1017Australia2024-03-28
David I Venere1018Canada2024-04-10
Mujtaba B Gaucho1019India2024-04-22
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Johnson G OldroydItalyAmy Elsner QUALIFIED
Sinclair P ChuiBrazilElwin Sharvill NEGOTIATION
Tony A SergiGermanyAmy Elsner NEW
Leja Z TollnerAustraliaAsiya Javayant UNQUALIFIED
Misaki N RimItalyAnna Fali QUALIFIED
Mayumi P WieserItalyOnyama Limba QUALIFIED
Sinclair K FigeroaCanadaStephen Shaw NEW
Stacey I VocelkaAustraliaAsiya Javayant QUALIFIED
Octavia W GauchoGermanyAnna Fali UNQUALIFIED
Cody R StockhamBrazilAsiya Javayant UNQUALIFIED
Munro B StockhamRussiaIoni Bowcher RENEWAL
Aika O DilliardBrazilOnyama Limba NEW
Mujtaba X AmigonSpainAsiya Javayant PROPOSAL
Nicolas X MacleadRussiaOnyama Limba QUALIFIED
Leon B AlbaresIndiaAmy Elsner UNQUALIFIED
Izzy W IturbideIndiaIoni Bowcher PROPOSAL
Kaitlin H CaudyFranceAnna Fali RENEWAL
Isabel W MacleadFranceStephen Shaw NEGOTIATION
Darci W DilliardItalyIvan Magalhaes PROPOSAL
Maisha T DoeSpainAsiya Javayant QUALIFIED
Aika D VenereUnited KingdomBernardo Dominic PROPOSAL
Rodrigues O DarakjyBrazilOnyama Limba NEW
Misaki L FerenczGermanyIoni Bowcher PROPOSAL
Murillo T GlickJapanAmy Elsner PROPOSAL
James M DoeUnited KingdomStephen Shaw NEW
Smith P InouyeBrazilAmy Elsner NEW
Rodrigues L SlusarskiIndiaXuxue Feng RENEWAL
James D ChuiJapanAsiya Javayant NEW
Munro R BologniaSpainBernardo Dominic UNQUALIFIED
Leon G FollerBrazilXuxue Feng NEW
Silvio G GarufiBrazilAmy Elsner NEW
Adams G PoquetteAustraliaElwin Sharvill PROPOSAL
Octavia N GauchoSpainBernardo Dominic PROPOSAL
Adams J TollnerArgentinaAmy Elsner NEW
Arvin K GarufiCanadaIoni Bowcher UNQUALIFIED
Claire D WhobreyJapanElwin Sharvill NEGOTIATION
Ivar B SergiBrazilBernardo Dominic UNQUALIFIED
Munro Q TollnerIndiaIvan Magalhaes NEGOTIATION
Aika T VenereItalyIvan Magalhaes NEGOTIATION
Jefferson A FerenczArgentinaOnyama Limba 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>