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
Mayumi P BriddickBrazilAmy Elsner UNQUALIFIED
Claire S FlosiItalyAsiya Javayant QUALIFIED
Ivar I GarufiFranceAnna Fali RENEWAL
Jennifer U GillianBrazilAsiya Javayant PROPOSAL
James S MaletArgentinaElwin Sharvill PROPOSAL
Octavia I WaycottAustraliaAmy Elsner UNQUALIFIED
Munro R IturbideItalyAsiya Javayant UNQUALIFIED
Misaki R RutaSpainAmy Elsner QUALIFIED
Greenwood T FollerUnited KingdomOnyama Limba NEGOTIATION
Wickens H AlbaresBrazilAnna Fali NEW
Misaki C GauchoIndiaIoni Bowcher NEGOTIATION
Murillo K RutaItalyAsiya Javayant RENEWAL
Kaitlin Q WhobreyCanadaStephen Shaw NEW
Morrow C SergiRussiaIoni Bowcher PROPOSAL
Arvin J WieserArgentinaBernardo Dominic QUALIFIED
Johnson O RimBrazilOnyama Limba QUALIFIED
Maisha D RimBrazilElwin Sharvill RENEWAL
Antonio C DarakjyGermanyXuxue Feng QUALIFIED
Cody K InouyeUnited KingdomStephen Shaw QUALIFIED
Ashley C GillianFranceIvan Magalhaes RENEWAL
Murillo Q WaycottBrazilIvan Magalhaes UNQUALIFIED
Smith V FerenczArgentinaBernardo Dominic QUALIFIED
Kadeem L OstroskyArgentinaOnyama Limba QUALIFIED
Aika V CaudyCanadaIvan Magalhaes NEGOTIATION
Darci H FlosiSpainBernardo Dominic RENEWAL
Claire Y WaycottUnited KingdomAsiya Javayant QUALIFIED
Chavez N BowleySpainIvan Magalhaes UNQUALIFIED
Morrow E WhobreyGermanyAnna Fali UNQUALIFIED
Octavia S NestleArgentinaIvan Magalhaes NEW
Clifford T FollerAustraliaStephen Shaw PROPOSAL
Jeanfrancois I CaldareraAustraliaOnyama Limba RENEWAL
Faith D CaudyAustraliaOnyama Limba RENEWAL
Kaitlin S FerenczItalyAmy Elsner UNQUALIFIED
Munro Z InouyeCanadaBernardo Dominic NEW
Ashley W StensethUnited KingdomIvan Magalhaes RENEWAL
Adams K DoeArgentinaStephen Shaw RENEWAL
Octavia Q StockhamGermanyElwin Sharvill UNQUALIFIED
Murillo Z NestleGermanyBernardo Dominic NEGOTIATION
Jeanfrancois X FlosiBrazilIoni Bowcher RENEWAL
Chavez W DilliardJapanElwin Sharvill PROPOSAL
Jefferson Q MaletCanadaAsiya Javayant NEW
Nicolas F VenereBrazilIvan Magalhaes UNQUALIFIED
Chavez V FigeroaItalyAmy Elsner RENEWAL
Costa Y OstroskyAustraliaBernardo Dominic QUALIFIED
Murillo T PaprockiGermanyIoni Bowcher PROPOSAL
Octavia A IturbideIndiaStephen Shaw QUALIFIED
Aditya F MorascaCanadaElwin Sharvill RENEWAL
Smith T AmigonRussiaAsiya Javayant RENEWAL
Antonio J SaylorsSpainStephen Shaw QUALIFIED
Jefferson B SchemmerItalyStephen Shaw RENEWAL
Horizontal
NameCountryRepresentativeStatus
Ivar S CampainFranceBernardo Dominic RENEWAL
Clifford Z StensethItalyAnna Fali UNQUALIFIED
Arvin B OstroskyCanadaIvan Magalhaes NEW
Mayumi C AlbaresAustraliaElwin Sharvill QUALIFIED
Aditya Z ShinkoArgentinaOnyama Limba NEGOTIATION
James N WhobreyAustraliaXuxue Feng NEGOTIATION
Aditya W WieserSpainAsiya Javayant NEGOTIATION
Maria F MaletGermanyIvan Magalhaes NEGOTIATION
Stacey T DilliardJapanElwin Sharvill PROPOSAL
Adams P KuskoUnited KingdomAmy Elsner PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000James M NestleItaly2024-04-24Chemel, James L Cpa QUALIFIED75Bernardo Dominic
1001Stacey W ChuiIndia2024-04-29Chapman, Ross E Esq PROPOSAL43Bernardo Dominic
1002James G ButtUnited Kingdom2024-04-22Morlong Associates NEGOTIATION60Elwin Sharvill
1003Faith L AmigonUnited Kingdom2024-04-13Rangoni Of Florence NEGOTIATION85Asiya Javayant
1004Arvin Q PerinAustralia2024-05-08Rangoni Of Florence RENEWAL47Amy Elsner
1005Greenwood X FigeroaRussia2024-05-01Dorl, James J Esq NEGOTIATION19Bernardo Dominic
1006Jefferson X KuskoUnited Kingdom2024-05-03Rangoni Of Florence NEGOTIATION5Ioni Bowcher
1007Emily O OldroydJapan2024-04-17Chemel, James L Cpa QUALIFIED93Ivan Magalhaes
1008Kaitlin G AmigonRussia2024-05-06Morlong Associates PROPOSAL83Stephen Shaw
1009Jeanfrancois E SaylorsFrance2024-05-07King, Christopher A Esq NEGOTIATION75Ioni Bowcher
1010Claire H KuskoItaly2024-04-18Dorl, James J Esq NEGOTIATION59Bernardo Dominic
1011Mayumi G KolmetzFrance2024-04-22Feiner Bros RENEWAL66Onyama Limba
1012Juan N RoysterFrance2024-04-16King, Christopher A Esq NEGOTIATION91Xuxue Feng
1013Izzy U OldroydBrazil2024-04-27Buckley Miller Wright QUALIFIED84Asiya Javayant
1014Sinclair P StockhamUnited Kingdom2024-05-04Rousseaux, Michael Esq QUALIFIED78Ioni Bowcher
1015David W FollerItaly2024-05-08Chemel, James L Cpa PROPOSAL7Ioni Bowcher
1016Smith C StensethSpain2024-04-16Rousseaux, Michael Esq RENEWAL37Ivan Magalhaes
1017Deepesh M DarakjyArgentina2024-04-17Rangoni Of Florence PROPOSAL83Onyama Limba
1018Juan H ChuiSpain2024-05-09Chemel, James L Cpa PROPOSAL61Ivan Magalhaes
1019Claire G InouyeFrance2024-04-28Chapman, Ross E Esq UNQUALIFIED97Ioni Bowcher
1020Jones B FollerJapan2024-04-26Rangoni Of Florence NEGOTIATION72Stephen Shaw
1021Stacey T RoysterSpain2024-05-09Buckley Miller Wright QUALIFIED73Onyama Limba
1022Deepesh O VocelkaJapan2024-05-07Feltz Printing Service RENEWAL66Xuxue Feng
1023Ricardo A BologniaBrazil2024-04-27Chanay, Jeffrey A Esq PROPOSAL39Ioni Bowcher
1024Jones H DoeSpain2024-04-10Printing Dimensions UNQUALIFIED6Ioni Bowcher
1025Greenwood S TollnerArgentina2024-05-08Feltz Printing Service NEW17Xuxue Feng
1026Cody X SchemmerGermany2024-04-29Chanay, Jeffrey A Esq QUALIFIED77Asiya Javayant
1027Cody K SergiSpain2024-04-20King, Christopher A Esq NEGOTIATION60Bernardo Dominic
1028Mayumi B BowleyAustralia2024-05-05King, Christopher A Esq NEW94Elwin Sharvill
1029Rodrigues U StockhamJapan2024-04-13Feltz Printing Service NEGOTIATION72Elwin Sharvill
1030Nicolas O SaylorsUnited Kingdom2024-04-18Chanay, Jeffrey A Esq RENEWAL11Amy Elsner
1031Chavez R RulapaughAustralia2024-05-06Dorl, James J Esq NEW32Onyama Limba
1032Clifford T CampainArgentina2024-05-08Commercial Press PROPOSAL9Stephen Shaw
1033Johnson A MaletJapan2024-04-30Commercial Press RENEWAL75Asiya Javayant
1034Mujtaba H AlbaresIndia2024-04-30Rangoni Of Florence NEGOTIATION88Anna Fali
1035Ricardo D PaprockiAustralia2024-04-20Printing Dimensions NEW38Elwin Sharvill
1036Adams U TollnerJapan2024-04-14Buckley Miller Wright RENEWAL53Bernardo Dominic
1037Munro A MarrierFrance2024-04-20Dorl, James J Esq NEW51Elwin Sharvill
1038Jones L GillianFrance2024-05-03Chanay, Jeffrey A Esq NEW36Stephen Shaw
1039Jeanfrancois X GlickGermany2024-04-12Benton, John B Jr NEW40Asiya Javayant
1040Rodrigues W DilliardJapan2024-05-09Printing Dimensions NEW90Elwin Sharvill
1041Rodrigues G OstroskyAustralia2024-05-05Morlong Associates QUALIFIED48Ivan Magalhaes
1042Adams T DarakjyIndia2024-04-17Chapman, Ross E Esq NEW69Elwin Sharvill
1043Leja Y PaprockiUnited Kingdom2024-04-27Commercial Press QUALIFIED78Anna Fali
1044Claire Y BologniaFrance2024-04-30Morlong Associates NEW90Amy Elsner
1045Arvin A SchemmerUnited Kingdom2024-04-13Feltz Printing Service NEW73Asiya Javayant
1046Johnson P MacleadJapan2024-04-29Dorl, James J Esq RENEWAL29Ioni Bowcher
1047Jones F SlusarskiGermany2024-04-27Feiner Bros QUALIFIED59Asiya Javayant
1048Darci X OldroydGermany2024-05-04Chanay, Jeffrey A Esq PROPOSAL10Stephen Shaw
1049Kadeem P BriddickArgentina2024-05-02King, Christopher A Esq QUALIFIED58Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Leja V GillianItalyIoni Bowcher NEGOTIATION
Sinclair K MaletBrazilAmy Elsner UNQUALIFIED
Munro I TollnerCanadaBernardo Dominic UNQUALIFIED
Rodrigues S GarufiUnited KingdomXuxue Feng PROPOSAL
Maria U FerenczArgentinaElwin Sharvill RENEWAL
Aika D KolmetzUnited KingdomIoni Bowcher UNQUALIFIED
Faith P GauchoRussiaOnyama Limba NEGOTIATION
Wickens B FlosiAustraliaBernardo Dominic NEW
Greenwood A FigeroaUnited KingdomOnyama Limba QUALIFIED
Murillo F StockhamFranceAmy Elsner NEGOTIATION
Claire H IturbideIndiaAnna Fali QUALIFIED
Cody U PaprockiGermanyIoni Bowcher NEGOTIATION
Silvio J WhobreyFranceBernardo Dominic NEW
Wickens K WaycottRussiaAsiya Javayant NEGOTIATION
Aika G DilliardGermanyOnyama Limba QUALIFIED
Deepesh I PerinIndiaXuxue Feng QUALIFIED
Mayumi P VocelkaAustraliaOnyama Limba UNQUALIFIED
Jefferson J SchemmerRussiaXuxue Feng PROPOSAL
Jones G PoquetteUnited KingdomIvan Magalhaes QUALIFIED
Costa V SlusarskiGermanyIoni Bowcher PROPOSAL
Sinclair D BriddickItalyAsiya Javayant NEGOTIATION
Leja C DarakjyFranceAnna Fali NEW
Mujtaba U FollerItalyIvan Magalhaes QUALIFIED
Rodrigues V OstroskySpainXuxue Feng PROPOSAL
Murillo Z WaycottItalyElwin Sharvill NEW
Leja N StockhamJapanBernardo Dominic UNQUALIFIED
Ivar B TollnerBrazilIvan Magalhaes RENEWAL
Tony P RulapaughFranceBernardo Dominic NEGOTIATION
Greenwood C NickaItalyAnna Fali NEGOTIATION
Maisha E CaudyJapanAnna Fali NEGOTIATION
Isabel K FlosiFranceStephen Shaw RENEWAL
Faith C DilliardJapanIoni Bowcher PROPOSAL
Sinclair J NickaFranceAnna Fali PROPOSAL
Emily O MaletArgentinaAmy Elsner RENEWAL
Aditya G FigeroaGermanyAnna Fali NEW
Aruna E NickaBrazilStephen Shaw QUALIFIED
Jeanfrancois J StensethFranceIoni Bowcher PROPOSAL
Mayumi A CampainUnited KingdomStephen Shaw UNQUALIFIED
Jennifer E WhobreyIndiaStephen Shaw UNQUALIFIED
Emily S IturbideArgentinaBernardo Dominic QUALIFIED
Kaitlin D MorascaFranceAnna Fali NEW
Alejandro H SaylorsCanadaAnna Fali QUALIFIED
Faith V FerenczJapanStephen Shaw PROPOSAL
Aika Q TollnerBrazilXuxue Feng UNQUALIFIED
Darci O CaudyUnited KingdomIvan Magalhaes NEGOTIATION
Adams H PerinIndiaXuxue Feng NEW
Jones D KuskoGermanyAmy Elsner QUALIFIED
Ashley X SlusarskiItalyXuxue Feng QUALIFIED
Faith P StockhamUnited KingdomStephen Shaw RENEWAL
Rodrigues Z CampainFranceElwin Sharvill QUALIFIED
Frozen Columns
Name
Maisha K Ostrosky
David X Saylors
Julie O Nicka
Leja L Whobrey
Jeanfrancois N Venere
Salvatore A Caudy
Isabel W Shinko
Maisha R Maclead
Ricardo T Nicka
Chavez Q Maclead
Jeanfrancois F Nestle
Aika X Perin
Cody C Kusko
Julie E Darakjy
Maisha P Gillian
Sinclair K Caldarera
James Q Doe
Stacey E Glick
Darci V Albares
Francesco I Flosi
Jones T Gillian
Antonio I Bolognia
Rodrigues G Amigon
Silvio F Inouye
Jefferson K Caudy
Arvin J Rim
Jones N Stenseth
David A Nestle
Jefferson B Garufi
Faith O Chui
Faith G Gaucho
Stacey K Royster
Aditya F Slusarski
Nicolas I Figeroa
Izzy A Perin
Sinclair D Wieser
Arvin L Caldarera
Aika G Morasca
Costa J Garufi
Johnson P Dilliard
Silvio P Poquette
Misaki Q Gillian
Nicolas B Figeroa
Wickens E Nicka
Adams G Bolognia
Morrow S Darakjy
Julie B Caldarera
Cody L Kusko
Juan D Gillian
Izzy N Bolognia
IdCountryDate
1000France2024-05-05
1001Russia2024-04-12
1002India2024-05-09
1003Japan2024-04-26
1004Spain2024-04-15
1005United Kingdom2024-04-13
1006Germany2024-05-05
1007France2024-04-19
1008Germany2024-05-03
1009Brazil2024-05-03
1010Canada2024-04-23
1011Canada2024-05-02
1012Australia2024-05-09
1013Germany2024-04-17
1014Argentina2024-04-18
1015Russia2024-04-18
1016Italy2024-04-25
1017India2024-04-23
1018Japan2024-05-09
1019Australia2024-05-04
1020Italy2024-04-16
1021Canada2024-05-01
1022France2024-04-20
1023Spain2024-04-24
1024Italy2024-04-18
1025Spain2024-04-17
1026Italy2024-05-03
1027Russia2024-05-01
1028Australia2024-04-22
1029Japan2024-04-15
1030France2024-05-02
1031Argentina2024-04-24
1032Canada2024-05-01
1033Japan2024-04-22
1034Brazil2024-04-23
1035Russia2024-04-13
1036Canada2024-05-05
1037Australia2024-04-23
1038India2024-04-12
1039Canada2024-05-02
1040Canada2024-04-14
1041Russia2024-04-10
1042India2024-04-29
1043Argentina2024-04-16
1044Japan2024-04-26
1045Spain2024-05-07
1046France2024-04-15
1047France2024-05-06
1048France2024-05-06
1049Italy2024-04-19

