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
Jefferson Z NestleIndiaOnyama Limba NEGOTIATION
Kaitlin A GauchoSpainAsiya Javayant NEGOTIATION
Maisha R ButtArgentinaAnna Fali PROPOSAL
Leja A RutaSpainBernardo Dominic PROPOSAL
Cody H KolmetzJapanXuxue Feng QUALIFIED
Murillo O SchemmerAustraliaElwin Sharvill RENEWAL
Tony P InouyeSpainXuxue Feng NEW
Murillo D MarrierAustraliaElwin Sharvill PROPOSAL
Munro R GlickAustraliaAsiya Javayant RENEWAL
Wickens P MaletAustraliaBernardo Dominic PROPOSAL
Aditya G WieserBrazilAsiya Javayant QUALIFIED
Francesco I DoeBrazilXuxue Feng RENEWAL
Ricardo Z StensethFranceIvan Magalhaes PROPOSAL
Leon K GlickItalyIvan Magalhaes UNQUALIFIED
Cody H StockhamArgentinaOnyama Limba NEW
Leon R RutaRussiaIoni Bowcher QUALIFIED
Antonio U RutaIndiaXuxue Feng RENEWAL
Nicolas E FerenczJapanStephen Shaw RENEWAL
Greenwood O IturbideRussiaIoni Bowcher RENEWAL
Leon I MaletCanadaAnna Fali NEW
Leja D FollerArgentinaAsiya Javayant NEGOTIATION
Cody J RoysterAustraliaElwin Sharvill RENEWAL
Jennifer X CaldareraAustraliaBernardo Dominic NEW
David A NestleBrazilStephen Shaw NEW
Salvatore G ShinkoAustraliaAnna Fali UNQUALIFIED
Clifford B SchemmerArgentinaAmy Elsner NEGOTIATION
Juan J DarakjyArgentinaAsiya Javayant RENEWAL
Sinclair S CampainIndiaXuxue Feng NEGOTIATION
Faith T ShinkoItalyBernardo Dominic QUALIFIED
Smith P NickaCanadaStephen Shaw NEW
Jennifer P FollerSpainAmy Elsner NEW
Silvio K BologniaBrazilBernardo Dominic UNQUALIFIED
Aruna F SchemmerRussiaAmy Elsner NEGOTIATION
Julie L SchemmerJapanStephen Shaw UNQUALIFIED
Jennifer X DoeJapanStephen Shaw UNQUALIFIED
Francesco H NestleJapanBernardo Dominic RENEWAL
Morrow V VenereJapanIoni Bowcher UNQUALIFIED
Costa K GillianIndiaAnna Fali UNQUALIFIED
Munro V BologniaItalyAsiya Javayant NEGOTIATION
Greenwood B OstroskyBrazilXuxue Feng NEGOTIATION
Sinclair Z GlickGermanyElwin Sharvill PROPOSAL
Maisha Z CaldareraBrazilAmy Elsner UNQUALIFIED
Stacey G AmigonFranceAsiya Javayant NEW
Johnson K FerenczBrazilXuxue Feng NEGOTIATION
Kaitlin J MaletFranceAsiya Javayant UNQUALIFIED
Tony V StockhamArgentinaXuxue Feng NEW
Johnson W RulapaughIndiaOnyama Limba RENEWAL
Rodrigues P MorascaIndiaStephen Shaw PROPOSAL
Isabel Y GarufiBrazilAmy Elsner NEW
Arvin Y VocelkaCanadaAmy Elsner NEW
Horizontal
NameCountryRepresentativeStatus
Nicolas O PerinAustraliaXuxue Feng RENEWAL
Jennifer J RimJapanAmy Elsner NEGOTIATION
Claire P PaprockiCanadaXuxue Feng NEW
Juan J BologniaRussiaAmy Elsner UNQUALIFIED
Tony Y RulapaughGermanyIoni Bowcher QUALIFIED
Kadeem X SchemmerGermanyAnna Fali QUALIFIED
Greenwood P NestleAustraliaAmy Elsner RENEWAL
Leon Z FlosiIndiaElwin Sharvill QUALIFIED
Munro X DoeRussiaAmy Elsner RENEWAL
Cody K GauchoArgentinaOnyama Limba PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aika Y DoeUnited Kingdom2024-04-12Feltz Printing Service QUALIFIED75Anna Fali
1001Aika P InouyeUnited Kingdom2024-04-18Rangoni Of Florence RENEWAL76Onyama Limba
1002Misaki I BowleyRussia2024-04-19Feltz Printing Service RENEWAL43Asiya Javayant
1003Arvin S DarakjyItaly2024-04-09King, Christopher A Esq QUALIFIED56Amy Elsner
1004Izzy J WhobreyIndia2024-04-09Benton, John B Jr NEGOTIATION66Ivan Magalhaes
1005Nicolas Y NestleUnited Kingdom2024-04-20Morlong Associates RENEWAL45Xuxue Feng
1006Stacey J RutaSpain2024-04-29Benton, John B Jr NEW13Elwin Sharvill
1007Smith K MacleadBrazil2024-04-29Benton, John B Jr NEW74Anna Fali
1008Murillo X DoeArgentina2024-04-08Feltz Printing Service NEW83Amy Elsner
1009Izzy O BologniaCanada2024-04-22Morlong Associates UNQUALIFIED16Onyama Limba
1010Darci W RimRussia2024-05-02Dorl, James J Esq UNQUALIFIED5Amy Elsner
1011Rodrigues N FerenczGermany2024-04-26Benton, John B Jr UNQUALIFIED9Onyama Limba
1012Arvin Y GauchoAustralia2024-04-27Dorl, James J Esq RENEWAL59Onyama Limba
1013Darci V RulapaughRussia2024-04-10Rangoni Of Florence PROPOSAL53Bernardo Dominic
1014Kaitlin W GlickCanada2024-04-20Buckley Miller Wright QUALIFIED75Onyama Limba
1015Jefferson A FlosiItaly2024-04-28Dorl, James J Esq RENEWAL16Amy Elsner
1016Aruna Z FerenczSpain2024-04-13Chanay, Jeffrey A Esq NEGOTIATION6Onyama Limba
1017Maria F PoquetteRussia2024-04-25Benton, John B Jr NEGOTIATION47Stephen Shaw
1018Arvin Q ShinkoCanada2024-04-09Benton, John B Jr NEGOTIATION12Onyama Limba
1019Ivar X RimGermany2024-04-12Chapman, Ross E Esq QUALIFIED51Ioni Bowcher
1020Deepesh W SchemmerCanada2024-04-24Chanay, Jeffrey A Esq PROPOSAL87Elwin Sharvill
1021Nicolas Q DarakjyArgentina2024-04-23Chanay, Jeffrey A Esq QUALIFIED83Bernardo Dominic
1022Deepesh X GauchoUnited Kingdom2024-04-18Chanay, Jeffrey A Esq NEW67Ivan Magalhaes
1023Octavia E MacleadUnited Kingdom2024-04-19Chemel, James L Cpa PROPOSAL84Xuxue Feng
1024Kadeem Y SaylorsBrazil2024-04-17Printing Dimensions QUALIFIED22Stephen Shaw
1025Salvatore M MarrierJapan2024-04-20Feltz Printing Service RENEWAL44Anna Fali
1026Kadeem E BriddickSpain2024-04-14Morlong Associates NEW12Ivan Magalhaes
1027Maria I CaldareraArgentina2024-04-21Chemel, James L Cpa NEW59Stephen Shaw
1028Emily E DarakjyJapan2024-05-04Dorl, James J Esq NEGOTIATION58Anna Fali
1029Wickens D StensethIndia2024-04-10Morlong Associates PROPOSAL72Stephen Shaw
1030Claire U PerinAustralia2024-04-08Chemel, James L Cpa PROPOSAL61Ivan Magalhaes
1031Chavez Q KolmetzRussia2024-04-14Feiner Bros NEGOTIATION20Anna Fali
1032Rodrigues O GlickUnited Kingdom2024-04-28Buckley Miller Wright NEW52Anna Fali
1033Arvin K VenereFrance2024-05-04King, Christopher A Esq PROPOSAL83Anna Fali
1034Jones J KolmetzSpain2024-04-18Feiner Bros NEW49Amy Elsner
1035Isabel H AmigonItaly2024-04-25Chanay, Jeffrey A Esq RENEWAL23Stephen Shaw
1036Wickens U InouyeIndia2024-04-16Morlong Associates UNQUALIFIED95Ivan Magalhaes
1037Wickens R MaletItaly2024-04-10Benton, John B Jr NEW12Xuxue Feng
1038Francesco A MaletCanada2024-04-24Truhlar And Truhlar Attys PROPOSAL5Onyama Limba
1039Antonio J AlbaresAustralia2024-05-01Feltz Printing Service UNQUALIFIED30Anna Fali
1040Faith X WhobreyFrance2024-04-20Dorl, James J Esq UNQUALIFIED5Xuxue Feng
1041Costa I StockhamItaly2024-04-27Feltz Printing Service NEW8Xuxue Feng
1042Smith R GillianFrance2024-05-03Morlong Associates NEW11Xuxue Feng
1043Leon W DarakjyFrance2024-04-26Feltz Printing Service QUALIFIED40Bernardo Dominic
1044Greenwood O AmigonAustralia2024-04-11King, Christopher A Esq QUALIFIED44Stephen Shaw
1045Claire E WhobreyJapan2024-05-05Chemel, James L Cpa QUALIFIED27Amy Elsner
1046Maria N GillianBrazil2024-05-05Rangoni Of Florence PROPOSAL56Bernardo Dominic
1047Emily H BowleyFrance2024-04-10Chanay, Jeffrey A Esq NEW96Amy Elsner
1048Murillo X BriddickItaly2024-04-23Buckley Miller Wright QUALIFIED97Elwin Sharvill
1049Arvin V GlickUnited Kingdom2024-05-04Dorl, James J Esq NEGOTIATION66Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Mayumi B RutaRussiaStephen Shaw RENEWAL
Sinclair J GauchoRussiaIoni Bowcher NEW
Leja X AmigonIndiaAmy Elsner NEGOTIATION
Darci H DarakjyBrazilIoni Bowcher QUALIFIED
Isabel O VocelkaIndiaOnyama Limba PROPOSAL
Emily P CaldareraArgentinaElwin Sharvill PROPOSAL
Isabel C VenereCanadaAmy Elsner NEW
Ashley I DarakjyGermanyIvan Magalhaes RENEWAL
Clifford M MorascaAustraliaAnna Fali NEGOTIATION
Silvio E MaletGermanyAmy Elsner PROPOSAL
Salvatore U WhobreyCanadaBernardo Dominic NEW
David H SaylorsJapanIvan Magalhaes NEGOTIATION
Leon B GauchoBrazilAmy Elsner RENEWAL
Jennifer D FollerItalyXuxue Feng UNQUALIFIED
Darci Q AmigonCanadaAmy Elsner NEW
Alejandro L WaycottRussiaAmy Elsner NEW
Juan E RulapaughSpainIvan Magalhaes UNQUALIFIED
Ricardo K SergiRussiaAnna Fali RENEWAL
Johnson A RulapaughArgentinaAsiya Javayant RENEWAL
James Z CaldareraIndiaXuxue Feng RENEWAL
Adams C RutaItalyAnna Fali NEGOTIATION
Emily L GarufiJapanXuxue Feng UNQUALIFIED
Emily C DilliardGermanyElwin Sharvill RENEWAL
Smith J PerinUnited KingdomAnna Fali RENEWAL
Mujtaba P CaldareraGermanyAnna Fali QUALIFIED
Ashley Y VocelkaFranceStephen Shaw RENEWAL
Aruna Z PerinAustraliaAmy Elsner NEGOTIATION
Wickens U GlickJapanOnyama Limba QUALIFIED
Aditya G RutaIndiaAmy Elsner NEW
Francesco H RulapaughCanadaIoni Bowcher NEGOTIATION
Murillo B DarakjyCanadaIoni Bowcher QUALIFIED
Emily T WieserItalyBernardo Dominic NEW
Francesco V InouyeJapanElwin Sharvill RENEWAL
Ivar D SaylorsItalyBernardo Dominic RENEWAL
Octavia N CaldareraBrazilAsiya Javayant QUALIFIED
Ashley J ChuiCanadaElwin Sharvill PROPOSAL
Rodrigues H WieserUnited KingdomBernardo Dominic PROPOSAL
Octavia P ButtBrazilElwin Sharvill RENEWAL
Claire V KuskoAustraliaAmy Elsner NEGOTIATION
Claire R ChuiArgentinaBernardo Dominic RENEWAL
Octavia G CaldareraBrazilAmy Elsner UNQUALIFIED
Ashley L FerenczJapanOnyama Limba NEW
Antonio C VenereBrazilAsiya Javayant QUALIFIED
Stacey V RimFranceElwin Sharvill RENEWAL
Silvio H OldroydRussiaOnyama Limba UNQUALIFIED
Deepesh T InouyeArgentinaAmy Elsner RENEWAL
Isabel D RutaCanadaOnyama Limba NEGOTIATION
Julie R KuskoArgentinaStephen Shaw NEW
Jeanfrancois V RutaGermanyIoni Bowcher UNQUALIFIED
Alejandro H RulapaughArgentinaAsiya Javayant PROPOSAL
Frozen Columns
Name
Johnson J Venere
Isabel B Kolmetz
Maisha R Ruta
Kaitlin C Figeroa
Smith U Rulapaugh
David V Bowley
Sinclair N Foller
Murillo L Doe
Arvin J Slusarski
Claire T Kolmetz
Jones V Darakjy
Misaki B Venere
Jones E Darakjy
Emily J Paprocki
Ivar X Glick
Ashley S Oldroyd
Kadeem F Rim
Cody U Malet
James O Garufi
Aruna F Flosi
Faith R Rim
Murillo C Tollner
Faith P Saylors
Greenwood Y Rulapaugh
Greenwood Y Shinko
Misaki R Kolmetz
Cody R Darakjy
Kadeem Q Butt
Murillo V Tollner
Jennifer I Bolognia
Aika W Marrier
Mayumi N Doe
Ashley H Amigon
Antonio N Figeroa
Smith H Poquette
Stacey E Caldarera
Jeanfrancois T Foller
Darci G Garufi
Izzy S Marrier
David G Chui
Juan F Briddick
Leja J Wieser
Maria O Vocelka
Smith J Perin
Faith T Rulapaugh
Leon F Gaucho
Mayumi Q Waycott
Jennifer Q Foller
Maisha Q Sergi
Isabel W Nestle
IdCountryDate
1000United Kingdom2024-05-03
1001Spain2024-04-06
1002United Kingdom2024-04-18
1003Germany2024-04-16
1004Argentina2024-04-13
1005Australia2024-05-05
1006Australia2024-04-17
1007Argentina2024-04-16
1008Italy2024-04-22
1009Italy2024-04-08
1010France2024-04-23
1011Russia2024-04-30
1012Spain2024-05-02
1013Italy2024-04-23
1014Canada2024-05-05
1015Spain2024-04-19
1016Canada2024-04-25
1017Argentina2024-04-23
1018India2024-04-22
1019France2024-04-23
1020Japan2024-04-27
1021Brazil2024-04-08
1022Argentina2024-04-25
1023Brazil2024-04-25
1024United Kingdom2024-04-08
1025Australia2024-04-14
1026Spain2024-04-09
1027Japan2024-04-29
1028United Kingdom2024-05-04
1029Brazil2024-04-29
1030India2024-05-03
1031Italy2024-04-30
1032Russia2024-05-01
1033Spain2024-04-09
1034France2024-04-23
1035Canada2024-04-29
1036Brazil2024-04-17
1037Canada2024-05-03
1038Germany2024-04-22
1039Italy2024-04-28
1040Spain2024-04-12
1041France2024-04-15
1042Russia2024-04-24
1043Brazil2024-04-10
1044United Kingdom2024-05-05
1045Spain2024-04-09
1046Australia2024-04-24
1047Italy2024-04-25
1048Germany2024-04-21
1049India2024-04-13

