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
Kaitlin D GillianBrazilAnna Fali UNQUALIFIED
Smith Q SchemmerArgentinaElwin Sharvill NEW
James A BologniaItalyElwin Sharvill UNQUALIFIED
Kadeem O MacleadArgentinaIoni Bowcher RENEWAL
David V GauchoCanadaIoni Bowcher QUALIFIED
Murillo P OstroskyIndiaIoni Bowcher NEGOTIATION
Wickens H WhobreyAustraliaBernardo Dominic QUALIFIED
Claire J IturbideRussiaAnna Fali UNQUALIFIED
Adams X KolmetzRussiaAsiya Javayant RENEWAL
Smith G SaylorsArgentinaXuxue Feng PROPOSAL
Arvin R MorascaItalyAsiya Javayant NEW
Kaitlin T FigeroaFranceOnyama Limba UNQUALIFIED
Tony H DilliardJapanAmy Elsner QUALIFIED
Juan R StockhamJapanStephen Shaw NEW
Stacey K PaprockiJapanStephen Shaw UNQUALIFIED
Kadeem I StensethIndiaAmy Elsner NEW
Aruna A AmigonIndiaOnyama Limba NEW
Jeanfrancois O MaletItalyElwin Sharvill NEW
Claire L CaldareraIndiaXuxue Feng NEGOTIATION
Alejandro G MarrierFranceOnyama Limba UNQUALIFIED
Wickens V WieserSpainElwin Sharvill PROPOSAL
Costa C IturbideUnited KingdomAnna Fali NEGOTIATION
David L MaletAustraliaXuxue Feng NEW
Greenwood O CampainAustraliaIvan Magalhaes NEGOTIATION
Jones A FlosiFranceAnna Fali NEW
Jennifer Y MarrierAustraliaStephen Shaw QUALIFIED
Chavez H AmigonJapanAnna Fali NEGOTIATION
Deepesh J KolmetzGermanyOnyama Limba NEW
Arvin F ShinkoSpainAmy Elsner QUALIFIED
Alejandro K GarufiArgentinaOnyama Limba NEGOTIATION
Jones H WieserIndiaAnna Fali PROPOSAL
Cody J FerenczRussiaAmy Elsner NEGOTIATION
Francesco F StensethAustraliaAnna Fali RENEWAL
Kadeem T FollerArgentinaStephen Shaw NEW
Claire P ChuiFranceXuxue Feng RENEWAL
Misaki D OldroydCanadaAnna Fali QUALIFIED
Maria J SlusarskiUnited KingdomIoni Bowcher RENEWAL
Faith F TollnerGermanyOnyama Limba UNQUALIFIED
Johnson M StensethItalyIvan Magalhaes NEGOTIATION
Misaki Z RulapaughUnited KingdomAsiya Javayant QUALIFIED
Emily N RutaGermanyStephen Shaw PROPOSAL
Misaki Z PoquetteBrazilBernardo Dominic RENEWAL
James X DarakjyIndiaXuxue Feng PROPOSAL
Julie I FerenczFranceOnyama Limba QUALIFIED
Ashley O SergiItalyAnna Fali RENEWAL
Leon C StensethIndiaAsiya Javayant PROPOSAL
Johnson P KuskoCanadaAnna Fali NEW
Silvio X FerenczIndiaAnna Fali RENEWAL
Octavia C BriddickUnited KingdomIvan Magalhaes UNQUALIFIED
Alejandro L GarufiGermanyStephen Shaw NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Jones S PaprockiAustraliaIoni Bowcher UNQUALIFIED
Greenwood E StensethCanadaIvan Magalhaes PROPOSAL
Adams B SlusarskiCanadaIvan Magalhaes UNQUALIFIED
Isabel K GauchoCanadaBernardo Dominic RENEWAL
Izzy S GlickRussiaAmy Elsner UNQUALIFIED
Leja L AmigonGermanyAmy Elsner PROPOSAL
Claire F IturbideRussiaXuxue Feng RENEWAL
Jeanfrancois K DarakjyRussiaBernardo Dominic NEW
Mayumi L DilliardGermanyAnna Fali PROPOSAL
Isabel D MaletIndiaIvan Magalhaes RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Stacey P DilliardItaly2024-03-30Feltz Printing Service NEW31Stephen Shaw
1001Juan E CampainIndia2024-04-01Chanay, Jeffrey A Esq UNQUALIFIED9Anna Fali
1002James I SchemmerJapan2024-03-31Dorl, James J Esq NEGOTIATION11Amy Elsner
1003Claire O VenereFrance2024-04-04King, Christopher A Esq QUALIFIED54Onyama Limba
1004Octavia X KolmetzIndia2024-04-16Benton, John B Jr QUALIFIED79Stephen Shaw
1005Costa U FlosiRussia2024-04-16Benton, John B Jr RENEWAL22Amy Elsner
1006Tony A CampainCanada2024-04-04Chanay, Jeffrey A Esq NEGOTIATION14Onyama Limba
1007James H TollnerJapan2024-04-12Morlong Associates NEW44Asiya Javayant
1008Nicolas R PerinCanada2024-03-28Feltz Printing Service NEW55Ioni Bowcher
1009Darci I AlbaresCanada2024-04-09Benton, John B Jr UNQUALIFIED80Asiya Javayant
1010Maria V BologniaBrazil2024-03-26King, Christopher A Esq PROPOSAL51Elwin Sharvill
1011Kadeem M SlusarskiFrance2024-04-04Dorl, James J Esq RENEWAL14Anna Fali
1012Julie V ButtIndia2024-03-29Truhlar And Truhlar Attys PROPOSAL83Amy Elsner
1013Jennifer T SlusarskiIndia2024-04-07Commercial Press QUALIFIED38Asiya Javayant
1014Tony J MorascaFrance2024-03-30Chapman, Ross E Esq PROPOSAL66Ivan Magalhaes
1015Aika G KolmetzBrazil2024-04-01Benton, John B Jr UNQUALIFIED6Asiya Javayant
1016Octavia B BologniaGermany2024-04-24Printing Dimensions UNQUALIFIED4Elwin Sharvill
1017Isabel P CampainIndia2024-04-02Rousseaux, Michael Esq PROPOSAL59Xuxue Feng
1018Johnson M VocelkaUnited Kingdom2024-04-12Dorl, James J Esq PROPOSAL46Bernardo Dominic
1019Alejandro T ShinkoBrazil2024-04-06Feiner Bros NEW17Anna Fali
1020Stacey P WaycottFrance2024-03-26Feltz Printing Service UNQUALIFIED11Ioni Bowcher
1021Emily O SaylorsSpain2024-04-21Rousseaux, Michael Esq RENEWAL76Stephen Shaw
1022Antonio D GlickBrazil2024-04-10Chapman, Ross E Esq RENEWAL62Stephen Shaw
1023Julie L DilliardFrance2024-04-23Commercial Press RENEWAL2Stephen Shaw
1024Jeanfrancois I KolmetzIndia2024-04-13Feltz Printing Service RENEWAL10Ioni Bowcher
1025Cody T FlosiRussia2024-03-28King, Christopher A Esq PROPOSAL71Asiya Javayant
1026Jennifer T RimGermany2024-04-12Commercial Press PROPOSAL29Asiya Javayant
1027Jefferson O KolmetzCanada2024-03-27Dorl, James J Esq RENEWAL10Elwin Sharvill
1028Salvatore K FollerRussia2024-04-19Chanay, Jeffrey A Esq NEGOTIATION4Ivan Magalhaes
1029Ricardo F DoeUnited Kingdom2024-04-11Feltz Printing Service QUALIFIED94Stephen Shaw
1030Misaki X KuskoSpain2024-04-07Chemel, James L Cpa RENEWAL45Stephen Shaw
1031Faith V MaletItaly2024-04-05Chanay, Jeffrey A Esq QUALIFIED35Amy Elsner
1032Ivar D OldroydRussia2024-04-23Commercial Press NEGOTIATION12Ivan Magalhaes
1033Antonio T ShinkoFrance2024-04-07Feiner Bros QUALIFIED25Amy Elsner
1034Cody O GarufiRussia2024-03-30Rangoni Of Florence NEW28Xuxue Feng
1035Aruna A SergiAustralia2024-04-04Morlong Associates PROPOSAL72Elwin Sharvill
1036Wickens V PerinUnited Kingdom2024-04-01Rangoni Of Florence NEW64Xuxue Feng
1037Mayumi O KuskoItaly2024-04-11Feltz Printing Service UNQUALIFIED0Stephen Shaw
1038Ashley Z StensethAustralia2024-03-26Feiner Bros RENEWAL6Amy Elsner
1039Francesco O KolmetzFrance2024-04-22Benton, John B Jr PROPOSAL26Onyama Limba
1040Tony F NickaIndia2024-04-02Rangoni Of Florence NEW24Bernardo Dominic
1041Chavez S FigeroaGermany2024-04-14Feltz Printing Service NEW31Stephen Shaw
1042Salvatore W AlbaresItaly2024-04-19Printing Dimensions QUALIFIED53Onyama Limba
1043Munro C NestleAustralia2024-04-12Dorl, James J Esq RENEWAL0Xuxue Feng
1044Rodrigues I FollerIndia2024-03-30Rangoni Of Florence NEW63Bernardo Dominic
1045Juan C SergiAustralia2024-04-20Rousseaux, Michael Esq NEGOTIATION75Elwin Sharvill
1046Octavia W PaprockiBrazil2024-03-31Printing Dimensions QUALIFIED95Bernardo Dominic
1047Maisha G RoysterIndia2024-04-01Chemel, James L Cpa QUALIFIED15Asiya Javayant
1048Mujtaba M MaletCanada2024-04-22Dorl, James J Esq UNQUALIFIED46Amy Elsner
1049Mayumi B BologniaIndia2024-04-16Buckley Miller Wright RENEWAL10Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Mujtaba Z DilliardRussiaIvan Magalhaes QUALIFIED
Adams I AmigonItalyElwin Sharvill NEW
Julie M ButtJapanAsiya Javayant QUALIFIED
Claire R RimAustraliaStephen Shaw UNQUALIFIED
Munro L PoquetteUnited KingdomOnyama Limba RENEWAL
Costa X VenereGermanyAnna Fali NEW
Maria V KuskoGermanyXuxue Feng NEW
Darci E PoquetteCanadaAnna Fali QUALIFIED
Kaitlin Q VenereGermanyXuxue Feng PROPOSAL
Salvatore R DoeCanadaBernardo Dominic NEGOTIATION
Arvin E MacleadJapanAmy Elsner UNQUALIFIED
Jefferson S TollnerRussiaAmy Elsner RENEWAL
Tony Y FerenczRussiaElwin Sharvill QUALIFIED
Maisha Q FigeroaSpainBernardo Dominic UNQUALIFIED
Morrow R AlbaresJapanAmy Elsner UNQUALIFIED
Leon U VenereUnited KingdomIoni Bowcher UNQUALIFIED
Salvatore Y DilliardJapanBernardo Dominic NEW
Morrow C GarufiFranceAsiya Javayant UNQUALIFIED
Isabel X FlosiSpainAmy Elsner NEGOTIATION
Morrow G ShinkoAustraliaOnyama Limba RENEWAL
Alejandro Q PaprockiUnited KingdomStephen Shaw RENEWAL
Salvatore O MacleadGermanyElwin Sharvill PROPOSAL
Deepesh O OldroydBrazilStephen Shaw RENEWAL
Silvio C FlosiRussiaElwin Sharvill PROPOSAL
Aika Y MacleadArgentinaStephen Shaw PROPOSAL
Ivar J NestleFranceAsiya Javayant RENEWAL
Izzy W GauchoItalyIoni Bowcher PROPOSAL
Mayumi A PaprockiJapanBernardo Dominic NEW
Ricardo X DilliardCanadaAsiya Javayant QUALIFIED
Misaki U FlosiJapanBernardo Dominic UNQUALIFIED
Alejandro M StockhamItalyXuxue Feng PROPOSAL
Misaki Q MaletArgentinaElwin Sharvill PROPOSAL
Wickens T GlickArgentinaAmy Elsner PROPOSAL
Izzy A SaylorsCanadaAmy Elsner PROPOSAL
Antonio O GarufiJapanXuxue Feng RENEWAL
Johnson E StensethArgentinaIoni Bowcher QUALIFIED
Leja Z FollerFranceAmy Elsner QUALIFIED
Emily B OldroydRussiaIoni Bowcher UNQUALIFIED
Aditya U SaylorsItalyOnyama Limba UNQUALIFIED
Claire P FerenczAustraliaOnyama Limba QUALIFIED
Ricardo M FlosiItalyIoni Bowcher QUALIFIED
Claire M StensethArgentinaBernardo Dominic UNQUALIFIED
Julie R DilliardRussiaStephen Shaw PROPOSAL
Alejandro Z StockhamFranceIvan Magalhaes PROPOSAL
Munro G BologniaItalyAmy Elsner QUALIFIED
Maisha Q TollnerCanadaXuxue Feng NEGOTIATION
Francesco L BologniaFranceAnna Fali NEGOTIATION
Arvin P CaudyUnited KingdomAnna Fali UNQUALIFIED
Julie T TollnerJapanXuxue Feng NEGOTIATION
Aruna O NickaSpainAnna Fali QUALIFIED
Frozen Columns
Name
Clifford U Glick
Maria U Iturbide
Octavia M Bowley
Claire U Foller
Stacey N Amigon
Faith Y Perin
Sinclair P Tollner
Jeanfrancois R Ferencz
Deepesh E Stenseth
Claire Z Tollner
Leja V Oldroyd
Ashley O Gillian
Greenwood R Sergi
Costa E Whobrey
Arvin F Albares
Jefferson M Stockham
Claire I Garufi
Sinclair L Bowley
Johnson O Oldroyd
Kaitlin B Malet
Jones O Stenseth
Ashley C Whobrey
Mujtaba N Tollner
Greenwood K Ostrosky
Chavez L Figeroa
Kadeem I Inouye
Isabel B Malet
Clifford S Darakjy
Alejandro O Ruta
Maria S Shinko
Clifford Y Slusarski
Maisha A Saylors
Deepesh Q Butt
Stacey H Caldarera
Ivar A Slusarski
Octavia P Venere
Francesco I Albares
Aika V Venere
Izzy S Bolognia
Francesco A Foller
Nicolas H Albares
Mayumi R Saylors
Faith F Whobrey
Maria C Ruta
Tony C Perin
Emily W Ruta
Julie R Darakjy
Wickens O Perin
Mujtaba J Chui
Jones E Figeroa
IdCountryDate
1000Germany2024-03-31
1001Japan2024-04-16
1002Spain2024-03-31
1003United Kingdom2024-04-12
1004Italy2024-04-14
1005Germany2024-04-18
1006Brazil2024-04-12
1007Italy2024-03-27
1008Russia2024-04-08
1009France2024-04-24
1010Australia2024-04-22
1011Argentina2024-03-28
1012Australia2024-04-09
1013Australia2024-04-24
1014Italy2024-04-09
1015Canada2024-04-22
1016Canada2024-04-10
1017Canada2024-04-14
1018Germany2024-04-23
1019Argentina2024-03-31
1020Brazil2024-04-11
1021Spain2024-03-27
1022Australia2024-04-17
1023Canada2024-04-15
1024Russia2024-04-16
1025Russia2024-04-07
1026India2024-04-23
1027France2024-03-26
1028Australia2024-04-12
1029Australia2024-04-06
1030Italy2024-04-22
1031France2024-04-14
1032Italy2024-04-12
1033Australia2024-04-17
1034Spain2024-04-14
1035India2024-04-01
1036India2024-04-10
1037Canada2024-04-02
1038Australia2024-03-27
1039India2024-04-12
1040Australia2024-04-23
1041India2024-04-19
1042Germany2024-04-11
1043France2024-04-07
1044Argentina2024-04-22
1045Japan2024-04-12
1046Germany2024-04-23
1047Japan2024-04-07
1048United Kingdom2024-04-04
1049Italy2024-04-05

