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
Juan J RulapaughCanadaIoni Bowcher NEW
Wickens Z RimJapanAmy Elsner PROPOSAL
Aruna Y DilliardCanadaStephen Shaw UNQUALIFIED
Julie I RoysterUnited KingdomAnna Fali RENEWAL
Ashley D RoysterFranceAnna Fali PROPOSAL
Jeanfrancois Y FlosiSpainElwin Sharvill QUALIFIED
Silvio E KuskoGermanyXuxue Feng NEGOTIATION
Kadeem W DarakjyCanadaIvan Magalhaes QUALIFIED
Alejandro C NickaBrazilBernardo Dominic QUALIFIED
Aika M MaletIndiaAmy Elsner PROPOSAL
Arvin R MarrierArgentinaStephen Shaw PROPOSAL
Francesco O SlusarskiCanadaXuxue Feng UNQUALIFIED
Julie S DarakjyIndiaAnna Fali RENEWAL
Stacey V VocelkaUnited KingdomAsiya Javayant RENEWAL
Tony X NickaBrazilAnna Fali QUALIFIED
Clifford I DoeGermanyStephen Shaw NEGOTIATION
Aditya F FigeroaSpainElwin Sharvill PROPOSAL
Misaki O FigeroaAustraliaAnna Fali NEGOTIATION
Mayumi X IturbideJapanIvan Magalhaes NEGOTIATION
Cody N GillianUnited KingdomAmy Elsner PROPOSAL
Faith X PerinSpainStephen Shaw QUALIFIED
Jennifer C NickaGermanyIoni Bowcher NEW
Jefferson Q StensethIndiaOnyama Limba QUALIFIED
Aditya M SaylorsSpainIoni Bowcher PROPOSAL
Jennifer D MarrierSpainIvan Magalhaes UNQUALIFIED
Nicolas W MorascaGermanyBernardo Dominic QUALIFIED
Clifford S SaylorsIndiaAsiya Javayant UNQUALIFIED
David L MacleadFranceOnyama Limba PROPOSAL
Ricardo R GillianFranceStephen Shaw NEGOTIATION
Sinclair U RimAustraliaIoni Bowcher PROPOSAL
Faith M MarrierGermanyStephen Shaw NEW
Leja W StensethBrazilElwin Sharvill RENEWAL
Chavez R IturbideCanadaBernardo Dominic NEW
Adams M RoysterItalyAsiya Javayant RENEWAL
Tony F MarrierRussiaAmy Elsner QUALIFIED
Clifford J VocelkaBrazilAsiya Javayant PROPOSAL
Chavez H ButtAustraliaOnyama Limba PROPOSAL
Maisha I BowleyBrazilStephen Shaw QUALIFIED
Francesco I GlickAustraliaElwin Sharvill PROPOSAL
Francesco P BologniaRussiaAsiya Javayant RENEWAL
Izzy Z AmigonItalyAnna Fali NEW
Aika D StockhamGermanyAsiya Javayant QUALIFIED
Jefferson R CampainUnited KingdomAsiya Javayant NEW
Aditya S NickaIndiaAsiya Javayant QUALIFIED
Adams A OstroskyCanadaOnyama Limba NEGOTIATION
Leja E CaldareraJapanIoni Bowcher UNQUALIFIED
Sinclair A CaudySpainAsiya Javayant PROPOSAL
Mujtaba P RoysterIndiaOnyama Limba QUALIFIED
Silvio P SchemmerJapanIvan Magalhaes RENEWAL
Munro B RimJapanAnna Fali RENEWAL
Horizontal
NameCountryRepresentativeStatus
Juan B VocelkaSpainAnna Fali NEGOTIATION
Salvatore G StockhamFranceAnna Fali UNQUALIFIED
Greenwood C GauchoFranceStephen Shaw NEW
Costa P AlbaresAustraliaStephen Shaw PROPOSAL
Izzy L SergiRussiaOnyama Limba NEW
Ivar X SlusarskiCanadaAnna Fali PROPOSAL
Francesco H SchemmerBrazilAsiya Javayant RENEWAL
Emily X NestleArgentinaAsiya Javayant RENEWAL
Maisha J RutaFranceAsiya Javayant RENEWAL
Maisha Q WieserGermanyElwin Sharvill RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Munro T NestleFrance2024-04-13Commercial Press UNQUALIFIED39Ioni Bowcher
1001Jones G ChuiJapan2024-04-09Feiner Bros NEGOTIATION36Onyama Limba
1002Wickens K ButtBrazil2024-04-13Dorl, James J Esq PROPOSAL24Ioni Bowcher
1003Emily I GarufiGermany2024-04-22Dorl, James J Esq UNQUALIFIED5Anna Fali
1004Darci P WaycottJapan2024-04-17Rangoni Of Florence QUALIFIED88Ioni Bowcher
1005Aruna M VenereRussia2024-04-14Feiner Bros PROPOSAL82Xuxue Feng
1006Murillo D VenereBrazil2024-04-01Truhlar And Truhlar Attys RENEWAL40Ivan Magalhaes
1007Sinclair O MaletAustralia2024-04-10Truhlar And Truhlar Attys NEGOTIATION19Stephen Shaw
1008Arvin I MarrierCanada2024-04-18Printing Dimensions NEW0Anna Fali
1009Leja Q DilliardGermany2024-03-29Commercial Press NEW44Onyama Limba
1010Aika U OldroydUnited Kingdom2024-04-07Benton, John B Jr NEW97Bernardo Dominic
1011Darci Y GillianBrazil2024-04-08Dorl, James J Esq UNQUALIFIED97Stephen Shaw
1012Murillo U FlosiSpain2024-04-15Dorl, James J Esq UNQUALIFIED2Anna Fali
1013Greenwood F StockhamGermany2024-04-12Rousseaux, Michael Esq PROPOSAL2Elwin Sharvill
1014Jones Q ChuiRussia2024-04-06Benton, John B Jr PROPOSAL89Anna Fali
1015Wickens F ChuiJapan2024-04-10Chapman, Ross E Esq NEW19Bernardo Dominic
1016Johnson C MarrierBrazil2024-04-07Buckley Miller Wright QUALIFIED58Anna Fali
1017Mayumi H WaycottJapan2024-04-25Morlong Associates RENEWAL60Amy Elsner
1018Leon R SergiUnited Kingdom2024-04-10Feiner Bros RENEWAL71Anna Fali
1019Mayumi Z FerenczIndia2024-04-13Buckley Miller Wright NEW24Asiya Javayant
1020Greenwood K NestleJapan2024-04-10Printing Dimensions PROPOSAL75Anna Fali
1021David A InouyeGermany2024-04-15Chemel, James L Cpa NEW21Xuxue Feng
1022Ashley N OstroskySpain2024-03-28Chemel, James L Cpa UNQUALIFIED83Bernardo Dominic
1023Wickens K BowleyCanada2024-04-02Rousseaux, Michael Esq NEGOTIATION79Ioni Bowcher
1024Ivar X BriddickSpain2024-04-18Morlong Associates UNQUALIFIED35Onyama Limba
1025Deepesh S KolmetzJapan2024-04-23Rangoni Of Florence UNQUALIFIED83Bernardo Dominic
1026Faith G DarakjyAustralia2024-04-04Rangoni Of Florence PROPOSAL49Xuxue Feng
1027Adams D PerinAustralia2024-04-18Chemel, James L Cpa RENEWAL51Asiya Javayant
1028Darci W FlosiArgentina2024-04-22Chemel, James L Cpa UNQUALIFIED56Xuxue Feng
1029Kadeem E SchemmerUnited Kingdom2024-04-13Truhlar And Truhlar Attys UNQUALIFIED3Bernardo Dominic
1030Maisha V SlusarskiFrance2024-03-31Chemel, James L Cpa NEGOTIATION89Anna Fali
1031Jennifer E FerenczFrance2024-04-19Feltz Printing Service NEW10Bernardo Dominic
1032Aika G FollerGermany2024-04-05Feltz Printing Service QUALIFIED30Elwin Sharvill
1033Emily H RutaFrance2024-04-11Morlong Associates QUALIFIED63Elwin Sharvill
1034Kadeem J MaletRussia2024-04-19Chapman, Ross E Esq QUALIFIED46Ivan Magalhaes
1035Aruna L StensethBrazil2024-04-18Truhlar And Truhlar Attys QUALIFIED36Amy Elsner
1036James T OldroydRussia2024-04-14Chanay, Jeffrey A Esq NEW21Ivan Magalhaes
1037Octavia A WhobreyRussia2024-04-23Chapman, Ross E Esq RENEWAL84Ivan Magalhaes
1038Maria J ChuiCanada2024-04-20Feiner Bros NEGOTIATION33Ioni Bowcher
1039Munro E FlosiArgentina2024-04-17Rousseaux, Michael Esq NEW88Bernardo Dominic
1040Silvio V OstroskyRussia2024-04-12Feltz Printing Service NEW98Amy Elsner
1041Tony E DoeIndia2024-04-19Chanay, Jeffrey A Esq RENEWAL10Onyama Limba
1042Juan S SaylorsCanada2024-04-15Rangoni Of Florence PROPOSAL21Onyama Limba
1043Cody J DoeFrance2024-03-27Chemel, James L Cpa RENEWAL95Elwin Sharvill
1044Juan D BriddickCanada2024-04-16Rousseaux, Michael Esq NEGOTIATION38Stephen Shaw
1045Francesco S GillianIndia2024-04-19Morlong Associates NEW42Xuxue Feng
1046Mayumi C FlosiFrance2024-04-12Buckley Miller Wright PROPOSAL93Bernardo Dominic
1047Maria A OstroskyRussia2024-04-17Rousseaux, Michael Esq QUALIFIED44Bernardo Dominic
1048Munro T DoeIndia2024-04-24Dorl, James J Esq NEGOTIATION64Asiya Javayant
1049Ricardo H SergiBrazil2024-04-03Feiner Bros QUALIFIED75Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Mujtaba Y NickaItalyElwin Sharvill RENEWAL
James Z KuskoAustraliaIvan Magalhaes RENEWAL
Leon C ChuiUnited KingdomAsiya Javayant QUALIFIED
Ivar H MaletCanadaBernardo Dominic QUALIFIED
Aika M RoysterUnited KingdomOnyama Limba QUALIFIED
Octavia Y ButtItalyAmy Elsner PROPOSAL
Deepesh T NickaGermanyIoni Bowcher NEGOTIATION
Aika E IturbideSpainAnna Fali NEW
James Q WieserGermanyAsiya Javayant UNQUALIFIED
Mujtaba G BologniaCanadaAmy Elsner NEGOTIATION
Tony G WieserItalyIvan Magalhaes UNQUALIFIED
Juan U BriddickItalyIvan Magalhaes QUALIFIED
Munro Z MarrierUnited KingdomAsiya Javayant NEW
Jennifer U StensethRussiaAsiya Javayant PROPOSAL
Wickens M BriddickGermanyOnyama Limba PROPOSAL
Morrow K DilliardAustraliaIvan Magalhaes QUALIFIED
Isabel N SchemmerJapanBernardo Dominic UNQUALIFIED
Kadeem E VenereUnited KingdomIoni Bowcher NEW
Deepesh H NestleJapanOnyama Limba PROPOSAL
Morrow U SchemmerItalyAsiya Javayant UNQUALIFIED
Aditya X OldroydArgentinaAmy Elsner NEW
Ivar N WieserJapanElwin Sharvill QUALIFIED
Salvatore X AmigonRussiaOnyama Limba NEW
Ricardo W RulapaughJapanAsiya Javayant NEGOTIATION
Francesco F GlickUnited KingdomAmy Elsner NEGOTIATION
Deepesh V SlusarskiCanadaElwin Sharvill QUALIFIED
Maria R GlickRussiaAnna Fali RENEWAL
Jones J FollerSpainElwin Sharvill QUALIFIED
Wickens M StockhamIndiaAnna Fali NEW
Aika Q CaldareraCanadaAnna Fali NEGOTIATION
Jeanfrancois I SergiIndiaIvan Magalhaes NEGOTIATION
Leon U FerenczFranceOnyama Limba RENEWAL
Jefferson Z CampainBrazilIoni Bowcher RENEWAL
Maisha W VocelkaSpainStephen Shaw RENEWAL
Salvatore W AmigonItalyAsiya Javayant RENEWAL
Rodrigues G WhobreyFranceOnyama Limba PROPOSAL
Deepesh J AmigonSpainIvan Magalhaes NEW
Tony S PaprockiAustraliaAmy Elsner UNQUALIFIED
Darci G OstroskyIndiaOnyama Limba PROPOSAL
Jefferson E FlosiIndiaOnyama Limba NEGOTIATION
Silvio P WieserGermanyAsiya Javayant NEW
Faith V MacleadGermanyIvan Magalhaes UNQUALIFIED
Ricardo V OldroydJapanBernardo Dominic RENEWAL
Julie I ButtCanadaStephen Shaw RENEWAL
Cody M PoquetteGermanyBernardo Dominic NEW
Misaki C StockhamSpainIvan Magalhaes NEGOTIATION
Kaitlin O FigeroaGermanyElwin Sharvill QUALIFIED
Adams U WaycottUnited KingdomAsiya Javayant PROPOSAL
Rodrigues J RutaAustraliaBernardo Dominic UNQUALIFIED
Aruna R VenereUnited KingdomElwin Sharvill NEW
Frozen Columns
Name
Faith M Slusarski
Emily Z Paprocki
Deepesh G Schemmer
Aika S Albares
Salvatore B Butt
Clifford K Kolmetz
Isabel K Campain
Kadeem O Morasca
Rodrigues X Gaucho
Munro Y Albares
Tony Y Darakjy
Izzy W Venere
Alejandro H Venere
Murillo G Nestle
Morrow Q Nestle
Leon X Schemmer
Leja W Ostrosky
Octavia X Butt
Ricardo P Nestle
Jones H Poquette
Mayumi M Caudy
Clifford I Figeroa
Chavez H Bowley
Mayumi S Caldarera
Leon V Gillian
Aruna K Dilliard
Claire R Doe
Izzy V Malet
Claire N Maclead
Salvatore J Slusarski
Maria I Sergi
Kadeem T Rim
Rodrigues B Wieser
Emily K Marrier
Adams N Rim
Clifford I Iturbide
Jones Y Venere
Deepesh B Iturbide
Alejandro F Oldroyd
Munro M Oldroyd
Morrow W Glick
Jeanfrancois K Kolmetz
Costa Z Rulapaugh
Maria I Slusarski
Leon L Figeroa
Sinclair O Rulapaugh
Ivar M Ostrosky
Adams N Glick
Isabel W Garufi
Kadeem M Butt
IdCountryDate
1000Argentina2024-04-12
1001Spain2024-04-20
1002Japan2024-04-21
1003United Kingdom2024-04-14
1004Argentina2024-04-24
1005Argentina2024-04-11
1006Russia2024-04-17
1007Italy2024-04-09
1008Argentina2024-04-25
1009Canada2024-03-29
1010Argentina2024-04-22
1011Canada2024-04-15
1012Australia2024-04-15
1013Australia2024-04-02
1014Brazil2024-04-09
1015France2024-04-23
1016Argentina2024-04-18
1017Brazil2024-03-30
1018India2024-04-11
1019Italy2024-04-23
1020Canada2024-04-10
1021Spain2024-04-10
1022Argentina2024-03-27
1023Brazil2024-04-04
1024Canada2024-04-13
1025Germany2024-04-07
1026Japan2024-04-13
1027Russia2024-03-28
1028Australia2024-04-01
1029Canada2024-04-06
1030France2024-04-20
1031Brazil2024-04-02
1032Japan2024-04-18
1033Russia2024-04-20
1034Russia2024-04-15
1035Russia2024-04-02
1036Australia2024-04-02
1037Japan2024-04-10
1038Canada2024-04-10
1039Australia2024-04-01
1040Argentina2024-03-31
1041Australia2024-04-02
1042Italy2024-04-16
1043Australia2024-04-07
1044Germany2024-04-04
1045Italy2024-03-28
1046Japan2024-04-05
1047United Kingdom2024-04-05
1048Germany2024-03-27
1049Argentina2024-04-10

