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
Sinclair C FigeroaAustraliaBernardo Dominic PROPOSAL
Johnson W MaletGermanyBernardo Dominic RENEWAL
Rodrigues J GlickSpainElwin Sharvill PROPOSAL
Jennifer D AlbaresUnited KingdomAmy Elsner QUALIFIED
Salvatore L MaletBrazilStephen Shaw NEGOTIATION
Jeanfrancois S GillianArgentinaIoni Bowcher QUALIFIED
Ashley O GillianArgentinaAsiya Javayant NEW
Misaki D OldroydFranceStephen Shaw RENEWAL
Nicolas O SchemmerFranceIvan Magalhaes PROPOSAL
Morrow T VenereArgentinaIoni Bowcher NEGOTIATION
Jefferson J BriddickGermanyAmy Elsner NEGOTIATION
Munro A GauchoSpainAsiya Javayant QUALIFIED
Alejandro J FollerFranceBernardo Dominic RENEWAL
Aruna S PaprockiUnited KingdomAnna Fali NEW
Arvin K AmigonIndiaIvan Magalhaes QUALIFIED
Munro G StensethBrazilIvan Magalhaes PROPOSAL
Leon Y SergiUnited KingdomElwin Sharvill NEW
Kaitlin L SlusarskiCanadaXuxue Feng PROPOSAL
Costa U SaylorsBrazilBernardo Dominic NEW
Chavez X PerinFranceIoni Bowcher QUALIFIED
Cody C BologniaArgentinaXuxue Feng QUALIFIED
Murillo J OldroydSpainIoni Bowcher NEGOTIATION
Johnson Q WaycottCanadaXuxue Feng RENEWAL
Octavia B WhobreyGermanyXuxue Feng NEGOTIATION
Aditya Z MacleadSpainIoni Bowcher NEGOTIATION
Octavia E NickaAustraliaAnna Fali UNQUALIFIED
Juan T TollnerFranceOnyama Limba QUALIFIED
Leon T FollerItalyStephen Shaw NEGOTIATION
Mujtaba O DoeCanadaBernardo Dominic UNQUALIFIED
Julie W StockhamJapanXuxue Feng RENEWAL
Aika D MacleadAustraliaElwin Sharvill UNQUALIFIED
Octavia R GauchoItalyAmy Elsner NEGOTIATION
Mujtaba Y NickaArgentinaOnyama Limba NEW
Aruna A RutaJapanXuxue Feng QUALIFIED
Rodrigues I ChuiBrazilAnna Fali NEW
Francesco Y KuskoAustraliaAmy Elsner PROPOSAL
Maria Q BowleyFranceOnyama Limba RENEWAL
Cody B GauchoJapanXuxue Feng RENEWAL
Mujtaba V ChuiUnited KingdomAsiya Javayant RENEWAL
Mayumi Y MaletBrazilElwin Sharvill PROPOSAL
Isabel S RoysterJapanElwin Sharvill PROPOSAL
Misaki K PaprockiItalyIvan Magalhaes PROPOSAL
Murillo D GauchoSpainAnna Fali PROPOSAL
Octavia O NestleSpainBernardo Dominic QUALIFIED
Juan Q BologniaCanadaOnyama Limba NEW
Costa V WieserIndiaXuxue Feng QUALIFIED
Jeanfrancois A RoysterJapanAsiya Javayant RENEWAL
Wickens P CaldareraBrazilIvan Magalhaes QUALIFIED
Ivar N RoysterFranceAmy Elsner NEGOTIATION
Ricardo V WhobreyIndiaIoni Bowcher NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Adams U NestleUnited KingdomOnyama Limba RENEWAL
Aika Q WieserArgentinaIoni Bowcher QUALIFIED
Aruna R VenereAustraliaIoni Bowcher QUALIFIED
Aditya W GillianRussiaAsiya Javayant UNQUALIFIED
Nicolas Q FollerBrazilAmy Elsner QUALIFIED
Maisha G DarakjyAustraliaIvan Magalhaes QUALIFIED
Mayumi N CaldareraUnited KingdomIoni Bowcher NEGOTIATION
Stacey D NickaIndiaAsiya Javayant QUALIFIED
Francesco Z MaletGermanyElwin Sharvill UNQUALIFIED
Mujtaba L GarufiRussiaIoni Bowcher NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leja J MacleadSpain2024-03-01Chapman, Ross E Esq NEGOTIATION89Stephen Shaw
1001Sinclair R RimCanada2024-02-29Commercial Press NEW14Anna Fali
1002Octavia Q KuskoCanada2024-02-24Chapman, Ross E Esq NEW99Amy Elsner
1003Claire U VocelkaFrance2024-03-07Chanay, Jeffrey A Esq PROPOSAL97Onyama Limba
1004James F FigeroaAustralia2024-03-09Printing Dimensions NEW47Asiya Javayant
1005Emily W SaylorsAustralia2024-02-28Chapman, Ross E Esq QUALIFIED47Anna Fali
1006Mayumi L CaudyBrazil2024-03-06Chemel, James L Cpa PROPOSAL21Onyama Limba
1007Kaitlin A StensethArgentina2024-02-22Chemel, James L Cpa PROPOSAL97Ioni Bowcher
1008Leon K KolmetzRussia2024-02-18Chapman, Ross E Esq NEW73Anna Fali
1009Stacey X DilliardIndia2024-03-01Chapman, Ross E Esq UNQUALIFIED55Amy Elsner
1010Clifford U FerenczArgentina2024-03-02Dorl, James J Esq UNQUALIFIED46Stephen Shaw
1011Julie Z MaletRussia2024-03-10Feiner Bros RENEWAL45Onyama Limba
1012Jones S StockhamAustralia2024-02-20Chapman, Ross E Esq PROPOSAL31Amy Elsner
1013Aruna A DarakjyCanada2024-03-04Chanay, Jeffrey A Esq QUALIFIED39Elwin Sharvill
1014Francesco F MorascaGermany2024-03-12Commercial Press NEW79Elwin Sharvill
1015Francesco N SlusarskiUnited Kingdom2024-03-14King, Christopher A Esq UNQUALIFIED30Stephen Shaw
1016Munro A RimArgentina2024-02-26Rousseaux, Michael Esq RENEWAL7Elwin Sharvill
1017Isabel L ShinkoSpain2024-03-14Commercial Press QUALIFIED4Xuxue Feng
1018Aditya J FerenczSpain2024-03-10Feltz Printing Service RENEWAL64Onyama Limba
1019Stacey H MorascaCanada2024-03-08Chemel, James L Cpa NEW96Stephen Shaw
1020Misaki Z CaldareraIndia2024-03-16Chemel, James L Cpa RENEWAL74Elwin Sharvill
1021Sinclair B BowleySpain2024-02-27Morlong Associates PROPOSAL59Onyama Limba
1022Mayumi Y RutaItaly2024-02-20Chanay, Jeffrey A Esq NEW66Ioni Bowcher
1023Munro E BologniaItaly2024-03-11Feltz Printing Service NEGOTIATION33Xuxue Feng
1024Claire X PaprockiSpain2024-02-24Rousseaux, Michael Esq UNQUALIFIED66Elwin Sharvill
1025Antonio H InouyeAustralia2024-03-01Commercial Press QUALIFIED93Amy Elsner
1026Antonio W FerenczFrance2024-03-17Chapman, Ross E Esq PROPOSAL25Amy Elsner
1027Ashley C SchemmerCanada2024-03-03Feltz Printing Service UNQUALIFIED75Ioni Bowcher
1028Smith U RimGermany2024-02-25Buckley Miller Wright PROPOSAL21Bernardo Dominic
1029Cody E NestleFrance2024-02-21Rangoni Of Florence QUALIFIED69Onyama Limba
1030Chavez W ChuiBrazil2024-02-20Feltz Printing Service RENEWAL29Anna Fali
1031Smith N FigeroaGermany2024-02-21Truhlar And Truhlar Attys NEGOTIATION49Ioni Bowcher
1032Leja O VocelkaAustralia2024-02-20Chanay, Jeffrey A Esq RENEWAL40Bernardo Dominic
1033Smith S AlbaresBrazil2024-03-05Dorl, James J Esq QUALIFIED53Ivan Magalhaes
1034Ashley I MorascaSpain2024-03-07Chapman, Ross E Esq RENEWAL93Asiya Javayant
1035Jennifer D InouyeJapan2024-02-24Chapman, Ross E Esq QUALIFIED90Elwin Sharvill
1036Aditya V OldroydRussia2024-03-05King, Christopher A Esq NEGOTIATION75Asiya Javayant
1037Emily W SaylorsFrance2024-02-22Commercial Press RENEWAL49Ivan Magalhaes
1038Kadeem R MorascaAustralia2024-02-24Chapman, Ross E Esq PROPOSAL96Amy Elsner
1039Darci S NestleUnited Kingdom2024-03-09Commercial Press UNQUALIFIED3Onyama Limba
1040Jones W StensethCanada2024-03-14Chemel, James L Cpa NEW85Xuxue Feng
1041Antonio L InouyeFrance2024-03-06Truhlar And Truhlar Attys RENEWAL16Anna Fali
1042Kaitlin N BologniaAustralia2024-02-21Commercial Press UNQUALIFIED14Elwin Sharvill
1043Jefferson T OldroydAustralia2024-03-14Rousseaux, Michael Esq QUALIFIED34Onyama Limba
1044Cody Y FerenczBrazil2024-02-20Morlong Associates UNQUALIFIED54Amy Elsner
1045Juan Y MarrierSpain2024-02-20Printing Dimensions QUALIFIED24Asiya Javayant
1046Maisha J WaycottJapan2024-03-08Rousseaux, Michael Esq QUALIFIED38Ivan Magalhaes
1047Darci P RoysterSpain2024-03-03Dorl, James J Esq RENEWAL12Amy Elsner
1048Nicolas H NestleUnited Kingdom2024-03-06Chapman, Ross E Esq RENEWAL12Stephen Shaw
1049Salvatore Y IturbideArgentina2024-02-19King, Christopher A Esq QUALIFIED59Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Misaki B SergiJapanElwin Sharvill PROPOSAL
Ricardo Q SergiBrazilAmy Elsner UNQUALIFIED
Claire V MacleadJapanIvan Magalhaes PROPOSAL
Arvin Q AlbaresJapanElwin Sharvill NEW
Misaki M AlbaresRussiaOnyama Limba RENEWAL
Isabel X DilliardItalyStephen Shaw RENEWAL
Jeanfrancois R DoeCanadaOnyama Limba RENEWAL
Jennifer S PaprockiArgentinaIoni Bowcher RENEWAL
Murillo B WaycottGermanyAnna Fali PROPOSAL
Claire N SlusarskiItalyStephen Shaw NEW
Ivar W FerenczCanadaAsiya Javayant RENEWAL
Leja T DarakjySpainIoni Bowcher NEGOTIATION
Misaki B StockhamFranceStephen Shaw UNQUALIFIED
Munro A PerinBrazilOnyama Limba RENEWAL
Wickens G WaycottArgentinaAmy Elsner NEW
Misaki O RoysterBrazilAsiya Javayant RENEWAL
Juan Q MorascaSpainIvan Magalhaes QUALIFIED
Kadeem N DarakjyGermanyIvan Magalhaes RENEWAL
Aika T FigeroaUnited KingdomAmy Elsner UNQUALIFIED
Clifford W KolmetzItalyAnna Fali RENEWAL
Smith H SlusarskiAustraliaAnna Fali UNQUALIFIED
Kaitlin A MaletFranceIoni Bowcher PROPOSAL
Claire K ButtGermanyStephen Shaw NEW
Antonio S PerinFranceAsiya Javayant NEW
James W GauchoAustraliaBernardo Dominic NEGOTIATION
Izzy R GauchoJapanAmy Elsner NEGOTIATION
Misaki J NickaSpainAnna Fali UNQUALIFIED
Jennifer C KuskoGermanyStephen Shaw QUALIFIED
James Q ButtUnited KingdomOnyama Limba PROPOSAL
Johnson D GauchoFranceIvan Magalhaes QUALIFIED
Wickens Q DarakjyArgentinaAnna Fali RENEWAL
Stacey N MorascaItalyStephen Shaw NEGOTIATION
Julie E StockhamBrazilElwin Sharvill NEW
Julie G FollerIndiaAmy Elsner RENEWAL
Ricardo S IturbideBrazilAnna Fali NEGOTIATION
Leon X WieserRussiaXuxue Feng UNQUALIFIED
Isabel I OstroskyItalyIoni Bowcher QUALIFIED
Maria A InouyeGermanyAnna Fali UNQUALIFIED
Maisha V NestleFranceElwin Sharvill PROPOSAL
Isabel Y OldroydRussiaOnyama Limba PROPOSAL
Morrow H DarakjyJapanElwin Sharvill QUALIFIED
Greenwood H FollerBrazilAmy Elsner NEGOTIATION
Chavez W CampainBrazilAmy Elsner PROPOSAL
Izzy A PaprockiAustraliaBernardo Dominic PROPOSAL
Octavia V InouyeRussiaIoni Bowcher NEW
Rodrigues U AlbaresCanadaStephen Shaw NEGOTIATION
Darci W MaletGermanyAmy Elsner NEGOTIATION
Jones R RutaArgentinaAsiya Javayant NEGOTIATION
Claire G RimItalyStephen Shaw NEW
Munro W SlusarskiArgentinaAnna Fali UNQUALIFIED
Frozen Columns
Name
Chavez W Waycott
Antonio S Iturbide
Aruna M Oldroyd
Mujtaba Q Maclead
Maisha Z Oldroyd
Arvin T Tollner
Kadeem R Doe
Chavez O Kusko
Antonio B Nestle
Jennifer E Schemmer
Salvatore O Dilliard
Murillo T Glick
Leon R Marrier
Jennifer Q Saylors
Darci M Ruta
Isabel L Bowley
Mujtaba G Iturbide
Leja D Sergi
Tony W Caldarera
Rodrigues J Nestle
Jeanfrancois R Briddick
Francesco O Waycott
Nicolas Y Iturbide
Arvin B Kolmetz
Tony Z Gillian
Maisha W Figeroa
Faith G Amigon
Julie P Nicka
Arvin X Stenseth
Cody L Flosi
Salvatore A Bolognia
Jeanfrancois M Schemmer
Salvatore O Gillian
Isabel P Rim
Aditya P Marrier
Ricardo H Doe
Ivar P Butt
Emily Z Schemmer
Sinclair P Shinko
Deepesh Z Ruta
Chavez Z Chui
Clifford R Ruta
Salvatore K Kusko
Rodrigues Y Kolmetz
Alejandro U Bowley
Ashley V Iturbide
Sinclair Y Morasca
Clifford C Poquette
Jeanfrancois O Rulapaugh
Maisha H Waycott
IdCountryDate
1000Brazil2024-03-09
1001France2024-03-01
1002France2024-02-19
1003Germany2024-02-26
1004Italy2024-02-19
1005Brazil2024-02-26
1006Argentina2024-03-09
1007Russia2024-02-29
1008Germany2024-02-18
1009Brazil2024-03-14
1010Brazil2024-03-05
1011Russia2024-02-21
1012Brazil2024-03-09
1013France2024-03-03
1014Argentina2024-02-18
1015France2024-02-21
1016India2024-03-17
1017Japan2024-02-20
1018Australia2024-03-17
1019Canada2024-03-13
1020Germany2024-03-07
1021Canada2024-03-03
1022Russia2024-02-19
1023Canada2024-03-18
1024Argentina2024-02-26
1025Australia2024-03-10
1026Italy2024-03-12
1027Brazil2024-03-10
1028Japan2024-03-04
1029Argentina2024-03-03
1030Canada2024-02-27
1031Canada2024-03-17
1032Argentina2024-03-16
1033Russia2024-02-29
1034Germany2024-03-06
1035Argentina2024-03-02
1036Japan2024-03-15
1037Russia2024-03-05
1038India2024-02-18
1039Russia2024-03-03
1040Canada2024-03-02
1041France2024-03-05
1042Japan2024-03-01
1043Argentina2024-03-17
1044India2024-03-18
1045Canada2024-02-20
1046Germany2024-03-06
1047Germany2024-03-02
1048Australia2024-02-21
1049Spain2024-03-11

