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
Nicolas H TollnerIndiaBernardo Dominic UNQUALIFIED
Stacey Q VenereIndiaAnna Fali NEGOTIATION
James L CampainSpainStephen Shaw PROPOSAL
Alejandro K MaletItalyAmy Elsner PROPOSAL
Jones L WhobreySpainElwin Sharvill RENEWAL
Costa R WieserIndiaXuxue Feng UNQUALIFIED
Juan G NickaJapanStephen Shaw NEGOTIATION
Arvin Z TollnerItalyAnna Fali NEW
Sinclair Y PoquetteFranceElwin Sharvill NEW
Leon T IturbideUnited KingdomOnyama Limba NEGOTIATION
Cody O MaletItalyAmy Elsner PROPOSAL
Clifford P MorascaSpainElwin Sharvill QUALIFIED
Clifford L SlusarskiIndiaAsiya Javayant NEGOTIATION
Darci M RimBrazilAmy Elsner QUALIFIED
Murillo F WaycottSpainElwin Sharvill NEW
Kadeem B MaletBrazilAsiya Javayant NEW
Greenwood E FollerSpainAnna Fali NEGOTIATION
Ricardo C AmigonSpainIoni Bowcher PROPOSAL
Greenwood I WaycottJapanIvan Magalhaes NEGOTIATION
Kadeem G VocelkaGermanyIvan Magalhaes UNQUALIFIED
Wickens O DarakjyBrazilAnna Fali PROPOSAL
Kadeem R MaletBrazilAnna Fali RENEWAL
Darci R SchemmerUnited KingdomAnna Fali RENEWAL
Ashley E DarakjyGermanyXuxue Feng RENEWAL
Ashley H WaycottItalyXuxue Feng NEGOTIATION
Jeanfrancois L FlosiIndiaXuxue Feng NEW
Jeanfrancois P FerenczUnited KingdomAmy Elsner NEGOTIATION
Deepesh K GillianBrazilAsiya Javayant UNQUALIFIED
Adams A KuskoFranceIvan Magalhaes PROPOSAL
Octavia Y RutaRussiaIoni Bowcher PROPOSAL
Chavez V RutaSpainBernardo Dominic UNQUALIFIED
Clifford W CaldareraFranceXuxue Feng PROPOSAL
Mujtaba P WieserFranceAmy Elsner PROPOSAL
Arvin Z CampainIndiaStephen Shaw NEW
Maria A BologniaFranceOnyama Limba NEGOTIATION
Tony F TollnerJapanIvan Magalhaes RENEWAL
Emily S SlusarskiRussiaBernardo Dominic UNQUALIFIED
Arvin C BowleyAustraliaStephen Shaw QUALIFIED
Stacey D NestleItalyAmy Elsner NEW
Ricardo U MaletJapanAnna Fali RENEWAL
Adams N PerinBrazilStephen Shaw NEW
Silvio R WhobreyItalyIvan Magalhaes RENEWAL
David I IturbideRussiaIoni Bowcher QUALIFIED
Adams Y CampainBrazilElwin Sharvill UNQUALIFIED
Izzy W BologniaGermanyAsiya Javayant UNQUALIFIED
Octavia P RoysterRussiaAnna Fali UNQUALIFIED
David E WhobreyItalyElwin Sharvill UNQUALIFIED
Costa F BologniaCanadaOnyama Limba NEGOTIATION
Stacey D PerinItalyElwin Sharvill UNQUALIFIED
David E RutaArgentinaXuxue Feng QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Julie E PoquetteUnited KingdomIvan Magalhaes RENEWAL
Kaitlin Q KuskoAustraliaXuxue Feng RENEWAL
Salvatore H WhobreyIndiaXuxue Feng UNQUALIFIED
James W KolmetzGermanyIoni Bowcher RENEWAL
Julie S TollnerRussiaAnna Fali NEGOTIATION
Aditya U RutaItalyAsiya Javayant NEGOTIATION
Emily D OstroskyRussiaAmy Elsner NEW
Ashley F MacleadFranceBernardo Dominic PROPOSAL
Morrow M MaletFranceAmy Elsner QUALIFIED
Ivar I RulapaughBrazilBernardo Dominic RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Chavez W GlickGermany2024-04-06Dorl, James J Esq QUALIFIED65Xuxue Feng
1001Kaitlin N GauchoJapan2024-04-07Benton, John B Jr QUALIFIED69Stephen Shaw
1002Isabel R AlbaresItaly2024-04-05Rousseaux, Michael Esq RENEWAL87Elwin Sharvill
1003Morrow Q KuskoArgentina2024-04-30Chanay, Jeffrey A Esq PROPOSAL84Onyama Limba
1004Jones B DarakjyCanada2024-04-30Truhlar And Truhlar Attys NEGOTIATION69Onyama Limba
1005David V StockhamArgentina2024-04-23Commercial Press NEGOTIATION99Onyama Limba
1006Deepesh O PaprockiSpain2024-04-04Benton, John B Jr RENEWAL46Xuxue Feng
1007Deepesh P FollerGermany2024-04-04Buckley Miller Wright NEGOTIATION57Ivan Magalhaes
1008Claire L BowleyAustralia2024-04-10Chanay, Jeffrey A Esq UNQUALIFIED85Stephen Shaw
1009Claire P AmigonItaly2024-04-05Rousseaux, Michael Esq UNQUALIFIED0Asiya Javayant
1010Juan P FlosiBrazil2024-04-04Truhlar And Truhlar Attys NEGOTIATION76Elwin Sharvill
1011Morrow G MorascaItaly2024-04-11Benton, John B Jr UNQUALIFIED59Stephen Shaw
1012Leon U StockhamItaly2024-04-03Commercial Press NEW92Bernardo Dominic
1013Jennifer S DoeFrance2024-04-20Commercial Press QUALIFIED3Ioni Bowcher
1014Jennifer P InouyeUnited Kingdom2024-04-12King, Christopher A Esq UNQUALIFIED86Stephen Shaw
1015Wickens S GauchoRussia2024-04-21Commercial Press NEW5Anna Fali
1016Jefferson A ButtSpain2024-04-23King, Christopher A Esq NEGOTIATION73Ioni Bowcher
1017Johnson Q MaletItaly2024-04-10Commercial Press QUALIFIED27Elwin Sharvill
1018Alejandro G PaprockiRussia2024-04-18Commercial Press NEW81Elwin Sharvill
1019Kaitlin J ShinkoItaly2024-04-10Buckley Miller Wright RENEWAL69Bernardo Dominic
1020Clifford I RoysterArgentina2024-04-03Chemel, James L Cpa UNQUALIFIED15Asiya Javayant
1021Jones G BologniaAustralia2024-04-06Buckley Miller Wright QUALIFIED89Asiya Javayant
1022Ashley E BologniaJapan2024-04-12Printing Dimensions NEW9Amy Elsner
1023Leja S CaudyItaly2024-04-18Buckley Miller Wright PROPOSAL41Onyama Limba
1024Greenwood H VocelkaAustralia2024-04-06Chemel, James L Cpa QUALIFIED45Anna Fali
1025Jefferson Q ChuiItaly2024-04-08Buckley Miller Wright NEW25Bernardo Dominic
1026Kaitlin H StensethSpain2024-04-27Truhlar And Truhlar Attys PROPOSAL49Xuxue Feng
1027Izzy Q SergiCanada2024-04-17Benton, John B Jr QUALIFIED35Asiya Javayant
1028Morrow N RoysterIndia2024-04-01Chapman, Ross E Esq NEGOTIATION69Xuxue Feng
1029Salvatore L KuskoAustralia2024-04-01Feltz Printing Service NEGOTIATION16Elwin Sharvill
1030Aditya W WaycottArgentina2024-04-14Morlong Associates QUALIFIED17Stephen Shaw
1031Adams I MaletUnited Kingdom2024-04-11Truhlar And Truhlar Attys UNQUALIFIED43Asiya Javayant
1032Maisha L BologniaRussia2024-04-13Commercial Press RENEWAL62Xuxue Feng
1033Munro U NestleUnited Kingdom2024-04-16Feiner Bros RENEWAL43Xuxue Feng
1034Leja F RutaCanada2024-04-26Feltz Printing Service QUALIFIED41Bernardo Dominic
1035Murillo B IturbideFrance2024-04-03Benton, John B Jr NEW80Asiya Javayant
1036Aruna X MaletArgentina2024-04-24King, Christopher A Esq RENEWAL32Bernardo Dominic
1037Kaitlin V GauchoJapan2024-04-09King, Christopher A Esq NEGOTIATION53Elwin Sharvill
1038Kadeem S TollnerFrance2024-04-10Feltz Printing Service NEGOTIATION86Stephen Shaw
1039Leja F GauchoItaly2024-04-02Benton, John B Jr NEGOTIATION71Ivan Magalhaes
1040Claire W BriddickUnited Kingdom2024-04-09Buckley Miller Wright PROPOSAL91Amy Elsner
1041Faith L StensethGermany2024-04-30Chanay, Jeffrey A Esq PROPOSAL87Onyama Limba
1042Ricardo D RoysterBrazil2024-04-28Chemel, James L Cpa NEGOTIATION12Elwin Sharvill
1043Nicolas F AmigonArgentina2024-04-12Rangoni Of Florence NEW86Ivan Magalhaes
1044Wickens J OstroskyFrance2024-04-29Commercial Press UNQUALIFIED33Anna Fali
1045Jennifer I NickaAustralia2024-04-27King, Christopher A Esq NEW2Asiya Javayant
1046Jeanfrancois F VocelkaAustralia2024-04-26Commercial Press UNQUALIFIED28Ivan Magalhaes
1047Jeanfrancois R KuskoArgentina2024-04-11Rousseaux, Michael Esq NEW20Stephen Shaw
1048Jefferson O MorascaRussia2024-04-20Commercial Press NEW83Ioni Bowcher
1049Johnson G MaletBrazil2024-04-02Feltz Printing Service PROPOSAL82Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Juan A WieserIndiaIvan Magalhaes NEGOTIATION
Maisha Y DilliardSpainBernardo Dominic UNQUALIFIED
Kaitlin S ChuiAustraliaIvan Magalhaes NEW
Silvio U GillianJapanIoni Bowcher PROPOSAL
Maisha V VocelkaBrazilAmy Elsner QUALIFIED
Arvin L ButtGermanyXuxue Feng UNQUALIFIED
Misaki O GauchoRussiaIvan Magalhaes QUALIFIED
Jeanfrancois F ShinkoIndiaAsiya Javayant PROPOSAL
Adams R ButtAustraliaAmy Elsner RENEWAL
Sinclair M KolmetzIndiaIvan Magalhaes NEGOTIATION
James U GauchoUnited KingdomBernardo Dominic NEW
Juan V TollnerCanadaAnna Fali NEGOTIATION
Kadeem Y ShinkoRussiaXuxue Feng PROPOSAL
Maisha G MarrierIndiaXuxue Feng QUALIFIED
Nicolas U GillianJapanStephen Shaw UNQUALIFIED
Leon X GauchoGermanyAnna Fali NEW
Ivar L WhobreyRussiaAnna Fali PROPOSAL
Cody B FerenczBrazilOnyama Limba RENEWAL
Ivar X StockhamSpainAmy Elsner QUALIFIED
Ricardo L MarrierRussiaAnna Fali PROPOSAL
Aditya A GauchoRussiaXuxue Feng NEW
Salvatore E SchemmerIndiaOnyama Limba UNQUALIFIED
David T GauchoGermanyBernardo Dominic NEGOTIATION
Stacey T SaylorsAustraliaBernardo Dominic NEW
Rodrigues T ButtRussiaOnyama Limba PROPOSAL
Darci P ButtItalyXuxue Feng NEGOTIATION
Kaitlin O CampainBrazilAnna Fali QUALIFIED
Octavia L AmigonJapanOnyama Limba NEW
Jones S OstroskyCanadaAsiya Javayant PROPOSAL
Clifford L BologniaCanadaAnna Fali QUALIFIED
Nicolas H GlickRussiaStephen Shaw NEGOTIATION
Jones A SlusarskiJapanElwin Sharvill RENEWAL
Arvin R BriddickGermanyOnyama Limba RENEWAL
Ashley L FlosiSpainIoni Bowcher PROPOSAL
Stacey R CampainCanadaXuxue Feng QUALIFIED
Faith K BologniaGermanyElwin Sharvill PROPOSAL
Deepesh P MorascaRussiaIvan Magalhaes UNQUALIFIED
Deepesh B AmigonFranceAmy Elsner RENEWAL
Jefferson S PoquetteJapanAnna Fali PROPOSAL
Arvin I ButtIndiaOnyama Limba NEGOTIATION
Leon A OstroskyJapanXuxue Feng UNQUALIFIED
Mujtaba O OldroydBrazilBernardo Dominic UNQUALIFIED
Arvin I AlbaresItalyAmy Elsner PROPOSAL
Chavez T PaprockiBrazilIoni Bowcher NEGOTIATION
Deepesh I PerinGermanyStephen Shaw QUALIFIED
Sinclair D PaprockiRussiaIoni Bowcher UNQUALIFIED
Sinclair Z NickaUnited KingdomOnyama Limba NEW
Leja I VocelkaArgentinaStephen Shaw NEGOTIATION
Wickens D GlickArgentinaIoni Bowcher UNQUALIFIED
Isabel L GauchoIndiaBernardo Dominic UNQUALIFIED
Frozen Columns
Name
Ashley U Malet
Sinclair O Bolognia
Julie G Marrier
Ashley J Rim
Leon D Chui
Silvio D Perin
Antonio M Shinko
Aruna C Figeroa
Ivar F Doe
Aruna D Oldroyd
Alejandro Z Bowley
Morrow M Royster
Wickens E Darakjy
Aditya L Oldroyd
Arvin T Malet
Cody K Malet
Sinclair N Bolognia
Mayumi Z Schemmer
Octavia F Dilliard
Faith X Sergi
Darci K Rim
Deepesh K Inouye
Nicolas M Sergi
Smith O Nicka
Jones B Shinko
Mayumi A Foller
Clifford R Gaucho
Aditya H Maclead
Ivar L Schemmer
Ivar Y Morasca
Jennifer C Amigon
Adams P Ruta
Morrow T Figeroa
Chavez B Nestle
Julie E Stenseth
Ashley S Saylors
Smith A Garufi
Salvatore U Nicka
Aruna T Morasca
Izzy C Caldarera
Aruna G Slusarski
Leon E Dilliard
Maisha H Stenseth
Misaki D Saylors
Francesco I Flosi
David M Rim
Aika Z Stockham
Misaki W Doe
Misaki K Kolmetz
Stacey U Saylors
IdCountryDate
1000India2024-04-15
1001Japan2024-04-19
1002Spain2024-04-07
1003Italy2024-04-11
1004Italy2024-04-05
1005Spain2024-04-18
1006India2024-04-17
1007United Kingdom2024-04-28
1008Australia2024-04-05
1009Argentina2024-04-05
1010United Kingdom2024-04-07
1011Italy2024-04-29
1012Italy2024-04-19
1013Russia2024-04-08
1014Argentina2024-04-21
1015Canada2024-04-08
1016Italy2024-04-24
1017Germany2024-04-30
1018France2024-04-17
1019Canada2024-04-29
1020United Kingdom2024-04-19
1021Italy2024-04-01
1022Spain2024-04-05
1023Japan2024-04-09
1024Brazil2024-04-14
1025Canada2024-04-19
1026Italy2024-04-15
1027India2024-04-15
1028Spain2024-04-26
1029Canada2024-04-20
1030Argentina2024-04-14
1031Japan2024-04-19
1032Brazil2024-04-23
1033Italy2024-04-03
1034France2024-04-20
1035Italy2024-04-11
1036Spain2024-04-20
1037Germany2024-04-03
1038France2024-04-05
1039India2024-04-10
1040Australia2024-04-08
1041Russia2024-04-20
1042Spain2024-04-15
1043Canada2024-04-27
1044India2024-04-08
1045Argentina2024-04-24
1046Argentina2024-04-22
1047India2024-04-25
1048Brazil2024-04-26
1049Russia2024-04-30

