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 G StockhamAustraliaIoni Bowcher QUALIFIED
Izzy H RoysterFranceStephen Shaw NEGOTIATION
Costa I MaletCanadaElwin Sharvill NEGOTIATION
Morrow L GlickSpainXuxue Feng PROPOSAL
Maria Q MaletUnited KingdomIoni Bowcher NEGOTIATION
Wickens H StockhamJapanElwin Sharvill RENEWAL
Kaitlin M PoquetteBrazilIoni Bowcher NEGOTIATION
Maria G KolmetzArgentinaBernardo Dominic NEW
Costa B AlbaresArgentinaBernardo Dominic NEW
Salvatore Y NickaSpainXuxue Feng PROPOSAL
Greenwood J GauchoGermanyStephen Shaw QUALIFIED
Jones T FollerArgentinaAnna Fali RENEWAL
Smith S SlusarskiItalyXuxue Feng NEGOTIATION
James Z WaycottItalyStephen Shaw NEW
Mayumi J NickaGermanyIvan Magalhaes PROPOSAL
Mayumi T DoeJapanIoni Bowcher UNQUALIFIED
Chavez P ButtFranceAsiya Javayant NEGOTIATION
David F SaylorsRussiaIoni Bowcher PROPOSAL
Chavez U SlusarskiArgentinaIoni Bowcher QUALIFIED
Aika C GillianBrazilIoni Bowcher NEGOTIATION
Claire I PaprockiJapanAnna Fali QUALIFIED
Izzy H SaylorsAustraliaOnyama Limba PROPOSAL
Jennifer L TollnerItalyOnyama Limba PROPOSAL
Maisha J RutaArgentinaOnyama Limba RENEWAL
Jones M KuskoGermanyAsiya Javayant QUALIFIED
Aruna L OstroskyJapanIoni Bowcher RENEWAL
Misaki J WaycottSpainAmy Elsner NEW
Aditya S BologniaUnited KingdomXuxue Feng NEW
Cody F MorascaCanadaAsiya Javayant RENEWAL
Mujtaba W IturbideAustraliaIoni Bowcher QUALIFIED
Greenwood I StockhamItalyAsiya Javayant UNQUALIFIED
Isabel O DarakjyBrazilStephen Shaw RENEWAL
Clifford Y CaudyIndiaStephen Shaw NEW
Maria V DarakjyAustraliaXuxue Feng UNQUALIFIED
Chavez O PerinSpainIoni Bowcher PROPOSAL
Arvin K StensethJapanIoni Bowcher NEW
Jeanfrancois L DilliardItalyIoni Bowcher NEGOTIATION
Jeanfrancois C PerinBrazilIoni Bowcher UNQUALIFIED
Wickens X RimGermanyBernardo Dominic NEW
Aika G ChuiArgentinaAsiya Javayant NEW
Isabel S VocelkaAustraliaIvan Magalhaes UNQUALIFIED
Johnson B OstroskyRussiaXuxue Feng RENEWAL
Kaitlin C ChuiFranceAsiya Javayant PROPOSAL
David H AmigonUnited KingdomBernardo Dominic UNQUALIFIED
Emily Q SergiItalyIoni Bowcher RENEWAL
Nicolas G FollerAustraliaOnyama Limba RENEWAL
Julie R BologniaFranceBernardo Dominic NEW
Leon H StockhamFranceStephen Shaw UNQUALIFIED
Silvio C DarakjyRussiaBernardo Dominic QUALIFIED
Johnson X WieserGermanyAnna Fali QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Clifford C GauchoBrazilBernardo Dominic NEGOTIATION
Aditya O PaprockiFranceIoni Bowcher RENEWAL
Maria C CaudyBrazilElwin Sharvill NEW
Aruna E DilliardFranceAnna Fali PROPOSAL
Wickens Z CampainItalyAmy Elsner QUALIFIED
Leon D StockhamFranceOnyama Limba UNQUALIFIED
Murillo F IturbideBrazilXuxue Feng NEGOTIATION
Chavez N MaletGermanyXuxue Feng PROPOSAL
Isabel X SergiAustraliaIoni Bowcher UNQUALIFIED
Chavez O GlickCanadaStephen Shaw PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Maria Y ButtSpain2024-04-11Commercial Press PROPOSAL19Asiya Javayant
1001Darci R PaprockiAustralia2024-04-08Morlong Associates NEGOTIATION87Xuxue Feng
1002Jeanfrancois C KolmetzCanada2024-03-19Morlong Associates NEW92Elwin Sharvill
1003Kadeem B SaylorsGermany2024-03-21Rangoni Of Florence UNQUALIFIED53Ioni Bowcher
1004Tony U DarakjyCanada2024-03-26King, Christopher A Esq UNQUALIFIED78Amy Elsner
1005Silvio P NestleJapan2024-04-15Truhlar And Truhlar Attys NEGOTIATION70Onyama Limba
1006Costa X RimArgentina2024-04-02Chapman, Ross E Esq NEGOTIATION7Ivan Magalhaes
1007Jones C SergiFrance2024-03-21Truhlar And Truhlar Attys QUALIFIED4Ivan Magalhaes
1008Rodrigues T RoysterIndia2024-03-31Chemel, James L Cpa NEW54Anna Fali
1009Clifford V FollerRussia2024-04-03Commercial Press PROPOSAL7Onyama Limba
1010Morrow L PaprockiItaly2024-03-28Morlong Associates UNQUALIFIED40Stephen Shaw
1011Isabel N WaycottItaly2024-04-02Rousseaux, Michael Esq UNQUALIFIED12Ivan Magalhaes
1012Alejandro K KolmetzJapan2024-04-10Feltz Printing Service RENEWAL96Ivan Magalhaes
1013Leja J StockhamFrance2024-03-27Truhlar And Truhlar Attys UNQUALIFIED88Anna Fali
1014Emily O MaletJapan2024-03-20Dorl, James J Esq UNQUALIFIED39Elwin Sharvill
1015Izzy P RimIndia2024-03-23Morlong Associates QUALIFIED68Bernardo Dominic
1016Silvio P MaletUnited Kingdom2024-03-22Printing Dimensions RENEWAL79Elwin Sharvill
1017Octavia R RutaItaly2024-04-08Printing Dimensions QUALIFIED25Onyama Limba
1018Misaki B ShinkoItaly2024-04-11Benton, John B Jr PROPOSAL59Stephen Shaw
1019Leja N MarrierIndia2024-04-07Printing Dimensions NEGOTIATION21Anna Fali
1020Ashley W PerinGermany2024-04-04Truhlar And Truhlar Attys PROPOSAL5Xuxue Feng
1021Jennifer N DoeArgentina2024-04-12Chapman, Ross E Esq PROPOSAL88Xuxue Feng
1022Maria H FlosiJapan2024-04-03King, Christopher A Esq NEW73Anna Fali
1023Emily R GlickFrance2024-03-26Morlong Associates QUALIFIED46Onyama Limba
1024Clifford R GillianItaly2024-03-24Feltz Printing Service NEW87Xuxue Feng
1025Morrow M BriddickJapan2024-04-09King, Christopher A Esq NEGOTIATION18Bernardo Dominic
1026Ricardo C GauchoIndia2024-03-29Feltz Printing Service UNQUALIFIED11Ioni Bowcher
1027Faith N PerinIndia2024-04-14Truhlar And Truhlar Attys NEGOTIATION41Amy Elsner
1028Greenwood Y FollerIndia2024-04-04Feiner Bros QUALIFIED38Bernardo Dominic
1029Smith Z CampainUnited Kingdom2024-04-13Printing Dimensions NEGOTIATION23Ioni Bowcher
1030Maria F StensethBrazil2024-03-18Commercial Press RENEWAL26Onyama Limba
1031Darci N FerenczIndia2024-03-25Chanay, Jeffrey A Esq NEW69Asiya Javayant
1032Mayumi B AmigonArgentina2024-03-22Morlong Associates NEGOTIATION87Ioni Bowcher
1033Rodrigues O FigeroaFrance2024-04-12Chanay, Jeffrey A Esq UNQUALIFIED70Ivan Magalhaes
1034Deepesh M BriddickSpain2024-04-02Truhlar And Truhlar Attys QUALIFIED79Ivan Magalhaes
1035Chavez F RimIndia2024-04-05Chapman, Ross E Esq QUALIFIED12Onyama Limba
1036Claire V ChuiIndia2024-04-12King, Christopher A Esq PROPOSAL59Amy Elsner
1037Kaitlin M PerinArgentina2024-04-06Printing Dimensions NEW12Anna Fali
1038Leja B FerenczItaly2024-03-27Feiner Bros QUALIFIED49Amy Elsner
1039Claire R ChuiItaly2024-04-11Buckley Miller Wright NEGOTIATION99Stephen Shaw
1040Emily Q ShinkoAustralia2024-03-31Chapman, Ross E Esq NEGOTIATION36Xuxue Feng
1041Kadeem D MarrierBrazil2024-04-02Rangoni Of Florence PROPOSAL6Asiya Javayant
1042Aditya L AmigonItaly2024-04-04Buckley Miller Wright NEW63Onyama Limba
1043Juan Q FlosiBrazil2024-03-20Benton, John B Jr RENEWAL25Asiya Javayant
1044Isabel T SlusarskiUnited Kingdom2024-03-17Dorl, James J Esq NEGOTIATION89Ivan Magalhaes
1045Leja K WaycottBrazil2024-03-22Truhlar And Truhlar Attys NEGOTIATION2Asiya Javayant
1046Clifford D RulapaughBrazil2024-04-12Benton, John B Jr PROPOSAL93Ivan Magalhaes
1047Murillo B MacleadSpain2024-03-26Truhlar And Truhlar Attys UNQUALIFIED6Asiya Javayant
1048Murillo G OstroskyItaly2024-04-01Printing Dimensions PROPOSAL71Onyama Limba
1049Greenwood Q AmigonAustralia2024-03-20Feltz Printing Service PROPOSAL98Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Cody V VenereIndiaElwin Sharvill PROPOSAL
Adams S SchemmerJapanIvan Magalhaes PROPOSAL
Costa B CaldareraCanadaAnna Fali PROPOSAL
Chavez U GillianJapanAsiya Javayant NEW
David L OstroskyBrazilAnna Fali NEGOTIATION
Julie Z CaldareraAustraliaBernardo Dominic QUALIFIED
Rodrigues J SlusarskiFranceIvan Magalhaes QUALIFIED
Adams S FerenczFranceXuxue Feng PROPOSAL
Aruna J GarufiIndiaIoni Bowcher NEW
Faith Z VocelkaUnited KingdomBernardo Dominic RENEWAL
Leja X GarufiFranceIvan Magalhaes PROPOSAL
Rodrigues L FollerUnited KingdomBernardo Dominic PROPOSAL
Adams Y IturbideIndiaAsiya Javayant NEGOTIATION
Greenwood E CampainBrazilIoni Bowcher UNQUALIFIED
Ricardo C BowleySpainIvan Magalhaes NEW
Deepesh D DarakjyArgentinaIvan Magalhaes PROPOSAL
Greenwood D CaudyArgentinaAnna Fali UNQUALIFIED
James Q GarufiBrazilAmy Elsner RENEWAL
Aika Z TollnerIndiaBernardo Dominic PROPOSAL
Costa K ChuiRussiaAnna Fali UNQUALIFIED
Leja P PoquetteCanadaStephen Shaw PROPOSAL
Emily D RoysterFranceIvan Magalhaes UNQUALIFIED
Juan R MacleadFranceAnna Fali UNQUALIFIED
Ashley E KuskoGermanyElwin Sharvill PROPOSAL
Faith D StockhamArgentinaAsiya Javayant PROPOSAL
Wickens F MarrierBrazilIoni Bowcher UNQUALIFIED
Chavez Z StensethCanadaElwin Sharvill NEW
Leon B BowleyArgentinaOnyama Limba UNQUALIFIED
Clifford M MaletRussiaAsiya Javayant NEW
Adams Z NestleUnited KingdomAsiya Javayant PROPOSAL
Ivar I GlickAustraliaAnna Fali PROPOSAL
Leon S TollnerJapanIoni Bowcher NEW
Antonio I BologniaRussiaElwin Sharvill RENEWAL
Julie W MaletCanadaAmy Elsner PROPOSAL
Maisha F OldroydArgentinaBernardo Dominic QUALIFIED
Jennifer D RulapaughUnited KingdomStephen Shaw UNQUALIFIED
Misaki A WhobreyGermanyIoni Bowcher RENEWAL
Sinclair M GauchoItalyIvan Magalhaes RENEWAL
Mayumi V BologniaGermanyAmy Elsner PROPOSAL
Julie Z SaylorsGermanyIvan Magalhaes NEGOTIATION
Salvatore J CampainUnited KingdomStephen Shaw NEW
Ashley G FlosiItalyIoni Bowcher NEGOTIATION
Izzy K OstroskyCanadaElwin Sharvill NEGOTIATION
Chavez P MorascaSpainElwin Sharvill NEGOTIATION
Maria G WaycottCanadaAsiya Javayant NEGOTIATION
Smith R BologniaJapanStephen Shaw NEW
Salvatore N PoquetteCanadaAsiya Javayant QUALIFIED
Emily J GauchoUnited KingdomXuxue Feng NEW
Faith Y KuskoArgentinaOnyama Limba QUALIFIED
David V CaldareraItalyAmy Elsner RENEWAL
Frozen Columns
Name
Jones F Schemmer
Silvio S Flosi
Clifford Q Waycott
Kaitlin D Gaucho
Ricardo K Schemmer
Darci Y Flosi
Darci P Glick
Johnson A Tollner
Ricardo U Amigon
Costa H Wieser
Isabel C Gillian
Costa P Caudy
Antonio W Caudy
Chavez L Tollner
Antonio S Inouye
Jones U Ferencz
Antonio U Paprocki
Jones K Whobrey
Octavia P Nestle
Ashley C Ostrosky
Aika E Iturbide
Salvatore M Vocelka
Chavez C Saylors
Antonio Z Poquette
Tony T Venere
Kaitlin U Wieser
Costa L Darakjy
Nicolas J Paprocki
Misaki L Maclead
Kaitlin H Bolognia
Ivar B Campain
Izzy R Iturbide
Juan V Malet
Leon G Oldroyd
Jones G Iturbide
Morrow F Glick
Costa Q Rim
Leja G Oldroyd
Mayumi Z Waycott
Silvio K Poquette
James A Stenseth
Ashley G Gillian
Darci W Dilliard
Salvatore G Poquette
David A Rulapaugh
Jones C Flosi
Wickens N Bowley
Juan W Sergi
Julie R Kolmetz
Greenwood X Paprocki
IdCountryDate
1000Argentina2024-04-03
1001Russia2024-03-23
1002Russia2024-03-18
1003Japan2024-04-09
1004Italy2024-04-01
1005Australia2024-04-05
1006India2024-04-09
1007Australia2024-04-01
1008India2024-04-11
1009Russia2024-04-14
1010Brazil2024-03-24
1011India2024-04-06
1012United Kingdom2024-03-31
1013Brazil2024-03-27
1014Australia2024-04-09
1015Spain2024-03-23
1016France2024-03-21
1017Japan2024-03-26
1018Canada2024-04-12
1019Australia2024-04-15
1020United Kingdom2024-03-30
1021Russia2024-04-06
1022India2024-03-20
1023Argentina2024-04-09
1024Canada2024-04-08
1025India2024-04-06
1026United Kingdom2024-03-20
1027Canada2024-03-24
1028Germany2024-03-29
1029Japan2024-03-31
1030Canada2024-03-22
1031Russia2024-04-13
1032Spain2024-03-30
1033Argentina2024-04-11
1034Japan2024-04-13
1035United Kingdom2024-04-06
1036Argentina2024-03-19
1037Brazil2024-03-18
1038Canada2024-04-12
1039Australia2024-03-18
1040Italy2024-04-09
1041Brazil2024-04-14
1042United Kingdom2024-03-25
1043France2024-04-15
1044Argentina2024-04-06
1045Argentina2024-03-28
1046India2024-04-08
1047Canada2024-03-20
1048Spain2024-03-28
1049Canada2024-04-15

