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
Alejandro M AlbaresJapanXuxue Feng PROPOSAL
Alejandro L SergiIndiaElwin Sharvill UNQUALIFIED
Aruna K FollerSpainBernardo Dominic NEGOTIATION
Sinclair V OstroskyUnited KingdomAsiya Javayant QUALIFIED
Leja I MorascaAustraliaAnna Fali QUALIFIED
Kaitlin Q GauchoJapanElwin Sharvill NEW
Costa O PerinIndiaElwin Sharvill NEW
Julie I CaldareraCanadaIoni Bowcher PROPOSAL
Munro T VocelkaItalyOnyama Limba UNQUALIFIED
Maria S KuskoCanadaStephen Shaw NEW
Juan U SergiIndiaAsiya Javayant QUALIFIED
Ricardo M KuskoAustraliaAmy Elsner NEW
Emily Q RimRussiaElwin Sharvill UNQUALIFIED
Smith M DoeFranceAsiya Javayant RENEWAL
Mayumi D KuskoGermanyAmy Elsner NEGOTIATION
Maria O WhobreyRussiaXuxue Feng QUALIFIED
Jennifer N RoysterUnited KingdomElwin Sharvill NEGOTIATION
David C MarrierFranceAmy Elsner NEW
Juan Z OldroydGermanyXuxue Feng PROPOSAL
Izzy S WieserGermanyAmy Elsner QUALIFIED
Morrow Q RutaSpainAmy Elsner RENEWAL
Smith C InouyeUnited KingdomOnyama Limba QUALIFIED
Aika T VocelkaBrazilBernardo Dominic RENEWAL
Wickens G AlbaresIndiaStephen Shaw PROPOSAL
James J GauchoIndiaOnyama Limba QUALIFIED
Clifford L MacleadArgentinaStephen Shaw QUALIFIED
Leja X GauchoArgentinaStephen Shaw PROPOSAL
Jeanfrancois C KolmetzIndiaAmy Elsner QUALIFIED
Faith M OldroydIndiaAnna Fali RENEWAL
Antonio L MacleadUnited KingdomXuxue Feng RENEWAL
Kaitlin L GarufiFranceStephen Shaw NEW
Maria C DarakjyIndiaBernardo Dominic UNQUALIFIED
Antonio W WieserRussiaXuxue Feng UNQUALIFIED
Wickens C SaylorsSpainOnyama Limba NEGOTIATION
Silvio N NickaRussiaAsiya Javayant PROPOSAL
Sinclair G RutaRussiaOnyama Limba UNQUALIFIED
Salvatore H ShinkoAustraliaAmy Elsner UNQUALIFIED
Maisha W FerenczBrazilElwin Sharvill NEW
Greenwood Z KolmetzAustraliaAmy Elsner NEW
Adams N RutaAustraliaIvan Magalhaes QUALIFIED
Ashley J BowleyFranceAmy Elsner PROPOSAL
Morrow H ShinkoJapanStephen Shaw NEGOTIATION
Alejandro N ChuiFranceStephen Shaw RENEWAL
Kaitlin E ChuiRussiaAsiya Javayant UNQUALIFIED
Mayumi C NestleItalyElwin Sharvill QUALIFIED
Faith Y IturbideArgentinaAnna Fali RENEWAL
Octavia E TollnerSpainXuxue Feng QUALIFIED
Mayumi Q TollnerSpainAmy Elsner RENEWAL
Munro H FlosiSpainOnyama Limba NEGOTIATION
Francesco R GillianBrazilBernardo Dominic PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Claire Y GillianUnited KingdomStephen Shaw NEW
Aruna J SaylorsUnited KingdomAnna Fali NEGOTIATION
Juan K WieserSpainXuxue Feng RENEWAL
Salvatore K SchemmerAustraliaBernardo Dominic NEW
Aditya F OstroskyJapanStephen Shaw RENEWAL
Faith P OldroydAustraliaOnyama Limba NEGOTIATION
Munro N KolmetzJapanStephen Shaw NEW
Murillo U PaprockiAustraliaIoni Bowcher NEGOTIATION
Chavez X SaylorsAustraliaIvan Magalhaes UNQUALIFIED
Cody K VocelkaJapanXuxue Feng NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Salvatore O CaudyAustralia2024-04-15Benton, John B Jr UNQUALIFIED25Amy Elsner
1001Ricardo R VocelkaBrazil2024-04-15Feiner Bros NEGOTIATION49Onyama Limba
1002Izzy D CaldareraUnited Kingdom2024-03-29Rangoni Of Florence NEGOTIATION64Amy Elsner
1003Aruna C TollnerItaly2024-03-31Benton, John B Jr NEGOTIATION3Onyama Limba
1004Francesco S FollerUnited Kingdom2024-04-25Rousseaux, Michael Esq QUALIFIED62Xuxue Feng
1005Chavez H ChuiItaly2024-04-10Feiner Bros NEW20Bernardo Dominic
1006Alejandro Y OldroydSpain2024-04-16Buckley Miller Wright QUALIFIED97Amy Elsner
1007Morrow V CaudyItaly2024-04-01Chemel, James L Cpa PROPOSAL20Ioni Bowcher
1008Leon O CaudyRussia2024-04-22Buckley Miller Wright PROPOSAL60Amy Elsner
1009Juan S GarufiSpain2024-04-19Chanay, Jeffrey A Esq QUALIFIED85Xuxue Feng
1010Juan N GillianRussia2024-04-03Printing Dimensions PROPOSAL35Ivan Magalhaes
1011Octavia C PoquetteAustralia2024-03-29Feiner Bros NEW5Ivan Magalhaes
1012Misaki N SlusarskiCanada2024-04-07Feiner Bros PROPOSAL52Anna Fali
1013Silvio B CampainFrance2024-04-16Chapman, Ross E Esq PROPOSAL88Onyama Limba
1014Costa V MorascaIndia2024-04-01Printing Dimensions PROPOSAL3Elwin Sharvill
1015Silvio N OstroskyIndia2024-03-30Commercial Press PROPOSAL79Bernardo Dominic
1016Faith Y SaylorsAustralia2024-04-10Printing Dimensions QUALIFIED14Onyama Limba
1017Clifford Y PerinItaly2024-03-29Dorl, James J Esq UNQUALIFIED69Ioni Bowcher
1018Murillo M FollerIndia2024-04-19Printing Dimensions NEGOTIATION53Xuxue Feng
1019Maisha O KolmetzUnited Kingdom2024-04-12Chanay, Jeffrey A Esq PROPOSAL51Anna Fali
1020Julie X NestleAustralia2024-04-07Feltz Printing Service UNQUALIFIED84Anna Fali
1021Adams H BologniaUnited Kingdom2024-04-19Commercial Press UNQUALIFIED19Elwin Sharvill
1022Kadeem K OstroskyAustralia2024-04-18Rangoni Of Florence NEW5Asiya Javayant
1023Salvatore Y ChuiBrazil2024-04-18Benton, John B Jr PROPOSAL51Bernardo Dominic
1024Kadeem T CaudyItaly2024-04-08Dorl, James J Esq NEW0Ivan Magalhaes
1025Mayumi J PaprockiUnited Kingdom2024-04-05Benton, John B Jr NEW31Elwin Sharvill
1026Jefferson S AlbaresRussia2024-03-28Dorl, James J Esq PROPOSAL50Xuxue Feng
1027Sinclair O CaudyGermany2024-03-28Dorl, James J Esq NEW20Xuxue Feng
1028Aika B SergiAustralia2024-03-30Buckley Miller Wright PROPOSAL99Onyama Limba
1029Francesco Q InouyeBrazil2024-04-05Feltz Printing Service UNQUALIFIED63Ivan Magalhaes
1030Deepesh K PaprockiUnited Kingdom2024-03-27Truhlar And Truhlar Attys PROPOSAL84Xuxue Feng
1031Jefferson P VenereArgentina2024-04-01Chapman, Ross E Esq UNQUALIFIED2Amy Elsner
1032Izzy C BologniaItaly2024-04-17Truhlar And Truhlar Attys RENEWAL33Xuxue Feng
1033Cody T WieserAustralia2024-03-31Feiner Bros UNQUALIFIED52Amy Elsner
1034Jeanfrancois B MaletGermany2024-03-30Commercial Press PROPOSAL42Elwin Sharvill
1035Jefferson C InouyeArgentina2024-04-01Printing Dimensions PROPOSAL85Anna Fali
1036David W GarufiAustralia2024-04-07Rousseaux, Michael Esq RENEWAL95Amy Elsner
1037Alejandro S CampainBrazil2024-04-19Benton, John B Jr RENEWAL37Asiya Javayant
1038Isabel W MacleadSpain2024-04-18Printing Dimensions UNQUALIFIED68Ioni Bowcher
1039Jones C MorascaBrazil2024-04-25Chanay, Jeffrey A Esq QUALIFIED70Anna Fali
1040Leon V BologniaCanada2024-03-30Commercial Press NEW5Stephen Shaw
1041Rodrigues J FigeroaJapan2024-04-25Chapman, Ross E Esq NEGOTIATION4Bernardo Dominic
1042Aika E PoquetteJapan2024-04-02Feiner Bros UNQUALIFIED89Xuxue Feng
1043Octavia R CaldareraRussia2024-04-01Feltz Printing Service PROPOSAL55Amy Elsner
1044Murillo J KolmetzCanada2024-04-01Feltz Printing Service QUALIFIED53Ioni Bowcher
1045Tony A VocelkaJapan2024-03-31Commercial Press PROPOSAL67Onyama Limba
1046Costa T RoysterGermany2024-03-28Benton, John B Jr UNQUALIFIED19Ivan Magalhaes
1047Cody G CampainRussia2024-04-06Buckley Miller Wright NEGOTIATION31Elwin Sharvill
1048Isabel P BowleyArgentina2024-04-12Dorl, James J Esq NEGOTIATION95Xuxue Feng
1049Francesco I MaletIndia2024-04-18Benton, John B Jr UNQUALIFIED73Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Tony I VocelkaItalyAmy Elsner UNQUALIFIED
Johnson Z FigeroaUnited KingdomOnyama Limba NEGOTIATION
Jeanfrancois S ShinkoBrazilIoni Bowcher PROPOSAL
Greenwood V PoquetteFranceElwin Sharvill QUALIFIED
Kaitlin A CaldareraRussiaXuxue Feng PROPOSAL
Clifford P KuskoGermanyElwin Sharvill UNQUALIFIED
Johnson V TollnerItalyXuxue Feng PROPOSAL
Emily X DarakjyRussiaOnyama Limba NEW
Tony Q StensethFranceXuxue Feng NEW
Faith S RutaGermanyAsiya Javayant NEGOTIATION
Jennifer C DarakjyItalyOnyama Limba RENEWAL
Cody D InouyeUnited KingdomElwin Sharvill UNQUALIFIED
Morrow U DilliardRussiaElwin Sharvill UNQUALIFIED
Morrow F MorascaRussiaIoni Bowcher NEW
Mayumi R KuskoArgentinaElwin Sharvill PROPOSAL
Antonio B DarakjyJapanElwin Sharvill RENEWAL
Ivar K FlosiFranceBernardo Dominic NEGOTIATION
Munro L NestleArgentinaXuxue Feng NEGOTIATION
Faith U SlusarskiFranceBernardo Dominic NEGOTIATION
Leja T NestleBrazilAsiya Javayant QUALIFIED
Jones H SlusarskiJapanAmy Elsner UNQUALIFIED
David S GillianUnited KingdomOnyama Limba UNQUALIFIED
James K SchemmerSpainXuxue Feng UNQUALIFIED
Jeanfrancois E RutaJapanStephen Shaw NEGOTIATION
Darci P FlosiSpainBernardo Dominic NEW
Darci U SergiCanadaStephen Shaw NEW
Greenwood F FlosiArgentinaOnyama Limba NEGOTIATION
Sinclair D MaletRussiaBernardo Dominic NEW
Aruna X StensethSpainOnyama Limba RENEWAL
Clifford F StensethCanadaElwin Sharvill QUALIFIED
Salvatore E ButtJapanStephen Shaw PROPOSAL
Aruna I FollerIndiaIvan Magalhaes NEW
Mujtaba F PaprockiJapanAnna Fali RENEWAL
Ivar K NestleCanadaAmy Elsner NEW
Maisha R OstroskyRussiaAmy Elsner QUALIFIED
Jefferson J NestleArgentinaIvan Magalhaes NEW
Aika H DoeJapanOnyama Limba QUALIFIED
Mujtaba K GillianArgentinaAmy Elsner RENEWAL
Munro A AmigonIndiaStephen Shaw PROPOSAL
Ivar Z FigeroaAustraliaAnna Fali PROPOSAL
Cody U GarufiUnited KingdomIvan Magalhaes RENEWAL
Sinclair V SchemmerItalyIoni Bowcher UNQUALIFIED
Leon P StockhamItalyStephen Shaw PROPOSAL
Alejandro M FlosiItalyAnna Fali NEGOTIATION
David K OstroskyUnited KingdomIoni Bowcher RENEWAL
Greenwood H ButtIndiaIoni Bowcher UNQUALIFIED
Rodrigues P RutaArgentinaAnna Fali PROPOSAL
Ricardo T RulapaughRussiaAsiya Javayant QUALIFIED
Leon L FigeroaSpainStephen Shaw NEW
Faith P GauchoItalyIoni Bowcher PROPOSAL
Frozen Columns
Name
Aditya P Malet
Darci N Dilliard
Darci V Kolmetz
Faith U Stockham
Kadeem B Briddick
Antonio H Venere
Smith Q Nicka
Wickens C Rim
Rodrigues L Stenseth
Munro R Chui
Silvio Y Ferencz
Aditya Y Maclead
Octavia V Saylors
Arvin I Kolmetz
Murillo T Malet
Aika I Tollner
Ivar L Nicka
Clifford Q Poquette
Jones W Caldarera
Stacey L Malet
Juan T Royster
Aika D Gillian
Johnson R Dilliard
Murillo K Tollner
Greenwood U Stockham
Juan K Poquette
Mujtaba H Doe
Mujtaba R Whobrey
Emily V Schemmer
Emily W Kusko
Deepesh L Campain
Octavia I Gaucho
Alejandro L Nestle
Morrow W Caudy
Stacey B Stenseth
Johnson S Nicka
Salvatore H Albares
Cody W Caudy
Wickens M Marrier
Costa L Kusko
Leon P Royster
David X Briddick
Rodrigues E Kusko
Stacey U Iturbide
Juan I Campain
Kaitlin Y Flosi
Rodrigues H Foller
Mujtaba I Shinko
Kaitlin L Gillian
Stacey X Flosi
IdCountryDate
1000Russia2024-04-11
1001Australia2024-04-06
1002Argentina2024-04-02
1003Canada2024-03-27
1004Canada2024-03-27
1005Spain2024-04-15
1006Germany2024-04-04
1007Spain2024-04-14
1008Russia2024-03-31
1009Russia2024-04-08
1010Canada2024-04-09
1011Italy2024-04-06
1012Russia2024-04-05
1013Italy2024-04-17
1014Germany2024-03-31
1015Russia2024-03-30
1016India2024-04-07
1017France2024-04-02
1018Japan2024-04-03
1019India2024-04-25
1020Brazil2024-04-13
1021Spain2024-04-01
1022Russia2024-04-05
1023Japan2024-03-29
1024India2024-03-27
1025Australia2024-04-14
1026United Kingdom2024-04-08
1027Germany2024-04-22
1028United Kingdom2024-04-07
1029Canada2024-04-02
1030United Kingdom2024-04-04
1031India2024-03-27
1032Argentina2024-04-12
1033Canada2024-03-31
1034Australia2024-04-15
1035Brazil2024-04-05
1036Brazil2024-04-07
1037France2024-04-05
1038Russia2024-04-25
1039Italy2024-04-18
1040Argentina2024-03-30
1041France2024-04-24
1042Russia2024-04-23
1043Brazil2024-03-28
1044Argentina2024-04-02
1045France2024-04-11
1046Brazil2024-04-22
1047Italy2024-04-11
1048Spain2024-04-11
1049United Kingdom2024-04-24