On-Demand Data

NameIdCountryDate
Julie Q Dilliard1000India2024-04-07
Alejandro Z Bowley1001Japan2024-04-02
Juan A Bowley1002Russia2024-04-24
Ashley D Iturbide1003United Kingdom2024-04-11
Morrow R Kolmetz1004Canada2024-04-01
Izzy I Rulapaugh1005Germany2024-04-05
Leja T Malet1006India2024-04-04
Greenwood R Nicka1007Argentina2024-03-28
Chavez K Malet1008Spain2024-04-08
Nicolas A Bowley1009Russia2024-04-07
Antonio I Rim1010France2024-04-07
Kadeem U Slusarski1011Italy2024-04-18
Silvio D Shinko1012India2024-04-11
Leon E Poquette1013India2024-04-05
Silvio V Iturbide1014United Kingdom2024-03-31
Claire V Ostrosky1015Russia2024-04-13
David H Schemmer1016Argentina2024-03-31
Misaki R Oldroyd1017Spain2024-04-11
Clifford C Bowley1018Canada2024-04-16
Johnson M Oldroyd1019Italy2024-03-29
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Claire Z DoeUnited KingdomOnyama Limba UNQUALIFIED
Isabel R OldroydFranceElwin Sharvill PROPOSAL
Stacey D BologniaIndiaElwin Sharvill RENEWAL
Antonio B DarakjyFranceBernardo Dominic RENEWAL
Maria B MorascaUnited KingdomXuxue Feng NEW
Maisha L CaudyAustraliaElwin Sharvill RENEWAL
Cody E RutaJapanXuxue Feng NEW
Darci T OstroskyGermanyIoni Bowcher UNQUALIFIED
Munro M RimCanadaIoni Bowcher NEGOTIATION
Cody Z BowleyJapanAmy Elsner NEW
Juan P PoquetteAustraliaAmy Elsner NEGOTIATION
Stacey H FerenczSpainStephen Shaw NEGOTIATION
Mujtaba T CaudyGermanyIvan Magalhaes UNQUALIFIED
Mayumi A VocelkaGermanyStephen Shaw UNQUALIFIED
Jeanfrancois V MorascaAustraliaXuxue Feng NEGOTIATION
Maria E StockhamItalyElwin Sharvill NEGOTIATION
Faith E PoquetteAustraliaIvan Magalhaes PROPOSAL
Rodrigues A MaletUnited KingdomIvan Magalhaes RENEWAL
Stacey A GarufiJapanIoni Bowcher UNQUALIFIED
Silvio J MaletIndiaIvan Magalhaes UNQUALIFIED
Salvatore Y StensethJapanStephen Shaw RENEWAL
Adams I RulapaughIndiaIvan Magalhaes QUALIFIED
Deepesh U PaprockiJapanXuxue Feng PROPOSAL
David F CaldareraArgentinaXuxue Feng NEW
Munro O GlickCanadaAnna Fali NEW
Sinclair I VocelkaJapanXuxue Feng UNQUALIFIED
Julie D WieserJapanBernardo Dominic UNQUALIFIED
Greenwood V GauchoAustraliaAnna Fali QUALIFIED
Leon T MaletArgentinaStephen Shaw UNQUALIFIED
Ivar J MaletGermanyXuxue Feng QUALIFIED
Murillo X OldroydArgentinaAnna Fali NEW
Isabel I FigeroaIndiaIvan Magalhaes NEW
Johnson Z FigeroaCanadaIvan Magalhaes QUALIFIED
Deepesh V NickaItalyAsiya Javayant NEGOTIATION
Leon C ButtSpainStephen Shaw NEW
Maisha X BowleyCanadaStephen Shaw NEGOTIATION
Maisha H PaprockiFranceXuxue Feng PROPOSAL
Munro O MaletSpainBernardo Dominic UNQUALIFIED
Cody P GlickSpainIvan Magalhaes UNQUALIFIED
Izzy I FerenczArgentinaXuxue Feng 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>