On-Demand Data

NameIdCountryDate
Julie K Bowley1000Brazil2024-04-16
Mujtaba H Caldarera1001Brazil2024-04-14
James P Doe1002Brazil2024-04-15
Murillo V Venere1003Argentina2024-04-24
Leja T Dilliard1004France2024-05-07
Isabel C Amigon1005United Kingdom2024-05-08
Jennifer D Kolmetz1006Argentina2024-04-17
Mayumi W Bowley1007United Kingdom2024-05-06
Francesco I Oldroyd1008India2024-05-08
Claire M Foller1009Germany2024-05-09
Ashley F Caudy1010Spain2024-05-05
Johnson V Butt1011India2024-04-18
Alejandro S Royster1012India2024-05-09
Jones N Nicka1013Canada2024-04-25
Morrow T Darakjy1014Spain2024-04-21
Silvio K Stockham1015Australia2024-04-13
Murillo Y Tollner1016France2024-05-05
Julie W Waycott1017France2024-04-20
Izzy K Albares1018Australia2024-04-20
Costa J Nicka1019Japan2024-05-01
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ashley Z NickaItalyIoni Bowcher NEW
Izzy O SergiFranceIoni Bowcher PROPOSAL
Stacey S MacleadAustraliaIvan Magalhaes PROPOSAL
Julie N StockhamUnited KingdomElwin Sharvill QUALIFIED
Ivar H GlickRussiaAmy Elsner RENEWAL
Kaitlin Q PerinRussiaBernardo Dominic QUALIFIED
Emily W TollnerCanadaXuxue Feng NEW
Ashley Y RutaIndiaAnna Fali NEW
Smith B FollerArgentinaOnyama Limba RENEWAL
Kadeem N PaprockiArgentinaElwin Sharvill NEW
Jones H OldroydRussiaXuxue Feng QUALIFIED
Emily F FlosiUnited KingdomOnyama Limba UNQUALIFIED
Munro T NestleIndiaOnyama Limba QUALIFIED
Munro Q BologniaItalyOnyama Limba UNQUALIFIED
Nicolas U StensethIndiaAnna Fali RENEWAL
Claire M NickaGermanyIoni Bowcher UNQUALIFIED
Emily I GillianFranceIoni Bowcher NEW
Greenwood B BologniaCanadaAnna Fali NEGOTIATION
Leja G SlusarskiGermanyXuxue Feng NEGOTIATION
Izzy D CaudySpainStephen Shaw NEW
Cody C WaycottRussiaAmy Elsner NEGOTIATION
Jones B FlosiCanadaElwin Sharvill NEW
Juan O GarufiCanadaAmy Elsner QUALIFIED
Maria W VocelkaCanadaAmy Elsner QUALIFIED
Leja Z CaudyIndiaOnyama Limba NEW
Leon F FlosiIndiaIoni Bowcher RENEWAL
Deepesh Y FollerItalyOnyama Limba NEGOTIATION
Sinclair Q RimArgentinaAmy Elsner QUALIFIED
Darci R CaldareraRussiaAnna Fali UNQUALIFIED
James R BowleyItalyAnna Fali NEGOTIATION
Deepesh T BowleyUnited KingdomIoni Bowcher RENEWAL
Isabel T BriddickSpainXuxue Feng PROPOSAL
Maisha B FlosiSpainAmy Elsner QUALIFIED
Aditya D GauchoBrazilStephen Shaw RENEWAL
Greenwood O GarufiGermanyAsiya Javayant PROPOSAL
Kadeem U WaycottJapanElwin Sharvill NEGOTIATION
Ashley B MaletArgentinaXuxue Feng PROPOSAL
Salvatore N StensethRussiaOnyama Limba RENEWAL
Antonio I DoeJapanAnna Fali NEGOTIATION
Leja V RoysterSpainBernardo Dominic 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>