On-Demand Data

NameIdCountryDate
Nicolas C Venere1000United Kingdom2024-04-06
Kaitlin O Oldroyd1001Australia2024-04-13
Murillo E Nestle1002Brazil2024-04-08
Claire O Inouye1003France2024-04-19
Ivar G Kusko1004Germany2024-04-10
Isabel X Oldroyd1005Canada2024-04-16
Isabel E Gaucho1006United Kingdom2024-05-04
Stacey N Tollner1007United Kingdom2024-04-19
Jones L Doe1008United Kingdom2024-04-17
Jefferson T Marrier1009Argentina2024-04-22
Aditya V Dilliard1010Italy2024-04-25
Mujtaba P Doe1011Argentina2024-04-25
Aruna R Flosi1012Italy2024-05-05
Izzy S Butt1013Japan2024-04-19
Greenwood A Glick1014Spain2024-04-14
Kadeem K Malet1015United Kingdom2024-04-29
Clifford Z Caudy1016Russia2024-04-20
Emily W Sergi1017Italy2024-04-17
Kadeem H Venere1018France2024-04-11
Adams L Nestle1019Brazil2024-04-08
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mujtaba S AmigonItalyAmy Elsner UNQUALIFIED
Isabel C VocelkaJapanStephen Shaw NEGOTIATION
Juan C PerinJapanXuxue Feng PROPOSAL
Arvin Q NestleCanadaIvan Magalhaes PROPOSAL
Claire G DarakjyJapanAnna Fali NEW
Claire J FollerSpainIoni Bowcher PROPOSAL
Emily O IturbideBrazilElwin Sharvill RENEWAL
Jones X FigeroaJapanAsiya Javayant UNQUALIFIED
Mujtaba K RulapaughRussiaAsiya Javayant NEGOTIATION
Salvatore E IturbideIndiaXuxue Feng PROPOSAL
Sinclair F StensethAustraliaOnyama Limba RENEWAL
Kadeem R OldroydArgentinaAsiya Javayant UNQUALIFIED
Francesco T GarufiArgentinaAnna Fali QUALIFIED
Izzy C PaprockiSpainIvan Magalhaes QUALIFIED
Juan E WhobreyItalyStephen Shaw NEGOTIATION
Mujtaba K IturbideSpainAsiya Javayant QUALIFIED
Emily F KuskoGermanyElwin Sharvill NEW
Greenwood X VocelkaIndiaElwin Sharvill NEGOTIATION
Kadeem J GlickCanadaElwin Sharvill NEW
Claire C MaletAustraliaXuxue Feng PROPOSAL
James D BologniaBrazilOnyama Limba PROPOSAL
Ricardo U KuskoItalyAmy Elsner NEGOTIATION
Clifford D CaudyBrazilIvan Magalhaes NEGOTIATION
Jennifer Z PerinRussiaStephen Shaw UNQUALIFIED
Maria Q BologniaGermanyBernardo Dominic NEW
Izzy A NestleGermanyBernardo Dominic PROPOSAL
Emily Y FerenczItalyBernardo Dominic NEW
Darci F MacleadJapanAnna Fali NEGOTIATION
David P OstroskyRussiaAmy Elsner NEW
Stacey T DoeRussiaAnna Fali NEGOTIATION
Nicolas F MaletAustraliaBernardo Dominic NEGOTIATION
Jeanfrancois H MaletJapanAsiya Javayant NEW
Juan N CaldareraArgentinaAmy Elsner RENEWAL
Octavia Q SergiRussiaAmy Elsner RENEWAL
Jefferson S TollnerRussiaXuxue Feng RENEWAL
Aika K ChuiFranceAnna Fali RENEWAL
Deepesh B GlickUnited KingdomXuxue Feng NEW
Silvio O RulapaughBrazilOnyama Limba RENEWAL
Maria U VocelkaGermanyStephen Shaw QUALIFIED
Faith X RimBrazilStephen Shaw UNQUALIFIED

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