On-Demand Data

NameIdCountryDate
Johnson C Ostrosky1000France2024-04-10
Aditya V Rulapaugh1001Canada2024-03-25
Tony O Chui1002Australia2024-03-21
Emily V Campain1003Germany2024-04-02
Chavez K Morasca1004Japan2024-04-07
Aika L Ostrosky1005Argentina2024-03-23
Murillo A Rim1006Russia2024-04-01
Costa P Bolognia1007Japan2024-04-09
Juan C Butt1008France2024-03-26
Leja W Ferencz1009France2024-04-06
Munro N Malet1010Italy2024-03-23
Juan S Campain1011France2024-03-22
Juan I Chui1012United Kingdom2024-03-29
Silvio Q Malet1013Russia2024-03-24
Aruna Z Nicka1014Japan2024-03-25
Maria G Schemmer1015Brazil2024-04-06
Adams X Campain1016Italy2024-04-01
James X Ostrosky1017Germany2024-04-10
Claire U Shinko1018Argentina2024-04-08
Tony W Rulapaugh1019Germany2024-04-14
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Antonio E KolmetzUnited KingdomElwin Sharvill UNQUALIFIED
Jennifer R GillianBrazilIoni Bowcher QUALIFIED
Darci J GauchoRussiaOnyama Limba UNQUALIFIED
Maria H WaycottUnited KingdomAsiya Javayant QUALIFIED
Faith A VenereCanadaIvan Magalhaes RENEWAL
Ivar B PoquetteFranceIvan Magalhaes NEW
Clifford Q DilliardSpainIoni Bowcher UNQUALIFIED
Faith B WhobreyJapanStephen Shaw PROPOSAL
Munro T DilliardGermanyIoni Bowcher PROPOSAL
Ricardo X DarakjyCanadaIoni Bowcher NEW
Julie V PerinArgentinaIvan Magalhaes RENEWAL
Julie D GlickUnited KingdomIvan Magalhaes NEGOTIATION
Nicolas E KuskoJapanBernardo Dominic NEW
Julie G GarufiUnited KingdomElwin Sharvill RENEWAL
Octavia U NickaCanadaElwin Sharvill PROPOSAL
Mujtaba M ChuiItalyElwin Sharvill NEGOTIATION
Johnson W KuskoRussiaXuxue Feng NEGOTIATION
Maria H SlusarskiItalyStephen Shaw UNQUALIFIED
Kaitlin R GillianAustraliaStephen Shaw QUALIFIED
Cody O IturbideIndiaAsiya Javayant NEGOTIATION
Morrow W GlickIndiaXuxue Feng QUALIFIED
Murillo C DoeGermanyAmy Elsner NEW
Salvatore V MorascaAustraliaOnyama Limba RENEWAL
Chavez R CaudyRussiaStephen Shaw QUALIFIED
Murillo T GlickGermanyAmy Elsner UNQUALIFIED
Aditya W FlosiCanadaAnna Fali NEGOTIATION
Wickens P NestleArgentinaBernardo Dominic PROPOSAL
Jefferson H RulapaughJapanAsiya Javayant PROPOSAL
Misaki H BowleyAustraliaAmy Elsner NEW
Murillo G KuskoIndiaBernardo Dominic NEW
James X NickaArgentinaAsiya Javayant UNQUALIFIED
Morrow G TollnerGermanyBernardo Dominic UNQUALIFIED
Julie K TollnerUnited KingdomElwin Sharvill PROPOSAL
Deepesh P SergiFranceIvan Magalhaes NEGOTIATION
Adams E ShinkoFranceAsiya Javayant UNQUALIFIED
Claire J MarrierUnited KingdomAmy Elsner PROPOSAL
Munro H VenereSpainOnyama Limba NEGOTIATION
Stacey Q MaletIndiaElwin Sharvill UNQUALIFIED
Izzy L MacleadBrazilIoni Bowcher QUALIFIED
Isabel E AlbaresFranceAnna Fali 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>