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
Morrow M KuskoGermanyAmy Elsner NEW
Costa S SlusarskiFranceElwin Sharvill RENEWAL
Alejandro U SlusarskiRussiaAsiya Javayant RENEWAL
Isabel Q MacleadItalyIvan Magalhaes PROPOSAL
Chavez O DoeItalyAmy Elsner QUALIFIED
Juan B CampainIndiaOnyama Limba NEW
James N MaletGermanyAnna Fali NEW
Salvatore C StensethFranceXuxue Feng UNQUALIFIED
Tony E PoquetteUnited KingdomIoni Bowcher PROPOSAL
Sinclair S MacleadBrazilOnyama Limba NEW
David B FlosiItalyElwin Sharvill QUALIFIED
Izzy P GlickUnited KingdomIvan Magalhaes NEGOTIATION
Jennifer K ShinkoBrazilAsiya Javayant PROPOSAL
Morrow P WhobreyFranceAsiya Javayant UNQUALIFIED
Aruna Q MaletAustraliaOnyama Limba RENEWAL
Sinclair G InouyeRussiaBernardo Dominic QUALIFIED
Murillo W SergiIndiaAmy Elsner RENEWAL
Johnson X RoysterGermanyStephen Shaw NEGOTIATION
Stacey U PaprockiItalyBernardo Dominic RENEWAL
Jeanfrancois P ButtIndiaAmy Elsner QUALIFIED
Aditya W ButtUnited KingdomStephen Shaw NEW
Julie S StensethArgentinaXuxue Feng QUALIFIED
Leon Z FigeroaItalyAnna Fali QUALIFIED
Adams T FerenczSpainXuxue Feng UNQUALIFIED
Salvatore B NestleCanadaAmy Elsner PROPOSAL
Johnson J BologniaUnited KingdomElwin Sharvill UNQUALIFIED
Jefferson R MaletBrazilXuxue Feng NEGOTIATION
Smith R NickaAustraliaIvan Magalhaes RENEWAL
Izzy C CampainGermanyIvan Magalhaes NEW
Arvin E WieserCanadaAmy Elsner NEW
Jones S KolmetzBrazilElwin Sharvill RENEWAL
Morrow F PaprockiUnited KingdomStephen Shaw NEGOTIATION
Murillo T RimCanadaOnyama Limba PROPOSAL
Aika X PaprockiBrazilStephen Shaw NEGOTIATION
James D AmigonFranceElwin Sharvill QUALIFIED
Mayumi A ShinkoJapanAsiya Javayant NEW
Greenwood X PoquetteBrazilBernardo Dominic RENEWAL
Morrow I WaycottCanadaAnna Fali UNQUALIFIED
Claire M SlusarskiBrazilAsiya Javayant PROPOSAL
Aika M MorascaUnited KingdomBernardo Dominic UNQUALIFIED
Maria C FollerAustraliaXuxue Feng PROPOSAL
Sinclair S GlickJapanAnna Fali NEGOTIATION
Francesco J MacleadSpainIoni Bowcher NEW
Leon R VenereBrazilBernardo Dominic PROPOSAL
Izzy G NestleFranceIoni Bowcher PROPOSAL
Claire E ButtJapanXuxue Feng PROPOSAL
Alejandro A SlusarskiItalyOnyama Limba NEW
David N WhobreyUnited KingdomElwin Sharvill UNQUALIFIED
Aditya O StockhamFranceBernardo Dominic RENEWAL
Ivar H NestleFranceOnyama Limba PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Cody L PoquetteGermanyIvan Magalhaes QUALIFIED
Izzy H SergiCanadaAnna Fali QUALIFIED
Izzy M FollerGermanyOnyama Limba UNQUALIFIED
Tony T BologniaRussiaIvan Magalhaes NEGOTIATION
Faith I AlbaresSpainAmy Elsner UNQUALIFIED
Jefferson L VenereIndiaIvan Magalhaes PROPOSAL
Maisha E RimRussiaIoni Bowcher NEGOTIATION
Antonio P MarrierGermanyIvan Magalhaes UNQUALIFIED
Maisha I StockhamBrazilBernardo Dominic NEW
Jeanfrancois R VocelkaSpainBernardo Dominic QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Alejandro T SchemmerGermany2024-04-16Morlong Associates NEGOTIATION16Onyama Limba
1001Ivar U FerenczArgentina2024-04-22Rangoni Of Florence QUALIFIED32Anna Fali
1002Francesco Y AmigonBrazil2024-04-27Printing Dimensions NEW95Anna Fali
1003Sinclair K DilliardAustralia2024-04-18Rousseaux, Michael Esq PROPOSAL35Elwin Sharvill
1004Francesco E DilliardUnited Kingdom2024-04-13King, Christopher A Esq RENEWAL65Bernardo Dominic
1005Aditya U FlosiGermany2024-04-24Chapman, Ross E Esq PROPOSAL16Bernardo Dominic
1006Greenwood W IturbideFrance2024-04-28Chemel, James L Cpa QUALIFIED76Ivan Magalhaes
1007Claire S AlbaresAustralia2024-04-30Chanay, Jeffrey A Esq NEW78Ivan Magalhaes
1008Smith U GarufiFrance2024-04-07Chapman, Ross E Esq UNQUALIFIED34Bernardo Dominic
1009Juan D FigeroaFrance2024-04-12Chanay, Jeffrey A Esq PROPOSAL51Anna Fali
1010Arvin Q KuskoUnited Kingdom2024-04-04Rousseaux, Michael Esq PROPOSAL67Xuxue Feng
1011Aditya M ButtJapan2024-04-21King, Christopher A Esq NEW93Xuxue Feng
1012Costa D WhobreyItaly2024-04-30Commercial Press RENEWAL41Onyama Limba
1013Murillo N BriddickItaly2024-04-04Feiner Bros QUALIFIED8Ioni Bowcher
1014Claire R OldroydCanada2024-04-17Rangoni Of Florence NEGOTIATION73Asiya Javayant
1015Nicolas E VocelkaSpain2024-04-16King, Christopher A Esq UNQUALIFIED78Anna Fali
1016Leon F BriddickJapan2024-04-17Chemel, James L Cpa NEGOTIATION18Ioni Bowcher
1017James A AmigonCanada2024-04-05Rangoni Of Florence PROPOSAL83Ivan Magalhaes
1018Arvin J RoysterItaly2024-04-13Benton, John B Jr NEW51Xuxue Feng
1019Aruna J FollerCanada2024-04-01Chemel, James L Cpa QUALIFIED67Elwin Sharvill
1020Arvin U DilliardGermany2024-04-18Dorl, James J Esq RENEWAL62Xuxue Feng
1021Jefferson Q GlickItaly2024-04-15Chanay, Jeffrey A Esq PROPOSAL2Bernardo Dominic
1022Julie J SchemmerArgentina2024-04-20Rangoni Of Florence NEW38Ivan Magalhaes
1023Salvatore P StockhamIndia2024-04-15Chanay, Jeffrey A Esq UNQUALIFIED83Ioni Bowcher
1024James M FerenczIndia2024-04-23Morlong Associates NEW43Onyama Limba
1025Leon M RimArgentina2024-04-24Truhlar And Truhlar Attys NEGOTIATION48Amy Elsner
1026Rodrigues L RoysterRussia2024-04-13Truhlar And Truhlar Attys UNQUALIFIED22Amy Elsner
1027Cody M GarufiSpain2024-04-20King, Christopher A Esq QUALIFIED66Ivan Magalhaes
1028Smith I DoeUnited Kingdom2024-04-07Feltz Printing Service NEW72Stephen Shaw
1029Rodrigues D PoquetteSpain2024-04-28King, Christopher A Esq QUALIFIED31Onyama Limba
1030Wickens P RutaCanada2024-04-03Chemel, James L Cpa NEW14Ivan Magalhaes
1031Francesco Q ChuiIndia2024-04-26Chapman, Ross E Esq UNQUALIFIED16Ioni Bowcher
1032Claire X DoeItaly2024-04-13Commercial Press NEGOTIATION80Anna Fali
1033Clifford Z MorascaBrazil2024-04-20Rousseaux, Michael Esq PROPOSAL69Ioni Bowcher
1034Chavez W PoquetteSpain2024-04-09Benton, John B Jr RENEWAL72Amy Elsner
1035Alejandro H BologniaArgentina2024-04-25Chanay, Jeffrey A Esq NEW83Asiya Javayant
1036Ashley R KolmetzArgentina2024-04-03Chapman, Ross E Esq PROPOSAL8Amy Elsner
1037Costa P VocelkaFrance2024-04-14Chanay, Jeffrey A Esq PROPOSAL54Ivan Magalhaes
1038Misaki O GarufiCanada2024-04-12Rousseaux, Michael Esq QUALIFIED12Stephen Shaw
1039Alejandro L PaprockiUnited Kingdom2024-04-29Rousseaux, Michael Esq UNQUALIFIED83Xuxue Feng
1040Smith X CaldareraRussia2024-04-15Buckley Miller Wright NEW27Ivan Magalhaes
1041Mayumi Y GlickIndia2024-04-25Truhlar And Truhlar Attys RENEWAL48Anna Fali
1042Leon D GillianRussia2024-04-28King, Christopher A Esq NEW3Ivan Magalhaes
1043Jennifer X SchemmerAustralia2024-04-09Truhlar And Truhlar Attys NEW20Ioni Bowcher
1044Juan W DilliardUnited Kingdom2024-04-27Chapman, Ross E Esq NEGOTIATION88Amy Elsner
1045Morrow M GarufiSpain2024-04-08Feltz Printing Service UNQUALIFIED37Amy Elsner
1046Morrow D OldroydUnited Kingdom2024-04-01Commercial Press PROPOSAL74Bernardo Dominic
1047Aditya W KolmetzSpain2024-04-07Morlong Associates NEW11Amy Elsner
1048Tony K DilliardIndia2024-04-12Chanay, Jeffrey A Esq RENEWAL85Stephen Shaw
1049Darci W ButtRussia2024-04-29Rangoni Of Florence PROPOSAL60Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Misaki W GauchoCanadaIoni Bowcher QUALIFIED
Chavez Y SlusarskiJapanElwin Sharvill NEGOTIATION
Ivar Q NickaJapanStephen Shaw NEW
Jones E FlosiIndiaIvan Magalhaes RENEWAL
Sinclair F WhobreyRussiaIvan Magalhaes RENEWAL
Leja B StockhamUnited KingdomAsiya Javayant NEGOTIATION
Juan M SchemmerBrazilXuxue Feng RENEWAL
Kaitlin A BriddickGermanyAsiya Javayant RENEWAL
Salvatore H MaletAustraliaOnyama Limba PROPOSAL
Izzy Y WieserArgentinaAsiya Javayant NEGOTIATION
Adams G KuskoFranceBernardo Dominic NEW
Ivar X MorascaSpainAmy Elsner NEGOTIATION
Francesco G VenereJapanOnyama Limba UNQUALIFIED
Tony V CaudyBrazilAsiya Javayant UNQUALIFIED
Jones H SlusarskiAustraliaElwin Sharvill NEW
Murillo E OldroydArgentinaAnna Fali QUALIFIED
Francesco C MacleadJapanBernardo Dominic NEGOTIATION
Mujtaba P CaudyArgentinaStephen Shaw UNQUALIFIED
Jones H GlickUnited KingdomIvan Magalhaes QUALIFIED
Munro M WieserArgentinaIoni Bowcher NEGOTIATION
Alejandro C SlusarskiItalyAnna Fali NEGOTIATION
Arvin O DarakjyIndiaAnna Fali NEGOTIATION
Nicolas M SergiBrazilAmy Elsner QUALIFIED
Juan L VocelkaSpainAnna Fali NEGOTIATION
Chavez W RutaCanadaStephen Shaw PROPOSAL
Kadeem I FollerUnited KingdomElwin Sharvill RENEWAL
Emily K SchemmerJapanStephen Shaw QUALIFIED
Francesco M StockhamBrazilStephen Shaw QUALIFIED
Wickens X SergiGermanyAsiya Javayant QUALIFIED
Alejandro K AmigonCanadaAnna Fali NEW
Sinclair I OldroydRussiaElwin Sharvill RENEWAL
Ricardo X RutaBrazilOnyama Limba QUALIFIED
David P SaylorsGermanyStephen Shaw PROPOSAL
Mayumi O InouyeItalyStephen Shaw QUALIFIED
Misaki X CampainItalyBernardo Dominic QUALIFIED
Cody V OstroskyArgentinaIvan Magalhaes NEW
Ivar P NestleIndiaIoni Bowcher NEW
Rodrigues Q WhobreyBrazilElwin Sharvill NEW
Antonio F CaldareraFranceAmy Elsner QUALIFIED
Aruna F MaletGermanyIoni Bowcher NEW
Costa O PerinRussiaAnna Fali NEGOTIATION
Jefferson A MarrierCanadaOnyama Limba UNQUALIFIED
Sinclair B SlusarskiIndiaStephen Shaw PROPOSAL
Clifford N GillianAustraliaElwin Sharvill NEGOTIATION
Arvin J PerinJapanAsiya Javayant QUALIFIED
Silvio Y RutaFranceIvan Magalhaes NEW
Darci O WieserBrazilXuxue Feng RENEWAL
Jeanfrancois R ShinkoAustraliaIoni Bowcher UNQUALIFIED
Leja F AlbaresGermanyAsiya Javayant PROPOSAL
Emily Q NickaSpainStephen Shaw NEW
Frozen Columns
Name
Aditya P Nestle
Tony Y Morasca
Sinclair R Venere
Adams R Rulapaugh
Aika P Nestle
Greenwood R Gillian
Aika B Perin
Aika F Campain
Clifford G Kusko
Izzy W Amigon
Leja F Amigon
Maria Q Bolognia
Ivar C Bowley
Emily D Albares
Octavia S Garufi
Wickens B Wieser
David P Dilliard
Ricardo U Flosi
David W Briddick
Clifford N Royster
Nicolas P Iturbide
Cody F Butt
Munro N Nicka
Nicolas T Butt
Chavez L Slusarski
David Q Darakjy
Clifford P Schemmer
Chavez Q Dilliard
Clifford G Rulapaugh
Cody O Tollner
David W Tollner
Claire A Bolognia
Arvin X Nicka
Isabel V Inouye
Darci E Gillian
Alejandro N Dilliard
Cody W Chui
Nicolas Z Nestle
Deepesh U Schemmer
Deepesh C Inouye
Aruna O Iturbide
Kadeem L Ferencz
Mujtaba U Figeroa
Juan W Stockham
Mayumi G Morasca
Emily H Chui
Johnson J Rulapaugh
Octavia O Schemmer
Wickens G Stockham
Izzy K Campain
IdCountryDate
1000Canada2024-04-03
1001Germany2024-04-02
1002United Kingdom2024-04-06
1003Australia2024-04-08
1004Spain2024-04-10
1005India2024-04-11
1006United Kingdom2024-04-24
1007Japan2024-04-12
1008Australia2024-04-30
1009Spain2024-04-14
1010Canada2024-04-28
1011Spain2024-04-20
1012France2024-04-26
1013United Kingdom2024-04-10
1014India2024-04-01
1015Spain2024-04-29
1016Japan2024-04-30
1017Germany2024-04-24
1018France2024-04-20
1019Canada2024-04-01
1020Japan2024-04-24
1021Brazil2024-04-23
1022Russia2024-04-10
1023France2024-04-10
1024Germany2024-04-24
1025Australia2024-04-16
1026Spain2024-04-28
1027Japan2024-04-13
1028France2024-04-27
1029Japan2024-04-08
1030India2024-04-14
1031Italy2024-04-13
1032Brazil2024-04-14
1033United Kingdom2024-04-26
1034United Kingdom2024-04-01
1035Japan2024-04-03
1036Argentina2024-04-10
1037France2024-04-05
1038Italy2024-04-14
1039Japan2024-04-22
1040Germany2024-04-22
1041France2024-04-28
1042Argentina2024-04-14
1043United Kingdom2024-04-24
1044United Kingdom2024-04-13
1045Canada2024-04-02
1046Italy2024-04-04
1047Japan2024-04-01
1048Argentina2024-04-22
1049Australia2024-04-02