On-Demand Data

NameIdCountryDate
Silvio J Slusarski1000Canada2024-04-07
Antonio U Rim1001France2024-04-14
Ivar W Campain1002Spain2024-04-14
Adams K Waycott1003Japan2024-04-23
Sinclair V Garufi1004Italy2024-04-05
Adams E Vocelka1005Canada2024-04-18
Kadeem U Ruta1006United Kingdom2024-04-10
Munro I Oldroyd1007Canada2024-04-16
Ashley Z Doe1008Russia2024-04-21
Ashley U Rim1009Italy2024-04-30
Ashley E Maclead1010Brazil2024-04-15
Ricardo G Marrier1011Japan2024-04-11
Silvio U Marrier1012Canada2024-04-12
Julie W Stenseth1013Australia2024-04-23
Misaki L Chui1014Canada2024-04-21
Leja Z Maclead1015Australia2024-04-13
Tony D Morasca1016India2024-04-07
Costa Y Ferencz1017India2024-04-30
Morrow V Saylors1018Brazil2024-04-07
Leon N Stenseth1019India2024-04-05
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Nicolas S NickaItalyAmy Elsner NEGOTIATION
Salvatore V DoeJapanStephen Shaw NEW
Emily Z RulapaughGermanyXuxue Feng UNQUALIFIED
Juan A RimArgentinaIoni Bowcher QUALIFIED
David F DoeIndiaOnyama Limba RENEWAL
Ashley E ShinkoArgentinaXuxue Feng PROPOSAL
Costa W MacleadSpainOnyama Limba RENEWAL
Adams L GauchoArgentinaIoni Bowcher UNQUALIFIED
Mayumi H DarakjyFranceXuxue Feng QUALIFIED
Silvio X PerinBrazilOnyama Limba NEGOTIATION
Emily L SergiRussiaAnna Fali NEGOTIATION
Aika J WaycottIndiaAnna Fali NEGOTIATION
Jones K GillianSpainIoni Bowcher QUALIFIED
Claire Y FerenczItalyStephen Shaw NEGOTIATION
Chavez P VocelkaRussiaElwin Sharvill UNQUALIFIED
Mayumi N CaldareraCanadaAsiya Javayant PROPOSAL
Sinclair T MarrierAustraliaAmy Elsner QUALIFIED
Darci M SergiItalyAmy Elsner QUALIFIED
Jones K GauchoArgentinaIvan Magalhaes RENEWAL
Juan E BriddickFranceIoni Bowcher NEW
David S FerenczSpainIvan Magalhaes RENEWAL
Ashley R StensethUnited KingdomIvan Magalhaes UNQUALIFIED
Jefferson Z NickaJapanOnyama Limba RENEWAL
Deepesh P GillianGermanyAmy Elsner NEW
Isabel Y PaprockiItalyOnyama Limba PROPOSAL
Antonio G GauchoArgentinaIoni Bowcher QUALIFIED
Ashley Z AmigonSpainAmy Elsner QUALIFIED
Darci N OldroydArgentinaElwin Sharvill RENEWAL
Stacey F RulapaughJapanAmy Elsner NEW
Emily S RoysterUnited KingdomAnna Fali NEGOTIATION
Antonio M MacleadUnited KingdomOnyama Limba NEGOTIATION
Nicolas O BriddickArgentinaStephen Shaw NEW
Smith C ChuiAustraliaAmy Elsner QUALIFIED
Wickens X PerinItalyAmy Elsner QUALIFIED
Mujtaba N StockhamCanadaAmy Elsner PROPOSAL
Alejandro K IturbideAustraliaStephen Shaw PROPOSAL
James J SchemmerFranceIvan Magalhaes QUALIFIED
Wickens P ButtUnited KingdomAsiya Javayant NEGOTIATION
Adams D OldroydAustraliaIoni Bowcher PROPOSAL
Jennifer Q WhobreyJapanElwin Sharvill 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>