On-Demand Data

NameIdCountryDate
Octavia F Tollner1000Spain2024-04-09
Ivar W Glick1001Spain2024-04-17
Jones M Ostrosky1002Australia2024-04-12
Alejandro S Ferencz1003Canada2024-04-16
Darci K Poquette1004Italy2024-04-16
Isabel X Nestle1005Russia2024-04-22
Izzy Y Chui1006Canada2024-04-01
Deepesh F Waycott1007Germany2024-04-01
Kadeem G Doe1008Japan2024-04-09
Rodrigues K Foller1009Spain2024-03-30
Sinclair P Gaucho1010Russia2024-03-31
Johnson L Campain1011Italy2024-04-14
Wickens Y Rim1012Australia2024-03-26
Jones P Gaucho1013United Kingdom2024-04-23
Kaitlin T Perin1014India2024-04-05
Costa Q Bolognia1015Russia2024-04-09
Alejandro E Caudy1016Spain2024-04-10
Aruna S Stenseth1017Argentina2024-04-13
Adams J Royster1018Argentina2024-04-18
Kadeem D Tollner1019Australia2024-04-13
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Kaitlin F PoquetteSpainOnyama Limba RENEWAL
Faith E WhobreyGermanyElwin Sharvill PROPOSAL
Stacey L OldroydSpainOnyama Limba NEW
Juan K NickaRussiaIvan Magalhaes RENEWAL
Kaitlin S NestleCanadaIvan Magalhaes NEW
Mayumi Z NickaJapanStephen Shaw QUALIFIED
Kadeem A AlbaresJapanStephen Shaw RENEWAL
Jefferson U DilliardGermanyIoni Bowcher NEGOTIATION
Claire V GarufiSpainStephen Shaw NEGOTIATION
Aditya N NestleItalyAmy Elsner NEW
Munro B FerenczAustraliaIvan Magalhaes NEGOTIATION
Leja U ShinkoArgentinaOnyama Limba UNQUALIFIED
James J StensethCanadaXuxue Feng UNQUALIFIED
Misaki M AlbaresItalyIvan Magalhaes UNQUALIFIED
Jeanfrancois P KuskoFranceAnna Fali UNQUALIFIED
Aika V CampainSpainOnyama Limba NEW
Nicolas E DarakjyArgentinaAmy Elsner NEW
Kaitlin N DarakjyRussiaElwin Sharvill NEGOTIATION
Mujtaba N PerinRussiaBernardo Dominic PROPOSAL
Deepesh R DarakjyFranceAmy Elsner UNQUALIFIED
Rodrigues W FerenczIndiaAsiya Javayant NEGOTIATION
Mayumi X AmigonAustraliaIvan Magalhaes NEW
Julie F GarufiSpainOnyama Limba QUALIFIED
Jones W CaudyItalyOnyama Limba NEGOTIATION
Jefferson A DilliardItalyAmy Elsner UNQUALIFIED
Silvio U BologniaBrazilElwin Sharvill NEGOTIATION
Cody X WhobreyAustraliaAnna Fali NEGOTIATION
Jones F VocelkaItalyAsiya Javayant PROPOSAL
Mayumi E IturbideAustraliaOnyama Limba NEGOTIATION
Tony T SergiIndiaBernardo Dominic NEW
Mujtaba J MarrierSpainOnyama Limba QUALIFIED
Smith Z AmigonCanadaXuxue Feng RENEWAL
Kadeem H MaletRussiaIvan Magalhaes QUALIFIED
Nicolas Z RoysterArgentinaAsiya Javayant PROPOSAL
Stacey B FerenczUnited KingdomIvan Magalhaes PROPOSAL
Jones V WaycottFranceAmy Elsner NEGOTIATION
David J KolmetzGermanyAmy Elsner NEGOTIATION
Izzy O IturbideGermanyXuxue Feng NEGOTIATION
Nicolas Z IturbideArgentinaAsiya Javayant NEW
Cody C ShinkoJapanElwin Sharvill 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>