On-Demand Data

NameIdCountryDate
Cody A Dilliard1000United Kingdom2024-04-13
Stacey B Rulapaugh1001United Kingdom2024-04-07
Darci X Figeroa1002France2024-04-06
Wickens H Butt1003Spain2024-04-06
Misaki P Glick1004Argentina2024-04-01
Ricardo I Albares1005Italy2024-04-23
Julie V Gaucho1006Argentina2024-04-14
Greenwood I Darakjy1007Russia2024-04-29
Wickens X Slusarski1008Italy2024-04-17
Jones P Slusarski1009Spain2024-04-24
Kadeem Y Wieser1010France2024-04-22
Johnson Q Caldarera1011Japan2024-04-19
Aika B Nicka1012Japan2024-04-29
Wickens K Iturbide1013Canada2024-04-01
Maria O Perin1014France2024-04-04
Clifford U Whobrey1015Japan2024-04-19
Morrow R Stockham1016India2024-04-19
Costa A Inouye1017Argentina2024-04-13
Wickens L Garufi1018Italy2024-04-29
Antonio S Glick1019India2024-04-01
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Greenwood M RimRussiaBernardo Dominic RENEWAL
Munro E FigeroaItalyAsiya Javayant UNQUALIFIED
Maisha Y InouyeAustraliaIvan Magalhaes NEGOTIATION
Rodrigues P CaudyUnited KingdomAnna Fali NEGOTIATION
Kadeem B ButtFranceAnna Fali UNQUALIFIED
Mayumi A MacleadIndiaIoni Bowcher QUALIFIED
Leja D ShinkoItalyStephen Shaw UNQUALIFIED
Tony U WieserAustraliaElwin Sharvill QUALIFIED
Tony N MaletUnited KingdomXuxue Feng RENEWAL
Juan Z PerinCanadaAsiya Javayant NEW
Costa T BowleyJapanStephen Shaw QUALIFIED
Jones N StensethItalyXuxue Feng NEGOTIATION
Leon K InouyeUnited KingdomStephen Shaw RENEWAL
Jefferson K CampainCanadaAnna Fali PROPOSAL
Mayumi H IturbideBrazilAsiya Javayant QUALIFIED
Octavia J StockhamJapanAmy Elsner NEW
Leja C ButtAustraliaAnna Fali NEGOTIATION
Wickens G SlusarskiBrazilOnyama Limba NEGOTIATION
Arvin X VenereBrazilAnna Fali QUALIFIED
Adams C GauchoJapanElwin Sharvill PROPOSAL
Smith M VocelkaJapanAsiya Javayant NEGOTIATION
Arvin I IturbideItalyAsiya Javayant QUALIFIED
Costa H MaletUnited KingdomElwin Sharvill UNQUALIFIED
Costa W PerinUnited KingdomStephen Shaw NEW
Smith P RoysterRussiaElwin Sharvill NEW
Stacey K RutaCanadaAsiya Javayant NEGOTIATION
Adams R DoeCanadaAmy Elsner UNQUALIFIED
Aruna Z DilliardFranceElwin Sharvill NEGOTIATION
Salvatore E FerenczIndiaAnna Fali UNQUALIFIED
Munro L BriddickUnited KingdomElwin Sharvill QUALIFIED
Rodrigues V OstroskyItalyStephen Shaw NEGOTIATION
Isabel D MarrierFranceAsiya Javayant RENEWAL
Jefferson K RimItalyIoni Bowcher RENEWAL
David P CampainBrazilIoni Bowcher PROPOSAL
Faith Y BowleyCanadaAsiya Javayant UNQUALIFIED
Aruna W AlbaresJapanStephen Shaw UNQUALIFIED
Jones A DilliardRussiaIvan Magalhaes QUALIFIED
Maisha N NickaArgentinaIoni Bowcher QUALIFIED
Wickens W WieserFranceElwin Sharvill QUALIFIED
Cody F MarrierItalyElwin Sharvill PROPOSAL

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