On-Demand Data

NameIdCountryDate
Wickens C Whobrey1000Australia2024-04-10
Kadeem A Marrier1001United Kingdom2024-04-03
Adams P Whobrey1002Argentina2024-04-05
Ashley R Doe1003Argentina2024-04-25
Ashley R Shinko1004France2024-04-15
Jefferson F Iturbide1005United Kingdom2024-04-25
Alejandro L Marrier1006Russia2024-04-10
Sinclair O Ferencz1007Russia2024-04-07
Leja L Dilliard1008France2024-04-18
Antonio B Briddick1009Germany2024-04-22
Silvio E Wieser1010Brazil2024-04-23
Isabel M Stockham1011United Kingdom2024-04-04
Silvio S Flosi1012Spain2024-04-11
Cody T Nicka1013Italy2024-04-11
James X Campain1014France2024-04-06
Isabel Z Bowley1015Japan2024-04-11
Kaitlin S Waycott1016Spain2024-04-12
Rodrigues C Darakjy1017Brazil2024-03-29
Tony R Dilliard1018Brazil2024-04-17
Wickens B Oldroyd1019Russia2024-04-14
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Munro M OstroskyGermanyElwin Sharvill NEW
Smith U GauchoSpainAnna Fali NEGOTIATION
Misaki F DilliardSpainAnna Fali QUALIFIED
Emily L FigeroaJapanIvan Magalhaes QUALIFIED
Jennifer C StensethAustraliaAmy Elsner NEW
Faith Q FollerBrazilBernardo Dominic PROPOSAL
Sinclair B OldroydArgentinaStephen Shaw RENEWAL
Costa R PerinRussiaXuxue Feng UNQUALIFIED
Leon P WhobreyUnited KingdomAsiya Javayant QUALIFIED
Sinclair Z DilliardBrazilAnna Fali NEGOTIATION
Jefferson U WaycottBrazilIvan Magalhaes NEGOTIATION
Aditya Q MaletAustraliaXuxue Feng NEW
Johnson Q OldroydIndiaIvan Magalhaes PROPOSAL
Greenwood O StensethRussiaAmy Elsner UNQUALIFIED
Deepesh O RulapaughRussiaIoni Bowcher QUALIFIED
Silvio F SaylorsRussiaBernardo Dominic UNQUALIFIED
Nicolas P GillianIndiaIvan Magalhaes NEW
Nicolas B ShinkoSpainElwin Sharvill NEW
Arvin Z GillianUnited KingdomAnna Fali RENEWAL
Antonio M SchemmerFranceAnna Fali NEGOTIATION
David S MaletArgentinaStephen Shaw NEW
Julie K NickaFranceXuxue Feng RENEWAL
Rodrigues F SchemmerIndiaStephen Shaw QUALIFIED
Chavez O SergiJapanAmy Elsner NEW
Mayumi U WieserRussiaAsiya Javayant QUALIFIED
Misaki E GarufiUnited KingdomAsiya Javayant NEW
Clifford P IturbideUnited KingdomStephen Shaw RENEWAL
Deepesh C GlickAustraliaIvan Magalhaes RENEWAL
David Y RutaIndiaOnyama Limba UNQUALIFIED
Leja O VocelkaIndiaElwin Sharvill RENEWAL
Francesco K GillianRussiaElwin Sharvill QUALIFIED
Julie J KuskoGermanyIoni Bowcher PROPOSAL
Isabel E OstroskyJapanAnna Fali RENEWAL
Octavia Y RoysterJapanAnna Fali QUALIFIED
James W RimCanadaOnyama Limba RENEWAL
Johnson I CaldareraItalyStephen Shaw NEGOTIATION
Rodrigues A PerinFranceXuxue Feng QUALIFIED
Rodrigues O ButtAustraliaStephen Shaw RENEWAL
Jefferson W BriddickArgentinaIvan Magalhaes PROPOSAL
Aditya U DoeAustraliaOnyama Limba 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>