On-Demand Data

NameIdCountryDate
David W Inouye1000Russia2024-02-19
Kaitlin Y Stockham1001Spain2024-03-07
Aditya R Rulapaugh1002Italy2024-02-25
Darci T Stenseth1003United Kingdom2024-03-14
Johnson B Butt1004France2024-03-04
Mujtaba R Glick1005Australia2024-02-18
Greenwood U Gillian1006France2024-03-01
Munro F Perin1007Brazil2024-03-01
Claire N Tollner1008Russia2024-02-23
Tony X Garufi1009Russia2024-03-04
Maisha H Nestle1010Argentina2024-03-12
Mayumi K Stenseth1011Russia2024-03-15
Emily T Rim1012India2024-03-10
Francesco D Chui1013Australia2024-03-12
Tony R Sergi1014Germany2024-02-22
Jeanfrancois I Schemmer1015Japan2024-02-23
Jones R Ferencz1016United Kingdom2024-03-05
Wickens X Whobrey1017India2024-02-22
Isabel M Stenseth1018Spain2024-03-10
Nicolas I Oldroyd1019France2024-03-06
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Murillo I RimArgentinaIoni Bowcher RENEWAL
Emily Q ShinkoSpainIoni Bowcher QUALIFIED
Greenwood U ChuiArgentinaOnyama Limba QUALIFIED
Leon N GillianItalyIvan Magalhaes NEW
Mayumi J WieserBrazilStephen Shaw QUALIFIED
Cody L WhobreySpainIvan Magalhaes UNQUALIFIED
Adams H GlickJapanElwin Sharvill RENEWAL
Emily X SlusarskiBrazilOnyama Limba QUALIFIED
Johnson M NickaFranceOnyama Limba UNQUALIFIED
Francesco P WhobreyArgentinaIoni Bowcher NEW
Faith R SergiIndiaAnna Fali PROPOSAL
Francesco H SergiAustraliaOnyama Limba NEW
Leja S FerenczBrazilXuxue Feng NEW
Emily S PerinAustraliaOnyama Limba NEGOTIATION
Ricardo D NestleCanadaIvan Magalhaes RENEWAL
Alejandro I GarufiCanadaAmy Elsner UNQUALIFIED
Sinclair T DarakjyJapanIvan Magalhaes NEGOTIATION
Smith M ShinkoJapanStephen Shaw PROPOSAL
Leon E CaudySpainXuxue Feng RENEWAL
Izzy V RulapaughArgentinaAmy Elsner UNQUALIFIED
Claire W CaudySpainXuxue Feng RENEWAL
Ashley N VocelkaUnited KingdomIvan Magalhaes NEW
Deepesh C IturbideAustraliaOnyama Limba RENEWAL
Jeanfrancois B IturbideRussiaAnna Fali NEGOTIATION
Murillo A PoquetteArgentinaOnyama Limba RENEWAL
Tony D CaldareraCanadaAmy Elsner PROPOSAL
David C IturbideRussiaStephen Shaw QUALIFIED
Stacey A NestleAustraliaAnna Fali NEGOTIATION
David Z IturbideRussiaBernardo Dominic NEGOTIATION
Smith V ButtArgentinaOnyama Limba PROPOSAL
Maisha R BriddickJapanIvan Magalhaes RENEWAL
Isabel Q BriddickRussiaAsiya Javayant NEGOTIATION
Faith B RulapaughCanadaAsiya Javayant RENEWAL
Darci Q PoquetteRussiaOnyama Limba QUALIFIED
Antonio U IturbideItalyOnyama Limba NEW
Leja M StockhamFranceAsiya Javayant NEGOTIATION
Ricardo P SlusarskiFranceAmy Elsner PROPOSAL
Leon T PerinCanadaStephen Shaw NEW
Mayumi O MarrierArgentinaIoni Bowcher QUALIFIED
Leja V SchemmerSpainAmy Elsner NEW

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